4×4 Matrix: Taxonomi Keputusan Arsitektur
Masalah Klasifikasi
Saat tim membuat keputusan arsitektur, pertanyaan pertama adalah: “Ini masuk kategori apa?” Tanpa taxonomi yang jelas, keputusan bertebaran tanpa struktur. Ada yang masuk “tech stack”, ada yang masuk “coding standards”, ada yang masuk “process”. Tidak konsisten.
MANTRA memecahkan ini dengan 4×4 Decision Matrix: 4 Domain × 4 Aspect = 16 kategori.
4 Domain
INT (Intent & Direction)
Keputusan tentang arah — visi, tujuan, dan strategi produk. “Apa yang kita bangun dan untuk siapa?”
Contoh:
- “Produk ini adalah SaaS multi-tenant untuk hospitality industry”
- “Target user adalah hotel bintang 3-5 di Asia Tenggara”
ARCH (Architecture)
Keputusan tentang struktur — pattern, teknologi, dan desain teknis. “Bagaimana kita membangunnya?”
Contoh:
- “Backend menggunakan Clean Architecture dengan 4 layers”
- “Database menggunakan PostgreSQL dengan RLS untuk multi-tenancy”
CTL (Control & Policy)
Keputusan tentang aturan — standar, kebijakan, dan batasan. “Apa yang boleh dan tidak boleh?”
Contoh:
- “Semua API response menggunakan format
{success, data, error}” - “Tidak boleh ada hardcoded credentials di source code”
EVO (Evolution)
Keputusan tentang perubahan — migrasi, versioning, dan deprecation. “Bagaimana kita berevolusi?”
Contoh:
- “Migrasi dari RabbitMQ ke Kafka selesai Q1 2026”
- “API v1 deprecated, gunakan v2 mulai Maret 2026”
4 Aspect per Domain
Setiap domain memiliki 4 aspect:
| Aspect | INT | ARCH | CTL | EVO |
|---|---|---|---|---|
| A01/A05/A09/A13 | Vision | Pattern | Standard | Strategy |
| A02/A06/A10/A14 | Scope | Component | Compliance | Migration |
| A03/A07/A11/A15 | Stakeholder | Integration | Monitoring | Versioning |
| A04/A08/A12/A16 | Specification | Contract | Enforcement | Deprecation |
Total: 16 kategori yang mencakup semua aspek keputusan arsitektur.
Decision Code Format
Setiap keputusan mendapat kode unik:
ARCH-A06-001-v1.0.0
│ │ │ │
│ │ │ └── Semantic version
│ │ └────── Sequence number
│ └────────── Aspect (A06 = Component)
└─────────────── Domain (Architecture)
Kode ini menjadi referensi permanen yang bisa digunakan di code comments, documentation, dan conversation:
# mantra:ARCH-A06-001 — Clean Architecture layers
class UserService:
def __init__(self, repo: UserRepository):
self.repo = repo
Kenapa 4×4, Bukan Lebih?
Taxonomi yang terlalu granular membuat klasifikasi sulit. Taxonomi yang terlalu kasar tidak berguna. 4×4 = 16 kategori memberikan keseimbangan:
- Cukup spesifik untuk membedakan jenis keputusan
- Cukup sederhana untuk diingat dan digunakan
- Simetris — setiap domain punya jumlah aspect yang sama
- Exhaustive — semua keputusan arsitektur bisa masuk salah satu kategori
Contoh Penggunaan
Tim Anda memutuskan: “Gunakan JWT RS256 untuk authentication.”
- Domain: ARCH (ini tentang struktur teknis)
- Aspect: A08 (Contract — tentang interface/protocol antar service)
- Sequence: 001 (keputusan pertama di kategori ini)
- Version: v1.0.0 (versi awal)
- Code:
ARCH-A08-001-v1.0.0
Ketika nanti perlu evolusi (misalnya pindah ke Paseto), buat v2.0.0 yang supersedes v1.0.0.
Benefit untuk AI Retrieval
Taxonomi terstruktur membuat retrieval sangat akurat:
- AI sedang coding authentication? → Otomatis retrieve semua
ARCH-A08-*decisions - AI review security policy? → Otomatis retrieve semua
CTL-A09-*decisions - Engineer bertanya tentang migrasi? → Otomatis retrieve semua
EVO-A14-*decisions
Tanpa taxonomi, retrieval hanya mengandalkan keyword matching yang sering miss.
Mulai Klasifikasikan
MANTRA menyediakan taxonomi lengkap via mantra_get_taxonomy MCP tool. Saat membuat keputusan, sistem akan membantu mengklasifikasikan ke domain dan aspect yang tepat.
16 kategori. Semua keputusan tercakup. Tidak ada yang terlewat.