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