Event Sourcing in Python

A library for event sourcing in Python.


What is event sourcing? One definition suggests the state of an event-sourced application is determined by a sequence of events. Another definition has event sourcing as a persistence mechanism for domain driven design. Therefore, this library makes it easy to define, publish, persist, retrieve, project, and propagate the domain events of a software application.

It is common for the state of a software application to be distributed across a set of entities or aggregates. Therefore, this library provides infrastructure to support event sourcing the state of entities or aggregates in an application, and suggests a style for coding an application with event-sourced domain model entities or aggregates that have behaviour which triggers events.

This documentation provides: instructions for installing the package, highlights the main features of the library, describes the design of the software, the infrastructure layer, the domain model layer, the application layer, has information about deployment, and has some background information about the project.

This project is hosted on GitHub. Please register any issues, questions, and requests on GitHub.