Data Engineering & Real-Time Event StreamsPlaybook3 min readUpdated September 2026

Handling GDPR Erasure Requests in a Streaming Pipeline

Handling a GDPR erasure request in a streaming pipeline means removing the record from every place it was copied, not just the original topic. Consumers materialize copies in their own stores, so you need a registry of who persists what. Anything jurisdiction-specific still needs your counsel's sign-off.

Here are the questions that actually come up once you try to apply erasure and minimization rules to a real event stream, answered directly, with the caveat that anything jurisdiction-specific still needs your counsel's sign-off before you rely on it.

Vendors Covered in this Article

Disclosure: We may earn a commission if you buy through some links on this page. It doesn't change what we recommend.

Can we actually delete a record that's already been consumed?

Not by deleting it from the topic alone. Once a message has been read by every consumer that was going to read it, deleting it from the broker doesn't touch the copies those consumers already wrote into their own stores. An erasure request against streamed data has to reach every downstream system that materialized a copy, not just the original topic.

The practical answer is a registry: track which consumers persist data from which topics, so an erasure request can be routed to every place a copy might exist instead of relying on someone to remember all of them during an actual request.

What about a compacted topic that's meant to hold the latest state forever?

A compacted topic keeping the current value per key indefinitely is exactly the pattern that makes an erasure request straightforward for that data: writing a tombstone (a null value) for the key removes the current state during the next compaction cycle. This is one case where the streaming pattern actually helps rather than complicates things, as long as your consumers are built to treat a tombstone as a real deletion rather than something to ignore.

How much personal data should actually be in the event payload?

Data minimization is easier to satisfy going in than to fix after the fact. Prefer passing a reference key (an account ID) over the full record in the event itself, and let consumers that genuinely need the personal details look them up from a system of record that has its own access controls and its own erasure path.

This also shrinks your erasure surface directly: a stream carrying IDs instead of names, emails, and addresses has far fewer places personal data can end up copied into a downstream store you'd otherwise have to track down.

Does data have to stay in a specific region?

Cross-border transfer restrictions are a well-established part of GDPR, and a multi-region streaming setup can move data across borders in ways that aren't obvious from the application code, particularly if replication or disaster recovery quietly copies a topic to a broker in another region. Map where your brokers and any cross-region replication actually run, and confirm with your counsel whether your current transfer mechanism covers that path specifically, since the right mechanism depends on where data moves and what safeguard applies to that specific route.

Where a compliance platform helps and where it can't

Vanta and Drata can track that your data processing agreements are current and that privacy policy acknowledgments happened on schedule, which is useful evidence to have organized. Neither one can trace which of your consumers persisted a specific customer's data or write your erasure logic for you.

The registry of consumers and their downstream stores mentioned earlier is pipeline-specific engineering work; a compliance platform's value shows up after that groundwork exists, in keeping the paperwork around it current.

What should we actually log about a completed erasure request?

Keep a record that a request came in, which systems it was routed to based on your consumer registry, and confirmation from each one that the data was actually removed, without logging the personal data itself in that record. This gives you something to show if a regulator or a customer asks whether a request was actually completed, without creating a new place personal data sits longer than it needs to.

Set a reasonable internal deadline for closing out a request across every downstream system, and treat a system that hasn't confirmed by that deadline as an open item to chase, not something to assume completed silently.

When an erasure request arrives, work through these steps:

  1. Look up the subject's identifier in your consumer registry to see which consumers persist data from which topics.
  2. Route the request to every downstream system that holds a copy, not just the original topic.
  3. For a compacted topic, write a tombstone for the key so the next compaction cycle removes the current state.
  4. Get confirmation from each system that the data was actually removed.
  5. Log that the request arrived, where it was routed, and each confirmation, without recording the personal data itself.
Executive Capability Standard

What Good Looks Like

Privacy is handled when every consumer that persists personal data is registered, event payloads favor reference keys over full records, and cross-border data movement has been mapped and reviewed with counsel.

Building The Capability (5-Stage Skill Ladder)

1. Learn:Build a registry of every consumer that persists data from a topic carrying personal information, and where that copy lives.
2. Do Manually:Trace one real erasure request through the registry by hand to confirm it actually reaches every downstream copy.
3. Delegate:Assign a data owner to keep the consumer registry current as new consumers are added to sensitive topics.
4. Automate:Build tombstone-based erasure for compacted topics so a deletion request against current state resolves without a manual step.
5. Buy:Bring in a privacy specialist or counsel to review your cross-border data flows if you operate brokers or replication across regions.

How to Get Started

Disclosure: We may earn a commission if you buy through some links on this page. It doesn't change what we recommend.

Frequently Asked Questions

Do we need to redesign our whole pipeline to comply with erasure requests?

Usually not a full redesign, but you do need a registry of which consumers persist data from which topics, so a request can be routed to every actual copy. Most of the work is documentation and process, not rearchitecting the stream itself, unless your current design has no way to trace downstream copies at all.

Is passing a customer ID instead of full details enough for compliance?

It significantly reduces your exposure but isn't a complete answer on its own. The system holding the full record behind that ID still needs its own erasure path, and any consumer that looks up and caches the full details locally becomes a copy that also needs to be tracked and covered.

Who should we talk to about cross-border data transfer specifics?

Your own counsel or a privacy specialist familiar with your specific data flows and regions. Transfer mechanisms and their requirements depend on exactly where data moves and change over time, so this is genuinely not something to infer from a general guide rather than verify for your actual setup.

About the numbers

This guide doesn't quote a sourced benchmark. Figures in it are estimates or general guidance, so check them against your own numbers.

Related Guides