Component Library

Estoria orchestrates the lifecycle of aggregates, but it relies on a set of vendor-specific components to provide the underlying storage features. These components include:

Officially Supported Implementations

These components are maintained by the Estoria project. They are tested against each Estoria release and subject to a standard suite of acceptance tests.

Event Stores

Event StoreDriverDetails
KurrentDBhttps://github.com/kurrent-io/KurrentDB-Client-GoStreams map closely to Kurrent streams.
MongoDBhttps://github.com/mongodb/mongo-go-driverCan choose between a single collection for all events or one collection per aggregate type.
PostgreSQLhttps://github.com/lib/pqUses a single table for all events.

Snapshot Stores

Coming soon.

BackendDriver

Aggregate Caches

Aggregate CacheTypeDriver
bigcacheIn-Memoryhttps://github.com/allegro/bigcache
freecacheIn-Memoryhttps://github.com/coocood/freecache
RedisDistributedhttps://github.com/go-redis/redis
ValkeyDistributedhttps://github.com/valkey-io/valkey-go