📧
Storage & Delivery

Scalable Email Delivery Service

Queue, Throttling Aur Deliverability
💡 Email delivery service EK BADA DAAKGHAR hai. Chithi lena aasaan hai — asli kaam ye hai ki har chithi sahi ghar pahunche, aur postman ko spam bhejne wala samajhkar rok na diya jaaye.

Architecture queue-driven hai: API request turant accept karke queue mein daal do (202 Accepted), aur workers async bhejein. Ye isliye ki SMTP slow hai aur caller ko usse block nahi karna chahiye. Priority queues rakho — transactional email (OTP, password reset) bulk marketing se pehle jaani chahiye.

Asli complexity DELIVERABILITY hai, throughput nahi. Har receiving provider (Gmail, Outlook) ki apni rate limits hain, isliye per-domain throttling chahiye. Bounces aur complaints track karo aur bad addresses ko suppression list mein daalo — warna sender reputation girti hai aur saari emails spam mein jaane lagti hain.

// Async accept, priority-based send
POST /send → validate → queue → 202 Accepted (turant)

Priority queues:
  transactional (OTP, reset)   -> highest
  notification                 -> medium
  bulk marketing               -> lowest, throttled

// Per-domain rate limit + bounce handling
gmail.com -> 100/sec | bounce -> suppression list (dobara mat bhejo)
📧
Email delivery service EK BADA DAAKGHAR hai. Chithi lena aasaan hai — asli kaam ye hai ki har chithi sahi ghar pahunche, aur postman ko spam bhejne wala samajhkar rok na diya jaaye.
1 / 2
⚡ Quick Recap
  • Async queue-driven, API turant 202 lautaye
  • Priority queues — OTP marketing ke peeche kabhi nahi
  • Per-domain throttling + bounce/suppression se reputation bachti hai
Is page mein (2 subtopics)

Templates alag service mein rehte hain, versioned. Email bhejte waqt template + variables se HTML render hota hai. Ye isliye ki marketing team bina deploy ke content badal sake.

Bulk sends ke liye rendering bottleneck ban sakti hai — 10 lakh personalized emails matlab 10 lakh renders. Isliye rendering workers mein parallel hoti hai, aur jahan possible ho template compile karke cache kiya jaata hai.

// Render workers mein parallel, send se pehle
Campaign (10L recipients)
  → chunk into batches (10K each)
  → render workers (parallel)
  → send queue (per-domain throttled)

HARD BOUNCE (address exist nahi karta) par address turant suppression list mein daalo — dobara bhejna reputation kharab karta hai. SOFT BOUNCE (mailbox full, temporary) par retry karo, par limited attempts ke saath.

Providers complaint rate (spam button) bhi track karte hain. 0.1% se upar jaane par delivery girne lagti hai. Isliye unsubscribe link prominent rakhna aur suppression honour karna technical requirement hai, legal formality nahi.

💡Tip: Dedicated vs shared IP ka zikr karo — shared IP par doosron ki bad reputation tumhe affect karti hai; dedicated IP ko "warm up" karna padta hai (dheere dheere volume badhao). Ye deliverability ki gehri samajh dikhata hai.