{"repo":"modernice/goes","free":true,"listed":false,"github":"https://github.com/modernice/goes","clone":"git clone https://github.com/modernice/goes.git","description":"goes is an event-sourcing framework for Go.","language":"Go","stars":168,"topics":["event-sourcing","event-driven","ddd","cqrs","go","golang","toolkit","framework","nats","jetstream"],"license":"Apache-2.0","category":"auth-billing-email","readme_excerpt":"goes - Event-Sourcing Framework for Go goes is an event-sourcing framework for Go. It gives you the building blocks to model domain logic with aggregates, persist state as events, build read models with projections, and wire the same application to in-memory or production backends. Why goes? - Typed aggregates, events, commands, and repositories with less boilerplate - Backend-agnostic application code that works with in-memory, MongoDB, PostgreSQL, and NATS backends - Streaming-first query and subscription APIs that return channels, keeping large workloads incremental and low-memory - Production-oriented features like optimistic concurrency, snapshots, and continuous projections - Durable, event-driven workflows (sagas) that coordinate long-running processes with timeouts and compensation - A practical path from local development to distributed systems without changing your core domain model Install goes currently targets Go 1.25+. The /... suffix downloads the framework packages together with the backend implementations. Quick Start This is the smallest useful path: define an aggregate, save it to an in-memory event store, then fetch it back by replaying events. What happens here: - List is an aggregate that raises events instead of mutating persisted state directly - aggregate.Next records and applies events immediately - repository.Typed(...) saves uncommitted events and reconstructs aggregates on fetch - eventstore.New() keeps everything in memory, so you can prototype a","default_branch":null,"files":null,"tree":[],"storefront":"/r/modernice","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/modernice/goes/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}