We are already familiar with read models from Chapter 10, Event Sourcing. We understand that the read-write model is common for many systems that we build, and sometimes it is beneficial to use different models to persist the system state and to retrieve data that we need to show on the screen or give away to other parties using the API. For event-sourced systems, we must use different models because, as previously discussed, event streams aren't optimized to retrieve the current state of the system and apply filters on it.
Therefore, we will need to create read models for our system somewhere else; for instance, in data storage that supports such queries with ease. Here, we are free to choose what we use. We could use a document database, a relational database, maybe even a filesystem, or a combination of all of the aforementioned methods...