2011-01-12 18 views
5

Obecnie studiuję CQRS i widzę kilka kodów źródłowych (SimpleCQRS Grega Younga i Marka Nihjofa). Nadal mylę ze zdarzeniem command i domain. Czy zawsze musimy zachować domenę, aby "zapisywać bazę danych" w module obsługi zdarzeń domeny? Czy to często, gdy wywołuję kod, aby zapisać domenę do bazy danych w module obsługi komend (zwykle przez repozytorium domeny), a następnie pozwól obsługi zdarzeń domeny na obsługę innych rzeczy (takich jak: aktualizowanie modelu odczytu i wykonywanie innych usług, takich jak powiadomienia e-mail) . Dzięki.Najlepsze miejsce do zapisania domeny do zapisu bazy danych w CQRS (Command Handler lub Domain Event Handler)

+0

może to pomoże http://www.udidahan.com/2009/12/09/clarified-cqrs/To jest naprawdę dobry post z Udi Dahan na ten temat. – roundcrisis

Odpowiedz

7

Przechowywanie zdarzeń: Nie utrzymałbym zdarzeń przy użyciu procedury obsługi zdarzeń. Delegowanie go z programu obsługi komend do repozytorium lub jednostki pracy jest prawdopodobnie najbardziej powszechnym podejściem przy korzystaniu z eventowania. Tak, tak, często robi się wytrwałość w mechanizmie poleceń (cóż, deleguj go) i spraw, aby program obsługi zdarzeń wykonywał inne czynności.

Zapisywanie stanu: Kiedy nie używam eventowania, zakładam, że ludzie przechowują zdarzenia obok stanu lub gorzej, wcale (w kolejce jako mechanizm perswazji). Mimo to logika trwałości znajduje się w przestrzeni kontrolera poleceń.

Polecenia przechwytywania intencji i powiedz systemowi, co należy zrobić. Zawsze używaj imperatywu. Zdarzenia wychwytują zdarzenia i informują, co się stało w systemie. Zawsze w czasie przeszłym.

Uderzyłeś mnie jako kogoś nowego w tym temacie. Najlepszą rzeczą, którą można zrobić, aby zrozumieć koncepcje CQRS, jest oglądanie materiałów pod numerami http://cqrsinfo.com i http://skillsmatter.com (architektura/ddd). Inni ludzie, którzy blogują na ten temat (z mojej góry): Udi Dahan, Gregory Young, Jonathan Oliver, Rinat Abdullin, Jérémie Chassaing, ...

+0

Dzięki za wyjaśnienie, jestem rzeczywiście nowy w CQRS. – user522037