System Design mülakat sorusuOrtaZamanlama Servisi
Dağıtık bir iş zamanlayıcı tasarla
Dağıtık iş zamanlayıcı tasarla: işleri al (şimdi veya sonra), kuyruğa koy, birçok worker’da güvenilir çalıştır; mümkünse çift çalıştırmayı önle.
Mülakat kapsamı
Üretici → API/app → kalıcı iş durumu + Message Queue → worker App Server’lar. İstemci kuyruk/DB’ye doğrudan konuşmasın.
Fonksiyonel gereksinimler
- Payload + isteğe bağlı zamanlama/gecikme ile iş gönder.
- Worker’lar işi alıp (claim) çalıştırır.
- Durum takip et (queued / running / succeeded / failed) ve retry destekle.
Kalite ve ölçek hedefleri
- İş hacmi artınca worker’ları yatay büyüt.
- Worker çökse iş kaybolmasın — retry edilsin.
- Koordinasyon sadece tek process belleğinde olmasın.
Kapasite varsayımı
Bu ölçeğe göre tasarla
Günde ~50M iş (~ortalama 580 iş/sn), tepeler ~5×. Kısa ve uzun işler karışık.
Diyagramdan fazlasını pratik et
Froquiz tuvalinde bileşenleri yerleştir, veri akışını bağla ve senaryoya özel incelemede eksik kararları gör. Ayrıntılı çözüm ve değerlendirme Premium ile açılır.
Premium'u incele →