Skip to content

Latest commit

Β 

History

History
65 lines (43 loc) Β· 3.71 KB

File metadata and controls

65 lines (43 loc) Β· 3.71 KB

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!