This architecture has the following advantages:
- Independent scalability and deployment: We can now scale and deploy an individual component based on its usage. As in the case of microservices, we can now have separate microservices for each of the tasks, say a read microservice and a write microservice, in this architecture stack.
- Choice of technologies: Freedom with regards to the choice of technologies for the different sections of the business model. For instance, for the command functionality, we could choose Scala or similar (assuming that we have a complex business model, and we have a lot of data to write). In the case of a query, we can choose, for example, ROR (Ruby on Rails) or Python (which ...