Architecture Partitioning
Architecture Partitioning
Selain dilihat secara klasifikasi monolithic atau distributed, software architecture juga bisa dilihat secara struktur partisinya.
Software architecture baik itu monolithic atau distributed, secara partisi bisa dibagi berdasarkan teknis atau domain.
Partisi secara struktur bisa digunakan di monolithic atau distributed.
Technical Partitioning
Arsitektur Technical Partitioning membagi komponen-komponen dalam system atau aplikasi secara teknis.
Contoh arsitektur klasik yang sering digunakan adalah Layered (N-Tier) Architecture.
Dalam Technical Partitioning, komponen dalam system dikelompokan secara teknis, misal :
- Presentation Layer merupakan komponen yang menangani user interface
- Business Layer, merupakan komponen yang menangani logika dan aturan bisnis
- Persistence Layer, merupakan komponen yang menangani interaksi dengan sistem basis data
- Database Layer, merupakan komponen untuk menyimpan data
Domain Partitioning
Berbeda dengan Technical Partitioning, dalam Domain Partitioning, pembagian struktur komponen dalam system dikelompokan berdasarkan Domain / Fitur / Departemen secara bisnis nya.
Artinya semua Technical Partitioning seperti Presentation, Business Logic, Persistence, digabung dalam per domain system.
Partisi system berdasarkan Domain, populer sejak dikenalkan dalam buku berjudul “Domain Driven Design” karya Eric Evans.
Pilih yang Mana?
Technical ataupun Domain Partitioning memiliki kelebihan dan kekurangan, namun secara pribadi saya rekomendasikan gunakan :
- Technical Partitioning ketika aplikasi yang akan dibuat sederhana dan tidak kompleks. Selain itu ketika jumlah anggota tim pengembang tidak terlalu banyak.
- Domain Partitioning ketika aplikasi yang akan dibuat kompleks dan fitur aplikasi sangat banyak.
- Dan sangat cocok ketika anggota tim pengembang banyak pembagian tim berdasarkan jenis domain nya.