Deployment
go-saga-orchestration ships two stateless services โ the HTTP api and the gRPC engine โ as container images, plus a Helm chart attached to each release.
Container imagesโ
Published to GHCR on every release (multi-arch amd64/arm64):
ghcr.io/bugs5382/go-saga-orchestration/apighcr.io/bugs5382/go-saga-orchestration/engine
Tags: vX.Y.Z, latest, and the commit SHA.
Prerequisitesโ
Both services require, at runtime:
- A reachable RabbitMQ (
RABBITMQ_URL) โ both the api and the engine connect on startup and exit if it is unavailable. - A store:
postgres(default),redis/valkey, ormemory(single-process, dev only). postgres needsDATABASE_DSN; redis/valkey needsREDIS_URL.
Supply the connection strings through a Secret and point the chart at it:
kubectl create secret generic gosaga-conn \
--from-literal=rabbitmq-url='amqp://user:pass@rabbitmq:5672/' \
--from-literal=database-dsn='postgres://user:pass@postgres:5432/saga?sslmode=require'
Install the Helm chartโ
The chart is attached to each GitHub Release as go-saga-orchestration-<version>.tgz.
Replace <version> below with the release you want (see the
Releases page):
helm install go-saga \
https://github.com/Bugs5382/go-saga-orchestration/releases/download/v<version>/go-saga-orchestration-<version>.tgz \
--set store.type=postgres \
--set connectionSecret=gosaga-conn
Configurationโ
| Value | Default | Description |
|---|---|---|
store.type | postgres | postgres / redis / valkey / memory (โ STORE_TYPE) |
connectionSecret | "" | Secret with rabbitmq-url (required) + database-dsn or redis-url |
api.replicas / engine.replicas | 1 | Replica counts (both stateless) |
api.port | 8080 | API HTTP port (WORKFLOW_API_PORT) |
engine.grpcPort | 9090 | Engine gRPC port (WORKFLOW_ENGINE_GRPC_PORT) |
ingress.enabled | false | Expose the api via Ingress |
See deployments/helm/values.yaml for the full set, including probes, resources, and security context.