Summary
In this chapter, we examined how to implement the query side of a CQRS-based system. We looked at how domain events can be consumed in real time to construct materialized views that can be used to service query APIs. We looked at the different query types that can be used to efficiently access the underlying query models. We rounded off by looking at persistence options for the query side.
Finally, we looked at historic event replays and how they can be used to correct errors or introduce new functionality in an event-driven system.
This chapter should give you a good idea of how to build and evolve the query side of a CQRS-based system to meet changing business requirements while retaining all the business logic on the command side.
In this chapter, we looked at how to consume events in a stateless manner (where no two event handlers have knowledge of each other’s existence). In the next chapter, we will continue to look at how to consume events, but this time...