Bagikan melalui


Mengatasi Kompleksitas Bisnis dalam Layanan Mikro dengan Pola DDD dan CQRS

Tip

Konten ini adalah kutipan dari eBook berjudul “.NET Microservices Architecture for Containerized .NET Applications” yang tersedia di .NET Docs atau sebagai PDF yang dapat diunduh gratis dan dapat dibaca secara luring.

.NET Microservices Architecture for Containerized .NET Applications eBook cover thumbnail.

Merancang model domain untuk setiap layanan mikro atau Konteks Terikat yang mencerminkan pemahaman tentang domain bisnis.

Bagian ini berfokus pada layanan mikro yang lebih canggih yang Anda terapkan saat Anda perlu mengatasi subsistem kompleks, atau layanan mikro yang berasal dari pengetahuan pakar domain dengan aturan bisnis yang terus berubah. Pola arsitektur yang digunakan di bagian ini didasarkan pada pendekatan desain berbasis domain (DDD) dan Pemisahan Tanggung Jawab Perintah dan Kueri (CQRS), seperti yang digambarkan dalam Gambar 7-1.

Diagram comparing external and internal architecture patterns.

Perbedaan antara arsitektur eksternal: pola layanan mikro, gateway API, komunikasi tangguh, pub/sub, dll., dan arsitektur internal: berbasis data/CRUD, pola DDD, injeksi dependensi, beberapa pustaka, dll.

Gambar 7-1. Arsitektur layanan mikro eksternal versus pola arsitektur internal untuk setiap layanan mikro

Meskipun demikian, sebagian besar teknik untuk layanan mikro berbasis data, seperti cara mengimplementasikan layanan ASP.NET Core Web API atau cara mengekspos metadata Swagger dengan Swashbuckle atau NSwag, juga berlaku untuk layanan mikro yang lebih canggih yang diterapkan secara internal dengan pola DDD. Bagian ini adalah perpanjangan dari bagian sebelumnya, karena sebagian besar praktik yang dijelaskan sebelumnya juga berlaku di sini atau untuk segala jenis layanan mikro.

Bagian ini, pertama-tama, memberikan detail tentang pola CQRS yang disederhanakan yang digunakan dalam aplikasi referensi eShopOnContainers. Nantinya, Anda akan mendapatkan gambaran umum tentang teknik DDD yang memungkinkan Anda menemukan pola umum yang bisa Anda gunakan kembali dalam aplikasi Anda.

DDD adalah topik besar dengan sekumpulan sumber daya yang kaya untuk belajar. Anda dapat memulai dengan buku-buku seperti Domain-Driven Design oleh Eric Evans dan materi tambahan dari Vaughn Vernon, Jimmy Nilsson, Greg Young, Udi Dahan, Jimmy Bogard, dan banyak pakar DDD/CQRS lainnya. Tetapi yang terpenting, Anda perlu mencoba mempelajari cara menerapkan teknik DDD dari percakapan, papan tulis, dan sesi pemodelan domain dengan para ahli di domain bisnis konkret Anda.

Sumber Daya Tambahan:

DDD (Domain-Driven Design/Desain Berbasis Domain)
Buku DDD
Pelatihan DDD