The Open Outbox Relay Service
1.1K
High-performance, reliable Transactional Outbox relay for Go.
Open Outbox Relay is the official reference implementation of the Open Outbox Specification.
It is a high-performance daemon designed for the Transactional Outbox Pattern. By bridging your database and message brokers like Kafka or NATS, it ensures at-least-once delivery, solving distributed consistency challenges without the complexity of 2PC or distributed transactions.
at-least-once semantics ensure events are never lost, even during broker outages or relay crashes.SKIP LOCKED) where available to support horizontal scaling without double-processing.Get the Relay up and running locally in under a minute using our pre-configured demo environment.
This starts a local stack including Postgres, NATS JetStream, and the Open Outbox Relay.
git clone https://github.com/open-outbox/relay.git
cd relay/examples/demo
docker compose up -d
Insert a record directly into the Postgres outbox table. The Relay will detect the new row and deliver it to the message broker instantly.
-- Note: Requires Postgres 13+ or pgcrypto extension for gen_random_uuid()
docker compose exec postgres psql -U postgres -d postgres -c \
"INSERT INTO openoutbox_events (event_id, event_type, payload, partition_key)
VALUES (gen_random_uuid(), 'openoutbox.events.demo', '{\"id\": 123, \"name\": \"Alice\"}', '123');"
You can check the Relay logs to see the delivery confirmation:
docker compose logs relay
💡 Ready for Production? For database schema requirements, production hardening checklists, and deployment strategies, visit our Deployment Guide.
The Relay is designed for At-Least-Once Delivery.
DELIVERED after the broker acknowledges receipt.The Open Outbox Relay is designed to be cloud-native and is configured entirely via environment variables. These are divided into core infrastructure, engine tuning (polling logic), reliability, and publisher-specific settings (Kafka/NATS).
For a complete list of variables, default values, and tuning guides, see our documentation:
Read the Full Configuration Guide
Stay connected and help us improve the Open Outbox ecosystem:
Makefile, and our pull request process.Open Outbox is currently in Stable Release (v1.0.0). The system is production-ready, and we are actively seeking feedback as we continue to refine the ecosystem.
Check out our Project Roadmap to see what's coming next, including:
MIT License — Created by the Open Outbox Team.
Content type
Image
Digest
sha256:330535988…
Size
26.6 MB
Last updated
2 months ago
docker pull openoutbox/relay