Mặc dù tôi đã đọc mãnh liệt về tính toàn vẹn giao dịch trên NEventStore, tôi không thể nắm bắt được cách NEventStore thực sự mở rộng khi có nhiều phiên bản của NEventStore có dây.NEventStore: Cách điều phối các sự kiện không thể so sánh được?
Để tóm tắt sự hiểu biết của tôi, Sự kiện được thêm vào cam kết là không thể chia sẻ, sau đó nó xuất bản cho người điều phối và sau đó được đánh dấu là đã gửi đi.
Đồng thời, bất cứ khi nào bạn kết nối NEventStore, nó sẽ tìm kiếm các sự kiện không được tán thành, sau đó gửi đi và đánh dấu sự kiện là được gửi đi.
Nhưng sau đó phải có khoảng thời gian ngắn khi kết nối một cửa hàng sự kiện mới sẽ thấy các sự kiện không được sắp xếp sắp được gửi đi (từ các cửa hàng khác). Cửa hàng sự kiện mới sẽ gửi lại các sự kiện.
Hãy suy nghĩ về kiến trúc này:
Client -> Command Bus -> Command Handler -> EventStore persist -> Dispatch to Event Handlers
Nếu chúng tôi có nhiều Command Handlers
để xử lý tải của chúng tôi, chúng tôi cũng sẽ kiên trì nhiều sự kiện.
Nếu chúng tôi thường xử lý hoặc tạo Command Handlers
, thì nhiều EventStores sẽ được kết nối và gửi đi các sự kiện đã được gửi đi.
Tôi hiểu rằng người tiêu dùng của người điều phối phải là không có tính chất riêng, đó không phải là vấn đề của tôi. Vấn đề của tôi là liệu chúng tôi sẽ cung cấp một lượng tải không cần thiết cho người tiêu dùng các trình xử lý lệnh trong một tình huống tải cao?