Failed CQRS implement in Microservice architecture.
CQRS is a useful pattern when having a complex business application where reading and writing have separate requirements. For an example, Write wants to maintain a model in normalised form in a RDB but Read can represent model as document in a Document database. But it is not easy to get head around about CQRS. It comes with Reads, Writes, Events, Commands, DDD, Event Sourcing, Eventual Consistency . The common way of implementing CQRS is by creating two services communicating with Events. Our CQRS Implementation In order to bring CQRS into our custom framework we used Axon framework. At time when we evaluated CQRS frameworks, Axon was the easiest way to work with and had good support for Spring Boot framework. This is how Axon was used. CQRS implementation We ended up creating two separate services for Writes and Reads. These two services connected via RabbitMQ. Write Service Write service handles all the Updates. We did not try to convince developers that