The relationship between the restricted context in the CQRS / ES architecture is achieved through events; context A generates events as a response to commands, and these events are then redirected to context B via the event bus (message queue).
Or ... you can save events in an eventstore (belonging to context A). Or ... both (save and forward).
My question is: from context B, should events be pulled from the context store? or just consume events that have passed through the event bus?
I am leaning towards a pull-up approach. Because then we can make some catch-up in context B. On the contrary, in an sensible approach, context B may not be aware of the events that were delivered when B experiences downtime.
So ... does that mean ... when we have an eventstore, can we just forget about the message queue (seems redundant)?
Or am I missing something?
source
share