Kiến trúc Microservices phân tách sự phức tạp của hệ thống bằng cách module hóa. Mỗi Microsevices phụ trách xử lí 1 khả năng đáp ứng nghiệp vụ sinh ra lợi nhuận.
Các vấn đề của Domain Model partern trong Microservices
– Liên kết qua object reference
– Cần two phase commit (2PC) để đồng bộ trên dữ liệu phân tán
– 2PC không thích hợp với các ứng dụng hiện đại. Không hỗ trợ NoSQL
Áp dụng tư tưởng của Domain Driven Design để giải quyết
– Các thành phần chính trong DDD: Entity, Value object, Services, Repositories, Aggregates
– Aggregates chính là chìa khóa để giải quyết vấn đề liên kết giữa các object
– Các khái niệm cơ bản trong DDD
– Giải thích các rule trong Aggregates
Đồng bộ hóa trên Microservices
– Sử dụng event-driven và eventually consistent
– Event Sourcing
– Áp dụng Event Storming để thiết kế Event Sourcing
Đơn giản hóa Microservices trên eShopOnContainer
– CQRS đơn giản với 1 DB
– Không lưu Domain Event mà chỉ lưu Integrated Event
– Database lưu trữ State thay vì Event