Menata Django Sebagai Modular Monolith
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.

© 2026 Hilman. Ditulis pelan-pelan.