djangoarchitecture
Menata Django Sebagai Modular Monolith
2026-07-18 · 1 menit baca
Sebagian besar tim jatuh ke microservices terlalu cepat, padahal masalah yang sedang mereka coba selesaikan sebenarnya masalah batas modul, bukan masalah skala.
Kenapa modular monolith
Ada tiga alasan utama yang membuat saya bertahan di pendekatan ini untuk MyBhakti:
- Deployment tetap satu unit, jadi operasional jauh lebih sederhana di tahap awal.
- Batas antar modul tetap bisa dijaga ketat lewat konvensi import dan interface.
- Migrasi ke layanan terpisah nanti jadi ekstraksi, bukan rewrite total.
Aturan yang dipegang
Setiap modul (billing, procurement, inventory) punya folder sendiri dengan services.py sebagai satu-satunya pintu masuk yang boleh dipanggil modul lain. Tidak ada query lintas modul langsung ke model punya modul lain.
# procurement/services.py
def create_purchase_order(data: POInput) -> PurchaseOrder:
... Aturan ini sederhana untuk ditulis, tapi butuh disiplin untuk dijaga — terutama saat deadline mepet dan godaan untuk “pinjam” model modul lain jadi besar.