System Design mülakat sorusuZorZamanlama / Compute
LeetCode benzeri bir online judge tasarla
LeetCode tarzı online judge tasarla: kod submission kabul et, test case’lere karşı async çalıştır.
Mülakat kapsamı
Client → Gateway/LB → App → Message Queue; worker (App) kuyruğu tüketir; sonuç için App → DB. Client → Queue/DB yok.
Fonksiyonel gereksinimler
- Bir problem için kod gönder.
- Worker/sandbox için execution işlerini kuyruğa koy.
- Sonuçları sakla, kullanıcıya durum göster.
Kalite ve ölçek hedefleri
- Judge CPU ağır — submit HTTP thread’ini tam execution’da bloklama.
- Kalıcı kuyruk ve sonuç deposu gerekir.
- Worker App instance ekleyerek ölçeklen.
Kapasite varsayımı
Bu ölçeğe göre tasarla
Günde ~5M submission varsay (ortalama ~58 RPS); her biri birden fazla test çalıştırabilir — worker burst’ü yutar.
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 →