Chapter 7. Implementing queries in a microservice architecture

 

This chapter covers

  • The challenges of querying data in a microservice architecture
  • When and how to implement queries using the API composition pattern
  • When and how to implement queries using the Command query responsibility segregation (CQRS) pattern

Mary and her team were just starting to get comfortable with the idea of using sagas to maintain data consistency. Then they discovered that transaction management wasn’t the only distributed data-related challenge they had to worry about when migrating the FTGO application to microservices. They also had to figure out how to implement queries.

In order to support the UI, the FTGO application implements a variety of query operations. Implementing these queries in the existing monolithic application is relatively straightforward, because it has a single database. For the most part, all the FTGO developers needed to do was write SQL SELECT statements and define the necessary indexes. As Mary discovered, writing queries in a microservice architecture is challenging. Queries often need to retrieve data that’s scattered among the databases owned by multiple services. You can’t, however, use a traditional distributed query mechanism, because even if it were technically possible, it violates encapsulation.

7.1. Querying using the API composition pattern

7.2. Using the CQRS pattern

7.3. Designing CQRS views

7.4. Implementing a CQRS view with AWS DynamoDB

Summary

sitemap