
Naik Kelas dari 'Tukang Ketik' Menjadi 'Arsitek'
Saat kamu melamar pekerjaan dari level Junior naik ke Mid-Level atau Senior, pertanyaan wawancaranya berubah total. Mereka tidak lagi menyuruhmu membedah Array di papan tulis. Mereka akan memberikan spidol, lalu memberikan pertanyaan abstrak dan luas:
"Coba desain arsitektur Backend untuk sistem Tokopedia di saat Harbolnas (Flash Sale)."
Inilah yang disebut System Design Interview. Ini bukan soal mengetik kode, ini soal merancang Peta Biru (Blueprint) infrastruktur Server dan Database.
Apa yang Diekspektasikan dari Pertanyaan Ini?
Pewawancara tahu kamu tidak mungkin merancang arsitektur Tokopedia utuh dalam waktu 45 menit. Mereka hanya ingin melihat Pola Pikir Logis (Trade-offs) milikmu.
Di tahap ini, kamu harus mengingat kembali materi-materi arsitektur yang telah kita bahas di artikel-artikel sebelumnya! Ini adalah 4 komponen wajib yang harus kamu gambar/jelaskan:
1. Load Balancer & API Gateway (Satpam Pintu Depan)
Jelaskan bahwa karena *traffic* mencapai jutaan *request*, kamu tidak akan memakai 1 *server*. Kamu akan menggambar Load Balancer (seperti Nginx) di depan untuk membagi lalu lintas ke 10 Server Node.js (Microservices).
2. Caching Layer (Jalur Ekspres RAM)
Pewawancara akan menjebakmu: "Kalau semua orang mengecek halaman harga produk Flash Sale, database relasionalmu akan mati!"
Kamu dengan elegan membalas: "Untuk mengatasi itu Pak, saya akan menyelipkan Redis (In-Memory Database) sebagai Caching. Data harga promo akan diambil dari RAM Redis, sehingga 99% pengunjung tidak akan menyentuh Database SQL utama sama sekali."
3. Asynchronous Queue (Antrean Tugas)
Pewawancara kembali bertanya: "Lalu bagaimana jika sejuta orang mengklik tombol Bayar secara serentak?"
Kamu menjawab: "Saya akan mengimplementasikan Message Broker seperti RabbitMQ / Apache Kafka. Saat mereka klik Bayar, tugas itu dimasukkan ke dalam antrean (Queue) Kafka agar diproses bertahap oleh Worker di belakang layar, sehingga Server API tidak Timeout (Macet)."
4. Database Scaling (Sharding / Replikasi)
Terakhir, kamu menjelaskan bahwa *Database* utamanya akan menggunakan Master-Slave Replication (PostgreSQL) agar mesin yang ditugaskan menulis pesanan (Master) terpisah kerjanya dengan mesin yang ditugaskan untuk membaca (Read Replicas).
Kesimpulan: Menjawab System Design adalah kemampuan mendiskusikan *Bottleneck* (Kemacetan sistem) dan memberikan solusi arsitektur infrastrukturnya secara masuk akal.
Mau langsung pakai template?
Jelajahi template gratis dan premium di TampilKit untuk mempercepat proses development project kamu.
Browse Templates