Nikada ne prolazite kroz 1 milijun korisnika unutar obrađivača zahtjeva — raspršite posao kroz queue, ograničite (throttle) na ono što svaki pružatelj usluge može prihvatiti, učinite svako slanje idempotentnim i preusmjerite neuspjehe u DLQ za ponovni pokušaj. API poziv samo stavlja u queue; workeri obavljaju spori I/O.
Arhitektura
Admin ─▶ Campaign API ─▶ [enqueue job] ─▶ Kafka/SQS ─┐
▼
┌──────────────── Worker pool (autoscaled) ───────────────┐
│ claim ─▶ dedup(Redis SETNX) ─▶ rate-limiter ─▶ provider │
└──────────┬──────────────────────────────┬───────────────┘
│ ok │ fail (5xx/timeout)
▼ ▼
sent_log (DB) Retry (backoff) ─▶ DLQ
