SOA (Service-Oriented Architecture) dan microservices keduanya menguraikan sistem menjadi layanan, tetapi mereka berbeda dalam granularitas, kepemilikan data, dan cara layanan berkomunikasi.
SOA (Service-Oriented Architecture) dan microservices keduanya menguraikan sistem menjadi layanan, tetapi mereka berbeda dalam granularitas, kepemilikan data, dan cara layanan berkomunikasi.
| Aspek | SOA | Microservices |
|---|
| Granularitas | Butir kasar | Butir halus |
| Komunikasi | Sering melalui ESB | Ringan (REST/gRPC/messaging) |
| Data | Sering dibagikan | Basis data per layanan |
| Tata kelola | Tersentralisasi | Terdesentralisasi |
| Protokol | Sering SOAP/XML | Biasanya HTTP/JSON, gRPC |
SOA ─▶ Service A ─▶ [ Enterprise Service Bus ] ─▶ Service B
(smart pipes, central orchestration, shared schemas)
Microservices ─▶ Service A ──(direct REST/gRPC/event)──▶ Service B
("smart endpoints, dumb pipes" — logic lives in services)
Microservices mengikuti prinsip "smart endpoints, dumb pipes": kecerdasan hidup dalam layanan, dan transportasi tetap sederhana. SOA sering memusatkan logika dalam ESB.
Jangan perkenalkan kembali bottleneck gaya ESB. Bus pusat yang berat mengubah microservices kembali menjadi SOA dengan langkah tambahan.
Perbedaannya sebagian besar tentang desentralisasi: microservices mendorong kepemilikan data dan logika ke setiap layanan untuk menghindari bottleneck pusat yang mengganggu banyak penerapan SOA.
Memahami ini mencegah Anda dari secara tidak sengaja membangun kembali coupling SOA di bawah label microservices.