System Design mülakat sorusuOrtaZamanlama / Crawl

Bir web crawler tasarla

Web crawler tasarla: URL keşfet, sayfaları async çek, içerik/metadata’yı sonra arama/index için sakla.

Mülakat kapsamı

Üretici/Client → Gateway/LB → App → Message Queue; worker (App) kuyruğu tüketir; App → DB ve Object Storage. Client → Queue/DB yok.

Fonksiyonel gereksinimler

  • Crawl edilecek URL’leri kuyruğa koy.
  • Worker’lar sayfa çeker ve yeni link çıkarır.
  • Sayfa içeriği veya metadata’sını kalıcı sakla.

Kalite ve ölçek hedefleri

  • Crawl async olmalı — her HTTP fetch’i tek istek thread’inde bloklama.
  • Kuyruk tüketen worker ekleyerek ölçeklen.
  • Tek host’u sonsuza kadar dövme (yüksek seviye).

Kapasite varsayımı

Bu ölçeğe göre tasarla

Ayda ~100M sayfa ≈ ortalama ~40 sayfa/sn; tepeler daha yüksek — kuyruk + worker spike’ı 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