Skip to main content
Version: 0.1.0

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/api
  • ghcr.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, or memory (single-process, dev only). postgres needs DATABASE_DSN; redis/valkey needs REDIS_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โ€‹

ValueDefaultDescription
store.typepostgrespostgres / redis / valkey / memory (โ†’ STORE_TYPE)
connectionSecret""Secret with rabbitmq-url (required) + database-dsn or redis-url
api.replicas / engine.replicas1Replica counts (both stateless)
api.port8080API HTTP port (WORKFLOW_API_PORT)
engine.grpcPort9090Engine gRPC port (WORKFLOW_ENGINE_GRPC_PORT)
ingress.enabledfalseExpose the api via Ingress

See deployments/helm/values.yaml for the full set, including probes, resources, and security context.