2013-08-07 27 views
6

Tôi tự hỏi liệu có thích hợp hơn khi xuất bản sự kiện thay vì ném ngoại lệ từ tập hợp. Giả sử, tôi có một miền có yêu cầu chỉ có sinh viên của một cấp lớp nhất định mới có thể đăng ký tham gia các môn thể thao. Nếu tôi gọi EnrollForSports trên một học sinh không đáp ứng các tiêu chí, liệu tổng hợp có ném một ngoại lệ hoặc xuất bản một sự kiện, đặc biệt nếu các tập hợp hoặc người quản lý quy trình khác quan tâm đến kết quả của quá trình?CQRS - Sự kiện ngoại lệ tên miền Vs cho các tình huống ngoại lệ

Nếu sự kiện được xuất bản, điều đó có nghĩa là sẽ cần một trình xử lý sự kiện nội bộ tương ứng để xử lý sự kiện khi chúng tôi phát lại, mặc dù sự kiện sẽ không thay đổi trạng thái tổng hợp?

Nếu ngoại lệ bị ném, các bên khác sẽ được thông báo như thế nào? Trình xử lý lệnh có thể bắt ngoại lệ và sau đó tăng sự kiện không? Sự kiện có thể được nâng lên từ trình xử lý lệnh không?

Trả lời

5

Nói một cách chính xác, lệnh phải hợp lệ và được thực hiện hoặc không hợp lệ và không được thực hiện. Ý tưởng với các sự kiện lỗi sinh sản khiến bạn ở đâu đó ở giữa và phản hồi cho bất kỳ ai gửi lệnh không rõ ràng và bị trì hoãn. Đó cũng là một sự phức tạp không cần thiết trong miền của bạn. Nếu bạn ném một ngoại lệ, nó sẽ đến như một phản hồi ngay lập tức cho mã máy khách gửi lệnh.

+5

Các phản hồi ngay lập tức sẽ tất nhiên chỉ hoạt động nếu ngoại lệ được ném đồng bộ, chứ không phải ở đâu đó xuống dòng của một saga hoặc quá trình quản lý phức tạp tạo ra bước nhảy tiếp theo các sự kiện và lệnh. –

Các vấn đề liên quan