This document describes the packages, modules, classes, functions and other code details of the library.
genindex
modindex
The eventsourcing package contains packages for the application layer, the domain layer, the infrastructure layer, and the interface layer. There is also a module for exceptions, an example package, and a utils package.
The application layer brings together the domain and infrastructure layers.
eventsourcing.application.base
eventsourcing.application.policies
eventsourcing.application.simple
The domain layer contains a domain model, and optionally services that work across different entities or aggregates.
The domain model package contains classes and functions that can help develop an event sourced domain model.
eventsourcing.domain.model.aggregate
A kind of collection, indexed by integer. Doesn't need to replay all events to exist.
eventsourcing.domain.model.array
Decorators useful in domain models based on the classes in this library.
eventsourcing.domain.model.decorators
Base classes for domain entities of different kinds.
eventsourcing.domain.model.entity
Base classes for domain events of different kinds.
eventsourcing.domain.model.events
Snapshotting is implemented in the domain layer as an event.
eventsourcing.domain.model.snapshot
Time-bucketed logs allow a sequence of the items that is sequenced by timestamp to be split across a number of different database partitions, which avoids one partition becoming very large (and then unworkable).
eventsourcing.domain.model.timebucketedlog
The infrastructure layer adapts external devices in ways that are useful for the application, such as the way an event store encapsulates a database.
Abstract base classes for the infrastructure layer.
eventsourcing.infrastructure.base
Classes for event sourcing with Apache Cassandra.
eventsourcing.infrastructure.cassandra.datastore
eventsourcing.infrastructure.cassandra.factory
eventsourcing.infrastructure.cassandra.manager
eventsourcing.infrastructure.cassandra.models
Base classes for concrete datastore classes.
eventsourcing.infrastructure.datastore
A Django application for event sourcing with the Django ORM.
eventsourcing.infrastructure.django.models
eventsourcing.infrastructure.django.manager
Base classes for event players of different kinds.
eventsourcing.infrastructure.eventplayer
Base classes for event sourced repositories (not abstract, can be used directly).
eventsourcing.infrastructure.eventsourcedrepository
The event store provides the application-level interface to the event sourcing persistence mechanism.
eventsourcing.infrastructure.eventstore
Different ways of generating sequences of integers.
eventsourcing.infrastructure.integersequencegenerators.base
eventsourcing.infrastructure.integersequencegenerators.redisincr
Different ways of getting sequenced items from a datastore.
eventsourcing.infrastructure.iterators
Repository base classes for entity classes defined in the library.
eventsourcing.infrastructure.repositories.array
eventsourcing.infrastructure.repositories.collection_repo
eventsourcing.infrastructure.repositories.timebucketedlog_repo
The persistence model for storing events.
eventsourcing.infrastructure.sequenceditem
The sequenced item mapper maps sequenced items to application-level objects.
eventsourcing.infrastructure.sequenceditemmapper
Snapshotting avoids having to replay an entire sequence of events to obtain the current state of a projection.
eventsourcing.infrastructure.snapshotting
Classes for event sourcing with SQLAlchemy.
eventsourcing.infrastructure.sqlalchemy.datastore
eventsourcing.infrastructure.sqlalchemy.factory
eventsourcing.infrastructure.sqlalchemy.manager
eventsourcing.infrastructure.sqlalchemy.records
Reader for timebucketed logs.
eventsourcing.infrastructure.timebucketedlog_reader
The interface layer uses an application to service client requests.
Notification log is a pull-based mechanism for updating other applications.
eventsourcing.interface.notificationlog
The utils package contains common functions that are used in more than one layer.
eventsourcing.utils.cipher.aes
eventsourcing.utils.times
eventsourcing.utils.topic
eventsourcing.utils.transcoding
A few exception classes are defined by the library to indicate particular kinds of error.
eventsourcing.exceptions
A simple, unit-tested, event sourced application.
eventsourcing.example.application
eventsourcing.example.domainmodel
eventsourcing.example.infrastructure
eventsourcing.example.interface.flaskapp