Event ingestion
Durable intake, dedupe, and fan-out without losing or double-counting events.
Event ingestion
Business constraint
Devices and services emit events at high rate. Downstream analytics and product features consume them.
Naive v0
HTTP handler writes directly to many databases. Or accept without durable log and hope consumers keep up.
Failure drill
Loss on crash after 200 OK. Duplicates without keys. Head-of-line blocking on one poison event.
Evolution path
Iteration 1
Append-only intake log first; ack only after durable. Consumers checkpoint offsets.
Iteration 2
Idempotency keys for producers. Poison quarantine. Parallelism by partition key.
Iteration 3
Backpressure to producers when lag exceeds SLO.
Implementation cut
Durability before fan-out. Define ordering per key, not globally, unless required.
Numbers
Loss rate ≈ 0 after ack. Lag watermark. Dedupe hit rate. Poison rate.
Pattern tags
Self-check
- When do you ack to the producer?
- What ordering can you claim?
- How do poison events get handled?
- Why partition keys?
- What metric triggers backpressure?
Walkthrough
Recordings will appear here when published. Until then, work the failure drill and lab locally — pause after each iteration and write the metric that moved.