Tôi nhận được khái niệm chung về CQRS, nhưng tôi có một số câu hỏi khi nói đến việc vượt ra ngoài mã ví dụ và các trang trình bày ở ngoài để xử lý các vấn đề trong thế giới thực.Xác nhận và sửa lỗi trong CQRS
Validation
Khi bạn cần phải làm xác nhận của một lệnh có liên quan đến giá trị kiểm tra từ cơ sở dữ liệu, bạn sẽ làm gì? Đăng ký dịch vụ, tôi phải nhập một địa chỉ email duy nhất. Một lý do mà tôi đã nghe là rất ít người dùng sẽ nhập địa chỉ email trùng lặp, do đó, chỉ cần xử lý nó khi xử lý lệnh và gửi cho họ email "xin lỗi" hoặc có thể đề xuất họ đặt lại mật khẩu của họ. Quá trình này do đó tránh có một readmodel vì lợi ích của việc xác nhận. Nhưng làm thế nào để bạn đối phó với các trường hợp trùng lặp trong xử lý lệnh? làm thế nào để bạn biết rằng đó là một bản sao? kiểm tra một readmodel? bạn có thể cũng đã sử dụng nó ở nơi đầu tiên cho khả năng sử dụng tốt hơn.
Thay đổi chức năng/sửa chữa lỗi
gì xảy ra khi bạn cần phải thay đổi cách thức một lệnh công trình, hoặc sửa chữa một lỗi? Trong triết lý phụ thêm, tôi phải làm gì với tất cả các lệnh cũ và trình xử lý lệnh? Tôi không thể đổi tên chúng thành _legacy và ẩn chúng đi nếu không sự kiện deserialization của tôi sẽ không hoạt động. Những giải pháp thanh lịch là có để đối phó với điều này?
Cảm ơn