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