cqrs

module
v0.5.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 30, 2026 License: BSD-2-Clause

README

cqrs

CI Go Reference Go Report Card

Generic CQRS (Command Query Responsibility Segregation) library for event-driven Go services over Kafka.

Packages

Package Purpose
base Core types: Command, Event, Result, RequestID, CommandCreator
cdb Schema-based CQRS (group-kind-version), BoltDB persistence, K8s CRD
raw Lightweight streaming schemas (group-kind), no versioning
iam Permission system: Initiator, Roles, RoleBindings, PermissionChecker
topic Strimzi KafkaTopic builder with cleanup policies

Installation

go install github.com/bborbe/cqrs@latest

Documentation

Guide Purpose
Architecture Overview Package structure, cdb vs raw, data flow, design decisions
Base Types Command, Event, Result, RequestID, CommandCreator
Schema and Topics SchemaID, topic derivation, cleanup policies, K8s CRD
Producing Commands CommandObjectSender, building commands, domain senders
Command Consumer RunCommandConsumerTx, CommandObjectExecutorTx, auto wrapping
Command-Result Pattern Quick reference: send command → get result
Result Consumer ResultChannelProviderForRequestID, cross-process results
Event System EventObjectSender, EventStore, typed message handlers
IAM Initiator, PermissionChecker, Roles, RoleBindings

License

BSD-2-Clause

Directories

Path Synopsis
cdb
k8s/apis/cdb.benjamin-borbe.de/v1
Package v1 is the v1 version of the API.
Package v1 is the v1 version of the API.
k8s/client/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
k8s/client/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
k8s/client/clientset/versioned/typed/cdb.benjamin-borbe.de/v1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
k8s/client/clientset/versioned/typed/cdb.benjamin-borbe.de/v1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
Package iam provides generic Identity and Access Management (IAM) types for CQRS systems.
Package iam provides generic Identity and Access Management (IAM) types for CQRS systems.
Code generated by counterfeiter.
Code generated by counterfeiter.
raw
k8s/apis/raw.benjamin-borbe.de/v1
Package v1 is the v1 version of the API.
Package v1 is the v1 version of the API.
k8s/client/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
k8s/client/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
k8s/client/clientset/versioned/typed/raw.benjamin-borbe.de/v1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
k8s/client/clientset/versioned/typed/raw.benjamin-borbe.de/v1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL