Junction is a self-hostable webhook and event routing platform. Send an event once, and Junction fans it out to every destination that’s subscribed to it — reliably, asynchronously, and with full delivery visibility.
The problem#
Most systems that need to notify other systems end up reinventing the same infrastructure: a table of subscribers, a delivery queue, retry logic, and some way to see what actually got delivered and what didn’t. It’s usually built once, coupled tightly to the system that needed it first, and rebuilt again the next time a project needs the same thing.
Junction is that infrastructure, built once as a standalone service. Point events at it, manage destinations independently of the systems producing events, and add new destination types without touching the core schema or API.
View the GitHub organization →
How it works#
A single ingest endpoint (POST /relay) accepts any JSON payload tagged with an event type. Junction resolves which destinations are subscribed to that event type, and routes one message per destination to a purpose-built delivery queue. Destination workers are stateless, know nothing about the API or database, and only need to know how to deliver to one destination type — HTTP out of the box, with the worker contract open for anyone to implement their own.
Every request is assigned a trace ID that follows it end-to-end: from ingest, through queue processing, to final delivery status per destination. It’s stamped on every DB record and every log line along the way, giving you distributed tracing across the whole delivery lifecycle without wiring up a separate tracing backend. Nothing about a request’s outcome is a mystery.
Get Started#
helm install junction oci://ghcr.io/junctionio/charts/junction \
--set secrets.app.jwtSecret=<your-secret> \
--set secrets.worker.token=<worker-token>See the installation guide for the full walkthrough.
Explore the Docs#
- Architecture — the ingest flow, data model, and how the pieces fit together
- API Reference — authentication, endpoints, request/response shapes, and error codes
- Installation — deploying Junction with the Helm chart
- Roadmap — what’s shipped, what’s next