Mam ogólną koncepcję CQRS, ale mam kilka pytań, jeśli chodzi o wyjście poza przykładowy kod i slajdy, które są tam, aby poradzić sobie z problemami świata rzeczywistego.Walidacja i naprawa błędów w CQRS
Validation
Kiedy trzeba zrobić walidację polecenia, które obejmuje sprawdzanie wartości z bazy danych, co zrobić? Zarejestruj się w usłudze, muszę podać unikalny adres e-mail. Jeden z argumentów, jaki słyszałem, jest taki, że jest bardzo mało prawdopodobne, że użytkownik wprowadzi zduplikowany adres e-mail, więc po prostu obsłuż go podczas przetwarzania polecenia i wyślij wiadomość e-mail z napisem "przepraszam" lub sugeruje zresetowanie hasła. W związku z tym proces ten unika konieczności posiadania modelu readmodel w celu walidacji. Ale jak sobie radzisz z duplikatem w obsłudze komend? skąd wiesz, że to duplikat? sprawdź readmodel? równie dobrze możesz to wykorzystać w pierwszej kolejności dla lepszej użyteczności.
Zmiany błędów funkcjonalność/mocujących
Co się dzieje, gdy trzeba zmienić sposób, w jaki działa polecenie, lub naprawić błąd? W filozofii "tylko dołącz", co mam zrobić ze wszystkimi starymi komendami i procedurami obsługi komend? Nie mogę zmienić ich nazwy na _legacy i ukryć ich, w przeciwnym razie moja deserializacja zdarzeń nie będzie działać. Jakie są eleganckie rozwiązania, aby sobie z tym poradzić?
Dzięki