By now, we already have a few projections that build some useful read models that we can potentially use for the UI of our application. However, these read models aren't persistent and when we stop the app, everything disappears. Of course, read models are quickly rebuilt when we start the app again, and although it is a perfectly fine way to build read models at the beginning of the development cycle, this won't work for a production system. In addition, if we use upcasting, we will emit up cast events each time the app starts, since the upcasting subscription will process all events again. So, it is now time to persist our read models to a database.
Persistent storage
Checkpoints
As we have seen before, our application...