CQRS and Event Sourcing using Rust

The cqrs-es crate provides a lightweight framework for building applications utilizing CQRS and event sourcing. The project targets serverless architectures but can be used in any application seeking to utilize these patterns to build better software.

Chapter 1 provides an introduction to CQRS and event sourcing as well as the underlying design strategy that they support, Domain Driven Design. This chapter is essential reading for anyone not familiar with these topics.

Chapter 2 provides a tutorial for getting started with the framework. This involves building an aggregate, commands, events and the associated trait implementations for a basic CQRS system. Our demo application will simulate a simple bank account

Chapter 3 covers the basics of implementing domain tests. The ability to simply build supple tests are one of the primary benefits of a CQRS system, and here we explain how to effectively build these.

Chapter 4 covers building a simple query processor as well as putting all of these components together in a proper CQRS framework. We will use a naive, in-memory event store to facilitate this mini-application that will allow us to explore CQRS with simple unit tests.

Chapter 5 discusses the additional features needed to work this framework into a real application.

Chapter 6 branches out to some of the more advanced topics permitted by these patterns, including event replay and upcasters.