Making Event Sourcing easy ๐Ÿ˜Ž

February 15, 2025 ยท View on GitHub

Castore



๐Ÿ’– Huge thanks to the sponsors who help me maintain this repo:

Theodoย ย  feathers.devย ย lijiananย ย Raees Iqbalย ย Lucas Saldanha Ferreiraย ย Syntaxย ย  Plus sign

Making Event Sourcing easy ๐Ÿ˜Ž

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 ๐Ÿ˜Ž


Features

๐Ÿ™ˆ 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...

Visit the ๐Ÿ‘‰ official documentation ๐Ÿ‘ˆ to get started!

Become a Sponsor!