Skip to content

docs: ADR 0066 — Infrastructure Provisioner for Messaging Gateways - #4259

Draft
lillo42 wants to merge 1 commit into
BrighterCommand:masterfrom
lillo42:adr-0066-infrastructure-provisioner
Draft

docs: ADR 0066 — Infrastructure Provisioner for Messaging Gateways#4259
lillo42 wants to merge 1 commit into
BrighterCommand:masterfrom
lillo42:adr-0066-infrastructure-provisioner

Conversation

@lillo42

@lillo42 lillo42 commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Summary

Proposes ADR 0066 — Infrastructure Provisioner for Messaging Gateways.

Today each messaging gateway provisions its broker infrastructure (exchanges, topics, queues, subscriptions, DLQs) in its own ad-hoc way. This ADR introduces a single gateway-agnostic abstraction:

  • IAmAInfrastructureProvisioner — narrow interface: Provision(IAmAMessageGateway) / ProvisionAsync(IAmAMessageGateway); all configuration lives as properties on the implementations.
  • Four strategies, one class each: Assume (no-op), Validate (read-only drift detection), Create (idempotent, create-only — matching current AWS behavior), and CreateOrUpdate (opt-in convergence, only where the broker supports updates, never destructive).
  • Per-side implementations: publication/subscription splits where the two sides own different resource types (SNS vs SQS, ASB topic vs subscription, RMQ exchange vs queue, GCP topic vs subscription, Redis stream vs group, RocketMQ topic vs group); single sets for Kafka and MsSql/Postgres. MQTT is out of scope; RocketMQ topics are Assume-only.
  • Scoped per Publication/Subscription: each provisioner instance serves exactly one publication/subscription's topic or queue.
  • Wiring: Publication.Provisioner / Subscription.Provisioner; when null, the gateway builds a default provisioner from existing config, so only one execution path ever runs.
  • Migration: ships opt-in in V10 (legacy provisioning members marked [Obsolete]), becomes the single mechanism in V11.

The document includes a full AWS SNS/SQS sample and a per-gateway strategy matrix verified against the current gateway packages.

Status: Proposed — opened as a draft for maintainer review/discussion before acceptance.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

0 - Backlog feature request .NET Pull requests that update .net code V10.X

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants