Applying CQRS and event sourcing
Currently, we have three microservices responsible for the provision of news in our application: famous_news_service
, sports_news_service
, and politics_news_service
. Each have the same technical structure, but are separated by having different domains. As the domain of each of these microservices is set, it can receive completely different technical developments; however, in this case, we will modify the three, in the same way, to apply the aggregator design pattern. The first modification will be in the storage tier.
Separating the database
Inside of each microservice directory, we will create two more directories.In each of these new directories will be a Dockerfile
with configurations for the database. We will use two different databases for each microservice to use CQRS.One database is for CommandStack and one for QueryStack.
With these changes, the directory structure for the News
microservices looks like this:
├───FamousNewsService │ ├───command_db ...