- Menyoroti masalah penggunaan arsitektur sistem yang terlalu rumit tanpa perlu meskipun jumlah pengguna nyata sangat sedikit
- Menunjukkan contoh penggabungan berbagai teknologi seperti Redis, MongoDB, Kubernetes, dan microservices secara serampangan
- Menekankan bahwa dalam situasi seperti ini, satu instance Postgres dan konfigurasi server yang sederhana sudah cukup
- Menegaskan bahwa kompleksitas bukanlah sebuah kebajikan, dan skala seharusnya ditambah hanya ketika kebutuhannya benar-benar terbukti
- Mengingatkan startup dan tim pengembang untuk menjaga prinsip desain sederhana yang sesuai dengan skala
Penyalahgunaan tech stack yang tidak perlu
- Mengkritik kombinasi teknologi yang dipilih secara acak, seperti penggunaan Redis dan MongoDB secara bersamaan
- Mengajukan pertanyaan seperti, “Mengapa Redis berbicara dengan MongoDB?” dan “Mengapa menggunakan MongoDB?”
- Menyoroti bahwa sistem terdistribusi diperkenalkan padahal jumlah pengguna nyata hanya 12 orang (6 di antaranya adalah akun uji)
- Menyebut ini sebagai contoh ekspansi berlebihan, padahal satu instance Postgres sudah memadai
Deployment dan struktur infrastruktur yang berlebihan
- Konfigurasi saat ini: 15 microservices, 8 database, cluster Kubernetes untuk 3 environment, 4 message queue, service mesh, pipeline CI/CD yang memakan waktu 2 jam
- Konfigurasi yang sebenarnya dibutuhkan hanya sekitar satu server, Postgres, dan Redis untuk caching
- Menunjukkan dengan jelas kelebihan kompleksitas infrastruktur dibanding kebutuhan yang sebenarnya
Kompleksitas sistem dan kemudahan penjelasan
- Menyatakan bahwa jika untuk menjelaskan sistem kepada developer junior dibutuhkan diagram yang kusut seperti spaghetti, maka itu pertanda ada masalah
- Merangkum pesan utama dengan kalimat kompleksitas bukanlah sebuah kebajikan
- Menekankan bahwa sistem harus dimulai secara sederhana, lalu kompleksitas ditambahkan hanya ketika kebutuhannya benar-benar terbukti
Pelajaran utama
- Pemilihan teknologi dan desain sistem harus disederhanakan sesuai skala dan penggunaan nyata
- Ekspansi serampangan dan adopsi tech stack yang berlebihan merusak maintainability dan efisiensi
- Penting bagi startup atau tim kecil untuk menjaga kesederhanaan yang sesuai dengan skala
Belum ada komentar.