રિક્વેસ્ટ હેન્ડલરમાં ક્યારેય 1M યુઝર્સ પર લૂપ ન કરો — queue દ્વારા fan out કરો, દરેક provider જે સ્વીકારી શકે તેટલા સુધી throttle કરો, દરેક send ને idempotent બનાવો, અને retry માટે failures ને DLQ પર route કરો. API કૉલ માત્ર enqueue કરે છે; ધીમું I/O workers કરે છે.
આર્કિટેક્ચર
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
