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:
- Event Stores, for storing events.
- Snapshot Stores, for storing snapshots of aggregate state.
- Aggregate Caches, for caching aggregate state in memory or in a distributed cache.
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 Store | Driver | Details |
---|---|---|
KurrentDB | https://github.com/kurrent-io/KurrentDB-Client-Go | Streams map closely to Kurrent streams. |
MongoDB | https://github.com/mongodb/mongo-go-driver | Can choose between a single collection for all events or one collection per aggregate type. |
PostgreSQL | https://github.com/lib/pq | Uses a single table for all events. |
Snapshot Stores
Coming soon.
Backend | Driver |
---|
Aggregate Caches
Aggregate Cache | Type | Driver |
---|---|---|
bigcache | In-Memory | https://github.com/allegro/bigcache |
freecache | In-Memory | https://github.com/coocood/freecache |
Redis | Distributed | https://github.com/go-redis/redis |
Valkey | Distributed | https://github.com/valkey-io/valkey-go |