System Design ist der schwierigste Teil von Senior-Vorstellungsgesprächen. Aber man kann sich darauf vorbereiten.
Framework (4 Schritte)¶
- Requirements — funktionale und nicht-funktionale (Skalierung, Latenz, Verfügbarkeit)
- High-Level Design — Hauptkomponenten und Datenfluss
- Deep Dive — Details kritischer Komponenten
- Engpässe & Trade-offs — Skalierung, Ausfallszenarien
Schlüsselkonzepte¶
- Load Balancing (L4 vs L7)
- Caching (CDN, Redis, Application Cache)
- Datenbank (SQL vs NoSQL, Sharding, Replikation)
- Message Queues (asynchrone Verarbeitung)
- Consistent Hashing
- CAP-Theorem
- Rate Limiting
- API Gateway
Typische Aufgabenstellungen¶
- URL Shortener (TinyURL)
- Chat-System (WhatsApp/Slack)
- Social Media Feed (Twitter/Instagram)
- Video Streaming (YouTube/Netflix)
- Ride Sharing (Uber)
- Suchmaschine
Beispiel: URL Shortener¶
- Requirements: 100M URLs/Tag, read-heavy (100:1)
- API: POST /shorten, GET /:shortCode → Redirect
- Speicher: 100M × 1KB = 100 GB/Tag
- Hash-Funktion: base62 Encode
- Datenbank: Sharding nach shortCode
- Cache: Redis für häufig abgerufene URLs
- CDN für Redirect
Ressourcen¶
- System Design Primer (GitHub)
- Designing Data-Intensive Applications (Buch)
- ByteByteGo (YouTube)
- system-design.com
Tipp¶
Denken Sie laut, fragen Sie nach Requirements, zeichnen Sie Diagramme. Der Interviewer bewertet Ihren Denkprozess, nicht eine perfekte Lösung.
system designVorstellungsgesprächArchitektur