Event-Driven Notification Platform · View 15 of 26 · 4 · Runtime
Event to Delivered Email
The happy path end to end, with the latency budget at each hop.
Copy
PNG
PDF
⋯
Editable source
SVG
draw.io
All views
Order Service
Order Service
Event Ingest API
Event Ingest API
Kafka
Kafka
Rules Engine
Rules Engine
Orchestrator
Orchestrator
Render Service
Render Service
Email Worker
Email Worker
Postal MTA
Postal MTA
1. POST /v1/events OrderCreated
1. POST /v1/events OrderCreated
2. schema · idempotency_key · event_id
2. schema · idempotency_key · event_id
3. produce acks=all
3. produce acks=all
4. 202 event_id · p95 80 ms
4. 202 event_id · p95 80 ms
5. consume evt.valid.p1
5. consume evt.valid.p1
6. CEL match · fan-out to 3 channels
6. CEL match · fan-out to 3 channels
7. notif.intent
7. notif.intent
8. preferences · quiet hours · dedup
8. preferences · quiet hours · dedup
9. render(template v2.4, en-GB)
9. render(template v2.4, en-GB)
10. resolve subject_ref to address
10. resolve subject_ref to address
11. subject · html · text
11. subject · html · text
12. deliver.email.p1
12. deliver.email.p1
13. consume · claim token
13. consume · claim token
14. SMTP submit
14. SMTP submit
15. 250 queued · message-id
15. 250 queued · message-id
16. receipt SENT
16. receipt SENT
17. webhook DELIVERED
17. webhook DELIVERED
OrderCreated to Delivered Email — Critical Flow
OrderCreated to Delivered Email — Critical Flow
Happy path only. Retry, provider failover and dead-lettering are on view 17. Contact details are resolved inside the Render Service and never travel on the bus.
Happy path only. Retry, provider failover and dead-lettering are on view 17. Contact details are resolved inside the Render Service and never travel on the bus.
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
Latency budget
Producer acknowledged in 80 ms at p95, before any decision is made
Event to notification queued in 800 ms at p95, dominated by Flink checkpoint alignment
Queued to provider accepted in 400 ms at p95, dominated by the provider itself
End to end 2 s at p95 for transactional traffic
Idempotency at three points
Producer-supplied idempotency_key deduplicated at ingest in Redis with a 24-hour window
Flink keyed state deduplicates event_id for 7 days, covering a Redis loss
A unique dedup_key on the notification table is the final guard against a double decision
Deliberately omitted
Failure, retry and failover — view 17
The scheduling branch — view 16
Authentication of the producer — view 25
◀ Notification Orchestration
All views
Timing, Scheduling and Digests ▶