Methodik
System Design und Coding-Tiefe. Erwartet wird, dass du Architektur-Entscheidungen begründen und Standard-Patterns sauber implementieren kannst — vom Whiteboard bis zur Live-Coding-Session.
Design ein System für einen URL Shortener mit 10 Mio Requests pro Tag.
API-Gateway, Stateless-Service-Layer, Key-Generation via Base62-Counter oder Hash, Read-heavy-Cache (Redis), persistente Datenbank, CDN-Edge für Redirects.
Wie skalierst du einen Notification Service auf 10 Mio Users?
Producer-Consumer mit Message Queue (Kafka/SQS), Worker-Pool mit Rate Limiting pro Channel, Dead-Letter-Queue, Idempotency-Keys gegen Duplikate, horizontaler Scale via Sharding.
Coding: Implementiere eine Sliding-Window-Lösung für Rate Limiting.
Pro User Deque mit Timestamps oder Token-Bucket im Memory/Redis, Window-Größe konfigurierbar, O(1) Insert und Cleanup, klar dokumentierte Edge-Cases bei Clock-Skew.
Erkläre den Unterschied zwischen Eventual Consistency und Strong Consistency.
Strong Consistency garantiert sofortige Sichtbarkeit nach Write (Latenz-Kosten), Eventual Consistency erlaubt temporäre Divergenz für Verfügbarkeit — Wahl folgt CAP und Use-Case.