README ¶
goes - Event-Sourcing Framework
goes
is a collection of interfaces, tools, and backend implementations that
allow you to write event-sourced applicatios in Go.
If you have any questions or feedback, feel free to open an issue or start a discussion.
Getting Started
Installation
goes is not yet versioned because the API still changes too often. Install from
the main branch or from specific commit hash, and make sure to install nested
modules with /...
go get github.com/modernice/goes/...@main
go get github.com/modernice/goes/...@<commit-hash>
Examples
Introduction
This documentation assumes knowledge of CQRS, event-sourcing, and other related concepts. Please make yourself familiar with these before reading further.
Features
- Event Store Implementations (In-Memory, MongoDB)
- Distributed Event Bus (NATS Core / NATS JetStream)
- Distributed, event-driven Command Bus
- Aggregate Framework
- Projection Framework
- SAGAs
- Pre-built Modules
Components
goes provides incrementally adoptable components that together form a complete framework for building event-sourced applications. Read a component's README for a guide on how to use it.
Backends
Event Bus
Event Store
Contributing
TBD
License
Directories ¶
Path | Synopsis |
---|---|
ref
Package ref provides utilities for working with aggregate.Ref.
|
Package ref provides utilities for working with aggregate.Ref. |
snapshot/mocks
Package mock_snapshot is a generated GoMock package.
|
Package mock_snapshot is a generated GoMock package. |
api
|
|
proto
Module
|
|
backend
|
|
nats
Package nats provides an event bus that uses NATS to publish and subscribe to events over a network with support for both NATS Core and NATS JetStream.
|
Package nats provides an event bus that uses NATS to publish and subscribe to events over a network with support for both NATS Core and NATS JetStream. |
testing/eventbustest
Package eventbustest tests event bus implementations.
|
Package eventbustest tests event bus implementations. |
cmd
|
|
cmdbus
Package cmdbus provides a distributed & event-driven Command Bus.
|
Package cmdbus provides a distributed & event-driven Command Bus. |
contrib
|
|
query
Package query provides an event query builder.
|
Package query provides an event query builder. |
query/time
Package time provides time constraints for queries.
|
Package time provides time constraints for queries. |
query/version
Package version provides version constraints for queries.
|
Package version provides version constraints for queries. |
examples
|
|
todo
Module
|
|
helper
|
|
internal
|
|
persistence
|
|
mock_test
Package mock_test is a generated GoMock package.
|
Package mock_test is a generated GoMock package. |