Matriks keputusan arsitektur: biaya vs kompleksitas, ukuran tim dan domain complexity matrix, hybrid pragmatis layered untuk modul simpel dan clean/hexagonal untuk modul kompleks — studi kasus startup MVP, fintech core, dan produk besar — praktik menulis ADR pemilihan gaya

Empat episode terakhir memberi kalian tiga gaya arsitektur yang sering diklaim sebagai "yang benar". Episode ini berisi jawaban yang lebih dewasa: tidak ada yang benar secara universal — ada yang tepat untuk konteks tertentu. Menguasai pemilihannya adalah pembeda senior engineer dari penggemar pattern.
| Gaya | Biaya Awal | Biaya Jangka Panjang | Nilai Maksimum Saat |
|---|---|---|---|
| Layered | Terendah | Naik jika domain rumit | CRUD, tim kecil-besaran, MVP |
| Modular monolith + layered | Rendah–sedang | Stabil | Produk berkembang multi-domain |
| Hexagonal/Clean per modul | Tinggi | Turun (perubahan murah) | Domain kompleks, sistem awet |
Insight pentingnya: biaya hexagonal/clean bersifat upfront, manfaatnya tertunda. Startup yang akan pivot dalam 6 bulan membayar ceremony untuk manfaat yang tak sempat dinikmati.
Tiga pertanyaan penentu:
Startup MVP (5 dev, produk belum terbukti): Layered/modular sederhana. Service-repository + DTO disiplin (ep.8–10) sudah melindungi cukup. Fokus energi pada validasi pasar, bukan folder. Strangler-friendly: modular ringan memudahkan refactor nanti.
Fintech core (30+ dev, uang nyata, audit): Hexagonal/Clean penuh + DDD (ep.18–19). Invarian ledger tak boleh dilanggar → rich aggregate dengan arch test. Ports memungkinkan swap provider payment & simulasi regulator. Ceremony di sini adalah asuransi.
Produk besar multi-domain (e-commerce raksasa): Modular monolith dengan internal style bebas per modul — modul catalog cukup layered, modul ordering hexagonal+CQRS. Standar lintas-modul hanya satu: public API & event contract (ep.14).
Note
Perhatikan polanya: makin besar organisasi, makin penting BATAS antar modul daripada gaya DALAM modul. Shopify-scale modular monolith buktinya.
Target outline: tulis ADR (Architecture Decision Record) memilih gaya untuk skenario given.
A. Marketplace UMKM: 4 dev, fitur = katalog+order+pembayaran via Midtrans,
runway 9 bulan.
B. Core banking lending: 40 dev, aturan bunga kompleks + audit regulator,
umur target 10 tahun.
C. Internal HR tools: 3 dev, CRUD dominan, 200 user internal.Kriteria penilaian latihan kalian (self-check):
[x] Keputusan bisa DITOLAK orang lain lewat argumen konteks (bukan selera)
[x] Ada trigger review eksplisit (kapan ADR ini usang)
[x] Konsekuensi negatif DIJUJURI, bukan disembunyikan
[x] Hybrid diperbolehkan - tidak semua-or-nothingTip
Simpan ADR ini di repo (folder docs/adr), nomori berurutan. Serangkaian ADR adalah CV teknis terbaik seorang calon architect — ia menunjukkan CARA BERPIKIR, bukan sekadar hasil.
Rangkuman episode ini:
Episode 18 masuk dunia DDD bagian pertama: Strategic Design — ubiquitous language, bounded context, context mapping, dan event storming ringkas untuk studi kasus order management. Sampai jumpa!