रिक्वेस्ट हँडलरमध्ये 10 लाख युजरवर कधीही loop करू नका — queue मधून fan out करा, प्रत्येक provider जेवढे स्वीकारू शकतो तेवढ्यापुरते throttle करा, प्रत्येक send idempotent बनवा, आणि retry साठी अपयशी संदेश DLQ कडे route करा. API कॉल फक्त enqueue करते; slow I/O worker करतात.
आर्किटेक्चर
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
