Kodeloka
  1. Kodeloka
  2. Kelas Microservices
  3. Materi

Arsitektur · Modul 2 dari 24

Belajar Microservices - Arsitektur Monolith

Kelebihan dan kekurangan Arsitektur Monolith, masalah scaling, blast radius kegagalan, bottleneck kompilasi, serta skenario saat Monolith masih pilihan terbaik.

1. Memahami Arsitektur Monolith

Pada aplikasi Monolith, seluruh fungsionalitas bisnis (User Authentication, Catalog Management, Payment, Cart, Shipping) dibangun di dalam satu basis kode (codebase), dikompilasi bersama, dan berjalan sebagai satu unit proses tunggal di server.

2. Keuntungan Arsitektur Monolith

  • Kemudahan Pengembangan Awal: Tidak ada overhead latensi jaringan antar fungsi, panggilan fungsi menggunakan Memory Call instan.
  • Kemudahan Testing & Debugging: Sangat mudah menjalankan pengujian E2E (End-to-End) dan memasang debugger di 1 aplikasi lokal.
  • Transaksi ACID Sederhana: Menggunakan transaksi basis data lokal RDBMS (BEGIN TRANSACTION ... COMMIT) tanpa perlu protokol terdistribusi.

3. Masalah Utama (Pain Points) Monolith saat Mengubah Skala

⚠️ Masalah Monolith pada Skala Besar:
  • Single Point of Failure (Large Blast Radius): Kebocoran memori (Memory Leak) di modul laporan PDF dapat menghentikan seluruh server dan mematikan fungsi transaksi pembayaran.
  • Tight Coupling: Perubahan kode di modul User berisiko merusak modul Cart secara tidak sengaja.
  • Scalability Inefficient: Harus menggandakan seluruh instance aplikasi raksasa meskipun hanya 1 fitur yang membutuhkan kapasitas CPU tinggi.
  • Build Time Lambat: Proses kompilasi dan CI pipeline membutuhkan waktu berjam-jam untuk 1 baris perubahan kode.