Domain Driven Design & Microservices

AUTHOR: Lâm Đinh Thế


Cùng tìm hiểu tại sao 1 cuốn sách viết cách đây 16 năm về trước, vốn chỉ là những tư duy trong việc phân tách nghiệp vụ, lại là giải pháp tuyệt vời cho các vấn đề trên Microservices.

DDD-_-Microservices

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


Post Views: 54

Comments

comments