Event Sourcing is a data storage paradigm that saves changes in your application state rather than the state itself.
It is powerful as it enables rewinding to a previous state and exploring audit trails for debugging or business/legal purposes. It also integrates very well with event-driven architectures.
However, it is tricky to implement ๐
After years of using it at Theodo, we have grown to love it, but also experienced first-hand the lack of consensus and tooling around it. That's where Castore comes from!
Castore is a TypeScript library that makes Event Sourcing easy ๐
๐ Stack agnostic: Can be used in any JS context (web apps, containers, lambdas... you name it ๐)
๐๏ธ Light-weight: opt-in packages only
๐๏ธ Type-safety pushed to the limit
๐ Validation library agnostic (Zod, JSON schema...) with support for type inference
๐ On-the-shelf adapters for Redux, DynamoDB, SQS, EventBridge and more
๐ฏ Test tools included
๐ง Migration & maintenance utils available
๐จ React components to visualize and model your event stores
And much more to come ๐: Admin, snapshots, read models...