CQRS đã đưa tôi vào chế độ suy nghĩ .. Tôi đang cố gắng để bắt đầu một dự án mới với ý tưởng CQRS. Những điều chính mà tôi thích là
1) việc tách truy vấn và lệnh. Truy vấn miền của chúng tôi đã là một vấn đề.
2) Sử dụng bộ nhớ sự kiện để kiểm tra - Tôi sẽ không sử dụng nó để phát lại - ít nhất là bây giờ.CQRS và sự kiện miền
tôi tốt với phía truy vấn và tôi vẫn còn có một số câu hỏi về tên miền Sự kiện
Nếu một kết quả Command trong updation của Nhiều Uẩn Roots (Ex. Trình tự, OrderDetail) tôi sẽ có họ scoped dưới UnitofWork (giao dịch). Bây giờ mỗi miền chịu trách nhiệm xuất bản các sự kiện khi thay đổi diễn ra ở trạng thái của nó.
hãy để chúng tôi nói lệnh thay đổi 3 bản ghi OrderDetail. Mỗi OrderDetail sẽ xuất bản 2 Sự kiện. Cuối cùng chúng ta có 6 sự kiện.
a) Nếu tôi xuất bản các sự kiện ngay khi tôi thực hiện thay đổi đối tượng miền (nhưng không cam kết giao dịch) thì làm cách nào để đảo ngược các sự kiện đã được xuất bản (và có thể đã bị người đăng ký sử dụng)
- Điều tôi có thể nghĩ là giữ các sự kiện được xuất bản trong danh sách 'dưới cùng một đơn vị phạm vi công việc' và khi ủy ban giao dịch được gọi, lưu trữ và xuất bản nó. Điều này âm thanh một cái gì đó người ta sẽ làm.
b) Nếu những thay đổi trong OrderDetail đòi hỏi rằng một số thay đổi cũng diễn ra trong thứ tự tổng hợp gốc sau đó
i) Tôi có nên căn những thay đổi đó bằng cách xử lý các sự kiện xuất bản bởi OrderDetail tổng hợp? Ví dụ: chúng ta hãy nói rằng hai chi tiết đơn đặt hàng đã được gỡ bỏ. Điều này làm cho trạng thái Đơn đặt hàng từ "ưa thích" thành "Không được ưu tiên". ii) Điều gì xảy ra nếu lỗi Sự kiện và không cập nhật trạng thái đơn đặt hàng - Nếu đơn đặt hàng vẫn được ưa thích thì nó sẽ được chuyển đi sau 2 ngày.
Thêm một câu hỏi
c) Are "Domain sự kiện là nguồn gốc của tất cả thay đổi trạng thái ứng dụng" hoặc là họ "Kết quả của tất cả những thay đổi trạng thái ứng dụng"
Cảm ơn bạn trước,
The Mar
Tôi khuyên bạn nên đăng câu hỏi như thế này lên Google Group trên DDD/CQRS. Có nhiều học viên ở đó hơn. –