A lightweight Event Sourcing library for Dart, which is:
- Very volatile
- Extremely opinionated
- EventStoreDB-oriented
Authors:
This library is porting concepts and features from Eventuous for .NET to Eventuous for Dart and is still in active development not yet reached a stable version. Use it on your own risk. You should expect breaking changes that will require refactoring both code and behaviors of code depending on this package. When stable 1.0.0 is released, we pledge to keep the package backwards compatible within each major version.
This package is not yet properly documented, use docs (incomplete) written for the .NET version for an introduction to core principles for developing event sourced applications. We also highly recommend that you use the code generation tool to remove the boilerplate code needed to build you application using event sourcing using this library.
The following features are currently ported:
- ✅ Eventuous Core - Aggregate, AggregateStore, EventStore og ApplicationService
- ✅ Eventuous EventStore - Supports EventStore as AggregateStore using eventstore_client
- ✅ Eventuous Code Generation - Annotations for generating boilerplate code
We are working on the following features:
- ⏱ Eventuous Core - Add archive support AggregateStore
- ⏱ Eventuous Code Generation - Annotations for generating application apis with gRPC
These features are coming later:
- 1️⃣ Eventuous Subscriptions - Handle or project events (streaming)
- 2️⃣ Eventuous Producers - Produce and publish arbitrary messages, commands or events
- 3️⃣ Eventuous Gateway - Engine to bridge Event Sourcing with Event-Driven Architecture (EDA)
- 5️⃣ Eventuous Diagnostics - Logging and Metrics
Features currently not on the roadmap
- Eventuous Postgresql - Supports Postgres as an event store
- Eventuous ElasticSearch - Supports storing and archiving events in Elasticsearch
- Eventuous ElasticSearch - Supports storing and archiving events in Elasticsearch
Please file feature requests and bugs at the issue tracker.