Level 6 · Event Pipeline
ASYNC WRITES

Stage 3 · Async Writes · Message Queues · Burst Absorption

Event Pipeline

Your telemetry service ingests 150 events per second, nearly all writes — and every night the batch upload window triples the firehose for ten straight seconds. The database keeps up on average but drowns in the burst, and the backlog wrecks the rest of the hour. Decouple the write path so a burst is absorbed, not fatal.

Requirements

Functional

  • ·Service ingests a steady stream of write-heavy telemetry events, with a nightly batch window

Non-functional

  • ·~150 events/sec baseline
  • ·95% writes
  • ·a nightly 3× burst lasting 10 seconds
  • ·availability ≥ 96% through the burst

Constraints

  • ·Budget: $7/hr or less
  • ·The database's own capacity can absorb the average load, just not the burst

Out of scope

  • ·Exactly-once delivery guarantees
  • ·Event ordering

TrafficRequests per second — the rate of incoming traffic this level throws at your system.

~150 r/s · write-heavy
5% reads · 95% writesWhat fraction of requests are reads (fetches) vs writes (updates) — this decides which components sit on the hot path.

Win conditions

  • p99 latency99% of requests finish at or under this time — a stricter tail-latency bar than p95 that catches worst-case slowness.≤ 300ms
  • availabilityThe share of legitimate requests that succeeded, out of everything sent your way. 99% still means 1 in 100 users saw an error.≥ 96%
  • throughputHow many requests per second your system actually completed — not requested, completed.≥ 150 r/s
  • error rateThe share of requests that failed outright: timeouts, drops, or capacity overload.≤ 5%
  • costWhat your architecture costs to run per hour, based on the instances and components you've wired up.≤ $7/hr

During the run

  • 3× traffic burstat 25s · 10s
Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

Drag components from the right → connect their handles → Run.

Drag onto canvas

Components

Client

ClientWhere traffic originates.

Compute

API GatewayFront door — the app tier requests pass through.
500 r/s · 20ms · $2/hr
Backend
350 r/s · 25ms · $2/hr
Lvl 7

Storage

SQL DatabaseRelational store. Durable, but the lowest throughput.
200 r/s · 50ms · $3/hr
NoSQL DB3× the throughput of SQL — at a premium. Pay for it only when the load demands it.
600 r/s · 30ms · $4/hr
Redis CacheIn-memory read-cache — absorbs repeated reads. Useless for writes.
5000 r/s · 3ms · $2/hr
Read Replica
200 r/s · 55ms · $3/hr
Lvl 12
DB Standby
200 r/s · 50ms · $3/hr
Lvl 13

Networking

CDN
50000 r/s · 5ms · $1/hr
Lvl 8
Load Balancer
10000 r/s · 2ms · $2/hr
Lvl 9
Reverse Proxy
8000 r/s · 3ms · $1/hr
Lvl 9

Messaging

QueueACKs writes instantly, drains them to storage — absorbs bursts, not sustained overload.
8000 r/s · 8ms · $1/hr

Security

WAF
20000 r/s · 3ms · $1/hr
Lvl 14
Rate Limiter
20000 r/s · 1ms · $1/hr
Lvl 14