CQRS - obsługa kasowania agregatu.

0

Witam,
Potrzebuję zrobić kasowanie danego agregatu po id, problem mam z tym, że za bardzo nie wiem jak obsłużyć komendę kasowania.
W projekcie event handler używa Broadway\EventSourcing\EventSourcingRepository a tutaj jest tak naprawdę tylko metoda load i save

1

Jeśli stosuje się event sourcing to usuwania "fizycznego" się nie używa. Zamiast tego emituje się event sygnalizujący usunięcie agregatu, np. OrderRemoved. Co innego jeśli ma się oddzielny read model- po otrzymaniu eventu można usunąć zbudowaną projekcję z bazy.

0
Aventus napisał(a):

Jeśli stosuje się event sourcing to usuwania "fizycznego" się nie używa. Zamiast tego emituje się event sygnalizujący usunięcie agregatu, np. OrderRemoved. Co innego jeśli ma się oddzielny read model- po otrzymaniu eventu można usunąć zbudowaną projekcję z bazy.

Spoko, czyli wystarczy, że zapisze sobie event że coś zostało skasowane. Ale czy czasem dalej nie będzie możliwe operowanie na tym agregacie?

Ps. dopiero się oswajam z taką architekturą.

1

Agregat musi zapewniać transakcyjność w obrębie swojego kontekstu domenowego. W tym przypadku nie powinien pozwolić na dokonywane dalszych operacji, tak samo jak np. warstwa widoku nie powinna w ogóle mieć wyświetlonego czegoś co zostało usunięte.

Najważniejsza zasada przy event sourcingu jaka trzeba zapamiętać- eventow się nie usuwa. Nigdy. Nawet jeśli zostanie wyemitowany jakiś błędny event, to należy wyemitowac kolejny event korekcyjny.

1 użytkowników online, w tym zalogowanych: 0, gości: 1