Ai chịu trách nhiệm xử lý các sự kiện miền? Dịch vụ ứng dụng, dịch vụ miền hoặc tổ chức chính nó?Trong DDD, ai sẽ được tôn trọng để xử lý các sự kiện miền?
Hãy sử dụng ví dụ đơn giản cho câu hỏi này.
Giả sử chúng tôi làm việc trên ứng dụng cửa hàng và chúng tôi có dịch vụ ứng dụng dành riêng cho các hoạt động đặt hàng. Trong ứng dụng này Order
là một quy tắc tổng hợp và các quy tắc sau, chúng tôi chỉ có thể làm việc với một tổng hợp trong một giao dịch duy nhất. Sau khi lệnh được đặt, nó được duy trì trong cơ sở dữ liệu. Nhưng còn nhiều việc phải làm. Trước hết, chúng ta cần phải thay đổi số lượng các mặt hàng có sẵn trong kho và thứ hai thông báo cho một số phần khác của một hệ thống (có thể là một ngữ cảnh khác) rằng quy trình vận chuyển cho thứ tự cụ thể đó sẽ được bắt đầu. Bởi vì, như đã nêu, chúng tôi chỉ có thể sửa đổi một tổng hợp trong giao dịch, tôi nghĩ về việc xuất bản OrderPlacedEvent
sẽ được xử lý bởi một số thành phần trong các giao dịch riêng biệt.
Câu hỏi phát sinh: thành phần nào sẽ xử lý loại sự kiện này?
Cảm ơn bạn đã trả lời. Về độ bền - Tôi chưa biết cách tổ chức nó. Tôi nghĩ rằng lý tưởng, chúng ta nên có hai giao dịch và một số hàng đợi bền (JMS?) - sự kiện được xuất bản trong cùng một giao dịch và do đó chúng tôi đảm bảo rằng giao dịch đó được gửi đúng và giao dịch khác được bắt đầu khi tin nhắn được chọn từ hàng đợi. Bằng cách này, chúng tôi có thể đảm bảo rằng nếu có sự cố không ổn định sẽ được phân phối lại –