Nikoli ne iterirajte čez 1 milijon uporabnikov znotraj obravnave zahteve — razpršite (fan out) prek vrste (queue), omejite hitrost na tisto, kar posamezni ponudnik lahko sprejme, poskrbite, da je vsako pošiljanje idempotentno, in usmerite napake v DLQ za ponovni poskus. Klic API le uvrsti opravilo v vrsto; delavci (workers) opravijo počasni 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
