CQRS is a WIP Go application framework centered around a command, query and event bus. Multiple interface adapters are provided (JSON, HTML, CLI, GraphQL. Some are complete, some aren't even started) to connect to the bus. The interface adapters are intended to be generated from configuration files, or from the source itself. The bus can also be extended using middleware and plugins, for instance there's a background jobs manager included, and an event store.
A boilerplate application generator is also available:
go run github.com/gabrielcarpr/cqrs/gen init [application-name] [root=.]
An example of the generated application is in _example
.
Other available commands:
go run github.com/gabrielcarpr/cqrs/gen gen [rest/graphql]
Generates interface adapters
go run github.com/gabrielcarpr/cqrs/gen make [command/query/test] [path] [name]
Generates a command, query, or test skeleto
_example
The generated boilerplate app as an example of a projectauth
A standalone auth package which contains a few utilities for auth and access controlbackground
A background jobs manager which extends the message busbus
The message buseventstore
An event store that can extend the message bus to store events (only a Postgres implementation is available for now)gen
Command line utilties for generating code in a CQRS projectlog
A very simple logging packageports
The code for running interface adapters
Examples of how to use this library are in _example
. More documentation will come once it's more complete and polished.