gobridge

Scenarios Index

This directory collects worked examples that show GoBridge end-to-end: each scenario pairs a YAML configuration with the matching Go composition root and describes the observable behavior on the wire. The index exists so operators picking a starting point and contributors hunting for an example near a feature they are touching can find the right scenario without scanning twenty-six files.

There are two families:

How to read a scenario

Every scenario is self-contained. Expect a use-case statement, a Mermaid architecture diagram, the full YAML config, the Go composition root snippet, and a short “what you should observe” section covering logs, metrics, and admin-API output. Scenarios do not depend on each other; you can jump directly to the one closest to your problem.

If you are new to the project, start with Scenario 1: MQTT-to-MQTT Bridge for the runtime model and CDK Scenario 1: Quickstart with Default VPC for the deployment model.

By concept

A scenario may legitimately appear in more than one group when it demonstrates multiple capabilities of equal weight.

Transports — getting started

Single-protocol bridges that establish the baseline Receiver → Route → Sender flow per transport family.

Cross-protocol bridging

Scenarios where the receiver and sender speak different protocols and the runtime owns the translation.

Routing & filtering

Demonstrates the routing engine: predicates, fan-out, content-based dispatch, and dynamic destination selection.

Processors & pipelines

Shows the processor pipeline (transform, enrich, circuit break) and how to plug a custom processor in.

Durability & operations

Outbox-backed delivery, dead-letter handling, and adapter-level resilience — the day-2 operability story.

Clustering & multi-tenancy

Multi-instance deployments, exclusive sessions, tenant isolation, and tenant-scoped routing.

Configuration management

Layered configuration sources and live reconfiguration without restart.

Security & credentials

Credential providers, rotation, and TLS termination.

Observability

The full slog + OpenTelemetry traces + metrics story, including correlation propagation through the pipeline.

AMQP family

The AMQP scenarios are grouped together because the protocol matrix matters: GoBridge ships separate adapters for AMQP 0.9.1 (RabbitMQ-style) and AMQP 1.0 (Artemis / Amazon MQ / Service Bus AMQP). Read scenario 21 to see the boundary between the two on the wire.

CDK deployment

Distinct from the runtime scenarios above: these focus on packaging GoBridge as a container and operating it on AWS ECS Fargate using the L3 constructs in deployment/aws/cdk. They progress from a single-task quickstart to a multi-bridge cluster.

By transport / adapter

Reverse index for readers who already know which broker they need to bridge.

By feature / capability

Reverse index for readers who know which capability they need to evaluate.

Authoring a new scenario

A dedicated docs/scenarios/_template.md is tracked under backlog item and will land in a later pass. Until then, copy the closest existing scenario and adapt it: Scenario 1 for a transport scenario, or CDK Scenario 1 for a deployment scenario. Keep section ordering (Use Case → Architecture → Configuration → Composition Root → Observable Behavior) and add the new entry to every relevant group in this index.