Event-Driven Notification Platform  ·  View 09 of 26  ·  3 · Data

Data Flow

Where data comes from, what it becomes at each stage, and the one stage where PII appears.

Editable source SVG draw.io All views
Origin
Origin
Producer application
owns the business fact
Producer application...
Event envelope
subject_ref, not PII
Event envelope...
Ingest
Ingest
Validate and stamp
event_id · received_at
Validate and stamp...
Schema check
Avro backward
Schema check...
Invalid events
evt.invalid · 30 d
Invalid events...
Backbone
Backbone
Event topics
key tenant:entity · 7 d
Event topics...
Event Archive
Iceberg · 400 d
Event Archive...
Decide
Decide
Rule evaluation
event plus context
Rule evaluation...
Notification intent
notif.intent
Notification intent...
Notification Store
Postgres · 30 d hot
Notification Store...
Resolve identity
Resolve identity
Recipient Profile
subject_ref to contact
Recipient Profile...
PII Vault
encrypted · erasable
PII Vault...
Rendered message
memory only · never logged
Rendered message...
Deliver and record
Deliver and record
Channel workers
Channel workers
Delivery Store
ClickHouse · 90 d
Delivery Store...
Audit Log
MinIO WORM · 7 y
Audit Log...
malformed · pipeline unblocked
malformed · pipeline unblocked
5 min micro-batch
5 min micro-batch
on decision
on decision
gRPC · scoped read
gRPC · scoped read
per attempt
per attempt
audit
audit
Data Flow — Event, Notification, Delivery
Data Flow — Event, Notification, Delivery
External / third party
External / third party
Application we own
Application we own
Decision point
Decision point
Queue / topic
Queue / topic
Data store
Data store
Security / platform
Security / platform
failure / alternate
failure / alternate
batch
batch
synchronous
synchronous
event / async
event / async
PII enters at stage five and never reaches the bus, the archive or a log line. An erasure request purges the vault; the event and notification records survive with an unresolvable reference.
PII enters at stage five and never reaches the bus, the archive or a log line. An erasure request purges the vault; the event and notification records survive with an unresolvable reference.
v 1.0 · owner Data & AI Global Practice · date 2026-08
v 1.0 · owner Data & AI Global Practice · date 2026-08
Text is not SVG - cannot display

Three domains, kept separate

  • Event data — what happened, owned by the producer, immutable once accepted
  • Notification data — what the platform decided, owned by the platform, including decisions to send nothing
  • Delivery data — what happened while trying, high volume, analytical rather than transactional

The PII boundary

  • Events carry a subject reference, never an email address, phone number or device token
  • Contact details are resolved inside the Render Service at send time and held in memory only
  • An erasure request purges the vault; event and notification records survive with an unresolvable reference, so metrics and audit stay intact

Cadence

  • Producer to bus: synchronous with acks=all, acknowledged in under 80 ms at p95
  • Bus to archive: five-minute micro-batch into Iceberg
  • Attempts to ClickHouse: asynchronous per attempt, batched at 1 s or 10 000 rows