https://github.com/castore-dev/castore
Making Event Sourcing easy 😎
https://github.com/castore-dev/castore
castore cqrs devx dynamodb event-sourcing events eventstore hacktoberfest javascript nodejs serverless typescript
Last synced: 8 months ago
JSON representation
Making Event Sourcing easy 😎
- Host: GitHub
- URL: https://github.com/castore-dev/castore
- Owner: castore-dev
- License: mit
- Created: 2022-08-12T12:40:09.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2025-04-18T15:45:24.000Z (9 months ago)
- Last Synced: 2025-04-19T04:12:23.954Z (9 months ago)
- Topics: castore, cqrs, devx, dynamodb, event-sourcing, events, eventstore, hacktoberfest, javascript, nodejs, serverless, typescript
- Language: TypeScript
- Homepage:
- Size: 14.5 MB
- Stars: 249
- Watchers: 10
- Forks: 21
- Open Issues: 19
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- awesome-cqrs-event-sourcing - castore - Typescript library to easily implement Event Sourcing on your project (Libraries/Frameworks)
- awesome-typescript - castore - Typescript library to easily implement Event Sourcing in your application (Built with TypeScript / Libraries)
README
Castore
💖 _Huge thanks to the [sponsors](https://github.com/sponsors/ThomasAribart) who help me maintain this repo:_
# Making Event Sourcing easy 😎
[Event Sourcing](https://learn.microsoft.com/en-us/azure/architecture/patterns/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](https://en.wikipedia.org/wiki/Event-driven_architecture).
However, it is **tricky to implement** 😅
After years of using it at [Theodo](https://dev.to/slsbytheodo), 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](https://github.com/colinhacks/zod), [JSON schema](https://github.com/ThomasAribart/json-schema-to-ts)...) with support for type inference
**😍 On-the-shelf adapters** for [Redux](https://redux.js.org/), [DynamoDB](https://aws.amazon.com/dynamodb/), [SQS](https://aws.amazon.com/sqs/), [EventBridge](https://aws.amazon.com/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](https://castore-dev.github.io/castore/) 👈 to get started!
### [Become a Sponsor!](https://github.com/sponsors/thomasaribart/)






