System Design mülakat sorusuOrtaİşbirliği Sistemi

Google Calendar benzeri bir takvim sistemi tasarla

Google Calendar tarzı etkinlik tasarla: toplantı oluştur, müsaitlik kontrol et, katılımcıları bilgilendir.

Mülakat kapsamı

Client → Gateway/LB → App → Cache (sıcak ajanda) + DB (etkinlik) + Message Queue (hatırlatma/davet). Client → DB yok.

Fonksiyonel gereksinimler

  • Takvim etkinliği oluştur/güncelle/iptal et.
  • Zaman aralığı için kullanıcının ajandasını sorgula.
  • Etkinlik değişince katılımcıları bilgilendir (async olur).

Kalite ve ölçek hedefleri

  • Ajanda okuması hızlı olmalı (cache yardım eder).
  • Etkinlik gerçeği kalıcı DB’de yaşar.
  • Bildirimler yazma API’sini sonsuza bloklamamalı.

Kapasite varsayımı

Bu ölçeğe göre tasarla

Günde ~20M etkinlik okuma (~230 RPS) ve ~2M yazma (~23 RPS ortalama) varsay.

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