{"id":26920348,"url":"https://github.com/castore-dev/castore","last_synced_at":"2025-05-15T08:04:07.890Z","repository":{"id":57710362,"uuid":"524083629","full_name":"castore-dev/castore","owner":"castore-dev","description":"Making Event Sourcing easy 😎","archived":false,"fork":false,"pushed_at":"2025-04-18T15:45:24.000Z","size":15251,"stargazers_count":249,"open_issues_count":19,"forks_count":21,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-04-19T04:12:23.954Z","etag":null,"topics":["castore","cqrs","devx","dynamodb","event-sourcing","events","eventstore","hacktoberfest","javascript","nodejs","serverless","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/castore-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["ThomasAribart"]}},"created_at":"2022-08-12T12:40:09.000Z","updated_at":"2025-04-18T15:40:04.000Z","dependencies_parsed_at":"2023-02-16T21:31:31.906Z","dependency_job_id":"4be59b53-3e1c-49b0-a679-37aace86b951","html_url":"https://github.com/castore-dev/castore","commit_stats":{"total_commits":279,"total_committers":10,"mean_commits":27.9,"dds":0.3799283154121864,"last_synced_commit":"28901b6531c6951ee68b2cea133fbb2ad048cb13"},"previous_names":[],"tags_count":97,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/castore-dev%2Fcastore","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/castore-dev%2Fcastore/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/castore-dev%2Fcastore/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/castore-dev%2Fcastore/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/castore-dev","download_url":"https://codeload.github.com/castore-dev/castore/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254301421,"owners_count":22047901,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["castore","cqrs","devx","dynamodb","event-sourcing","events","eventstore","hacktoberfest","javascript","nodejs","serverless","typescript"],"created_at":"2025-04-01T22:29:02.868Z","updated_at":"2025-05-15T08:04:07.846Z","avatar_url":"https://github.com/castore-dev.png","language":"TypeScript","funding_links":["https://github.com/sponsors/ThomasAribart","https://github.com/sponsors/thomasaribart/"],"categories":["Libraries/Frameworks","Built with TypeScript"],"sub_categories":["Libraries"],"readme":"\u003cp align=\"center\"\u003e\n    \u003cimg src=\"assets/logo.svg\" height=\"128\"\u003e\n    \u003ch1 style=\"border-bottom:none;font-size:60px;margin-bottom:0;\" align=\"center\" \u003eCastore\u003c/h1\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca aria-label=\"NPM version\" href=\"https://www.npmjs.com/package/@castore/core\"\u003e\n    \u003cimg alt=\"\" src=\"https://img.shields.io/npm/v/@castore/core?color=935e0e\u0026style=for-the-badge\"\u003e\n  \u003c/a\u003e\n  \u003ca aria-label=\"License\" href=\"https://github.com/castore-dev/castore/blob/main/LICENSE\"\u003e\n    \u003cimg alt=\"\" src=\"https://img.shields.io/github/license/castore-dev/castore?color=%23F8A11C\u0026style=for-the-badge\"\u003e\n  \u003c/a\u003e\n    \u003cimg alt=\"\" src=https://img.shields.io/npm/dt/@castore/core?color=%23B7612E\u0026style=for-the-badge\u003e\n    \u003cbr/\u003e\n    \u003cbr/\u003e\n\u003c/p\u003e\n\n💖 _Huge thanks to the [sponsors](https://github.com/sponsors/ThomasAribart) who help me maintain this repo:_\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.theodo.fr/\"\u003e\u003cimg src=\"https://github.com/theodo.png\" width=\"50px\" alt=\"Theodo\" title=\"Theodo\"/\u003e\u003c/a\u003e\u003c/td\u003e\u0026nbsp;\u0026nbsp;\n  \u003c!-- sponsors --\u003e\u003ca href=\"https://github.com/feathersdev\"\u003e\u003cimg src=\"https://github.com/feathersdev.png\" width=\"50px\" alt=\"feathers.dev\" title=\"feathers.dev\"/\u003e\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u003ca href=\"https://github.com/li-jia-nan\"\u003e\u003cimg src=\"https://github.com/li-jia-nan.png\" width=\"50px\" alt=\"lijianan\" title=\"lijianan\"/\u003e\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u003ca href=\"https://github.com/RaeesBhatti\"\u003e\u003cimg src=\"https://github.com/RaeesBhatti.png\" width=\"50px\" alt=\"Raees Iqbal\" title=\"Raees Iqbal\"/\u003e\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u003ca href=\"https://github.com/lucas-subli\"\u003e\u003cimg src=\"https://github.com/lucas-subli.png\" width=\"50px\" alt=\"Lucas Saldanha Ferreira\" title=\"Lucas Saldanha Ferreira\"/\u003e\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u003ca href=\"https://github.com/syntaxfm\"\u003e\u003cimg src=\"https://github.com/syntaxfm.png\" width=\"50px\" alt=\"Syntax\" title=\"Syntax\"/\u003e\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u003c!-- sponsors --\u003e\n  \u003ca href=\"https://github.com/sponsors/ThomasAribart\"\u003e\u003cimg src=\"assets/plus-sign.png\" width=\"50px\" alt=\"Plus sign\" title=\"Your brand here!\"/\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n# Making Event Sourcing easy 😎\n\n[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.\n\nIt 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).\n\nHowever, it is **tricky to implement** 😅\n\nAfter 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!\n\n---\n\n\u003cp align=\"center\"\u003e\n  Castore is a TypeScript library that \u003cb\u003emakes Event Sourcing easy\u003c/b\u003e 😎\n\u003c/p\u003e\n\n---\n\n## Features\n\n**🙈 Stack agnostic**: Can be used in any JS context (web apps, containers, lambdas... you name it 🙌)\n\n**🕊️ Light-weight**: _opt-in_ packages only\n\n**🏋️ Type-safety** pushed to the limit\n\n**📐 Validation library agnostic** ([Zod](https://github.com/colinhacks/zod), [JSON schema](https://github.com/ThomasAribart/json-schema-to-ts)...) with support for type inference\n\n**😍 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\n\n**🎯 Test tools** included\n\n**🔧 Migration \u0026 maintenance utils** available\n\n**🎨 React components** to visualize and model your event stores\n\nAnd much more to come 🙌: Admin, snapshots, read models...\n\n## Visit the 👉 [official documentation](https://castore-dev.github.io/castore/) 👈 to get started!\n\n### [Become a Sponsor!](https://github.com/sponsors/thomasaribart/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcastore-dev%2Fcastore","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcastore-dev%2Fcastore","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcastore-dev%2Fcastore/lists"}