Sunday, October 11, 2026

System Design Interview — Panduan Lengkap


Prinsip Utama: Jangan langsung menggambar arsitektur di awal. Yang dinilai bukan bagusnya diagram komponen, tapi kemampuan menjelaskan “KENAPA” di balik setiap keputusan desain.

6-Step Workflow System Design Interview

1. Requirements (Kebutuhan)

  • Functional Requirements — Apa yang harus dilakukan sistem? (fitur utama)
  • Non-Functional Requirements — Scalability, availability, latency, consistency, durability
  • Klarifikasi dengan interviewer: scope, batasan, asumsi

2. Capacity Estimation (Estimasi Kapasitas)

  • Jumlah users (DAU/MAU)
  • QPS (Queries Per Second) — rata-rata dan peak traffic
  • Estimasi storage dan bandwidth
  • Angka ini menentukan keputusan scaling berikutnya

3. APIs & Data Model

  • Definisikan API endpoints (REST/gRPC)
  • Rancang schema database (tables, relationships, indexes)
  • Pilih SQL vs NoSQL berdasarkan kebutuhan

4. High-Level Design (Desain Tingkat Tinggi)

  • Gambarkan block diagram utama: clients, services, databases, caches, queues
  • Tentukan komponen inti dan interaksi antar komponen
  • Fokus pada data flow, belum detail di balik komponen

5. Deep Dive (Analisis Mendalam)

  • Scaling: horizontal vs vertical, load balancing, sharding, replication
  • Failure handling: single point of failure, redundancy, failover
  • Bottlenecks: DB hotspot, N+1 queries, hot partitions
  • Strategi: caching, CDN, async processing, message queues

6. Trade-offs & Summary

  • Rangkum keputusan utama + alasannya
  • Jelaskan trade-off yang diterima (consistency vs availability, latency vs durability)
  • Tunjukkan pemahaman konsekuensi setiap pilihan

Mindset yang Harus Dibawa

JanganHarus
Langsung gambar diagramMulai dari requirements
Hafal pola arsitekturPahami masalah dulu
Sebut komponen tanpa alasanJelaskan WHY setiap keputusan
Anggap diagram = jawabanAnggap diagram = komunikasi

Tips Ekstra

  • Komunikasi aktif — berpikir keras secara verbal (think aloud)
  • Tanya dulu — jangan berasumsi requirements
  • Iteratif — mulai simpel, tambah kompleksitas bertahap
  • Angka itu penting — estimation memberi arah desain
  • Trade-offs menunjukkan kedewasaan — tidak ada desain sempurna, yang ada paling sesuai

Checklist Sebelum Interview

 Paham sistem nyata: URL shortener, chat, news feed, ride-sharing

 Latihan capacity estimation (QPS, storage, bandwidth)

 Kuat dasar: caching, sharding, replication, load balancing, message queues

 Biasakan menjelaskan “kenapa” di setiap langkah


No comments:

Post a Comment