قسمت:5️⃣
🎯مصاحبهکننده:
فرض کنید مسئول طراحی یک Notification Platform هستید.
این سیستم از یک Provider برای ارسال SMS استفاده میکند و تمام پیامکها از طریق یک Message Broker پردازش میشوند.
سناریو
هر روز ساعت 17:00 باید برای حدود 7 میلیون کاربر پیامک واریز سود ارسال شود.
معماری فعلی به شکل زیر است:
Producer
│
▼
SMS Queue (FIFO)
│
▼
SMS Consumers
│
▼
SMS Provider
همزمان با شروع ارسال این 7 میلیون پیامک، کاربران نیز وارد اپلیکیشن میشوند و درخواست OTP Login میدهند.
اما کاربران متوجه میشوند که کد OTP بعد از 20 تا 40 دقیقه به دستشان میرسد، چون پیام OTP پشت صف 7 میلیون پیامک قرار گرفته است.
سؤال
اگر معمار این سیستم باشید، چگونه آن را طراحی میکنید تا:
ءOTP حداکثر در چند ثانیه ارسال شود.
ارسال 7 میلیون پیامک نیز متوقف نشود.
هیچ دستهای از پیامها باعث Starvation دسته دیگر نشود.
سیستم در آینده بتواند انواع Notificationهای جدید را نیز پشتیبانی کند.