I am implementing ES / CQRS ausing axon 3.3.
In the command part, I received comands that aggregate apply and store corresponding events in a event store using MongoDB as storage.
In the query part, I have a event handler that update a separate database to build a optimized read model. Great feature is that I can replay events using tracking event processor. It works fine, at least for the moment as my commands and queries part execute in the same JVM.
Now I want to separate these two parts in two independant microservices (may be later I will have A third micro service with another database for another optimized read model). How to send events between these microservices, and how to replay events in read micro srvice in order to initialize its read model. I have used rabiitmq and amqp to send events; it works fine but does not allow to replay events.
More generally, in microservices architectures, how newly created microservices can replay past events ? AMQp does not seem an option. Should I use EventStore or Kafka for the event bus in commands part, and not process events in the queries part but rather subscribe to streams or projections ?
Thanks in advance to those who will participate in this thinking.