Skip to content

docs: explain RabbitMQ delivery safety and adoption requirements - #574

Draft
niemyjski wants to merge 22 commits into
mainfrom
docs/rabbitmq-4.2.5-delivery-contracts
Draft

niemyjski wants to merge 22 commits into
mainfrom
docs/rabbitmq-4.2.5-delivery-contracts

Conversation

@niemyjski

@niemyjski niemyjski commented Sep 23, 2026 •

Copy link
Copy Markdown
Member

Documents RabbitMQ delivery safety, TLS setup, and optional quorum migration.

Breaking/adoption: Quorum callers must remove UseMessagePriority() and leave MaxPriority unset: either builder or direct-property assignment order now throws InvalidOperationException. Message-level Priority still works for both queue types. Exhausted Automatic deliveries retain without a terminal destination; provision quarantine, finite prefetch, capacity limits, and repair procedures. Strict dispatch requires Automatic, a typed terminal exchange, and discard disabled. FireAndForget remains the default. Strict TLS validation can reject existing configurations.

Release dependency: TLS #103 is merged. Publish these guides with the matching provider release after #106 → #104 → #105 → #100.

Validation: Docs build, 295 local links/anchors, eleven provider links, seven compiled examples, and seven priority configuration checks passed against 3f7ede0. CI remains pending for this docs update and provider #104/#105/#100. The 4.2.5 baseline does not verify 4.3+ runtime behavior.

Verification and implementation details
Provider PR Current base/status Reviewed revision Build checks
#103 Merged into main at 9d3f7d71a90b46966dea0aa150d6fb81715b7573 6d9516a493e99e97a1d24ee3357bc1e127371e9d PR: passed; push: passed
#106 main ce9c3fef8b3de91c6d50b42482c16c88bb3e66b1 PR: passed; push: passed; push: 146 passed, 111 skipped, 0 failed
#104 feature/rabbitmq-quorum-priority 7887090d6f98f3c1ebed5cbaaa68052a3fa89017 PR: running; push: running
#105 feature/rabbitmq-broker-verification 2d7f928f69eb0c7b6c84d15fa39b7baab7969318 PR: running; push: running
#100 feature/rabbitmq-delivery-recovery 3f7ede0369c5874b7f67de5e5f69c1c7f0fef513 PR: running; push: running
  • All candidate source links pin aggregate 3f7ede0369c5874b7f67de5e5f69c1c7f0fef513. The docs PR changes seven documentation/navigation/skill paths; runtime implementation remains in the provider stack.
  • Quorum priorities remain built in: normal/high tiers on 4.2 and 32 strict levels on 4.3+. UseMessagePriority() / MaxPriority remains valid only for classic queues. Direct property setters reject conflicts immediately; constructor validation catches later Arguments dictionary mutation. The verification guide distinguishes the classic delivery test from configuration guards and does not claim quorum-ordering proof.
  • Endpoint guidance includes the merged resolver contract: parsed ports outside 1–65535 throw ArgumentOutOfRangeException; malformed hosts and unparseable port text throw ArgumentException. Client-certificate settings are preserved, custom server-validation callbacks are rejected, and server identity/trust stays strict.
  • npm --prefix docs run build passed with the existing LLM-docs warnings for external sidebar links. Because VitePress ignores dead links, all 295 local links/anchors across five rendered guides were checked separately. All eleven provider/source/issue URLs returned HTTP 200.
  • All seven current RabbitMQ C# examples and the public utility API probe compile with zero warnings/errors against a fresh archive of 3f7ede0, .NET 10, Foundatio 13.0.4, and RabbitMQ.Client 7.2.2. Supporting imports, application types, and the builder variable for the abbreviated migration example were supplied. Compilation does not establish broker-runtime behavior. Seven local checks verify both rejected builder orders, both rejected direct-property assignment orders, constructor rejection after dictionary mutation, retained classic maximum priority, and quorum configuration with no maximum. These checks request no broker connection.
  • The provider CI links belong to the listed revisions. removing IsFolderSearch() extension #103/netstandard1.5 for Foundatio.Logging.Serilog #106 builds passed. The netstandard1.5 for Foundatio.Logging.Serilog #106 push build passed 146 tests, skipped 111 broker-dependent cases, and failed none; it is not a full broker-suite result. fixing tests that were pointing to the wrong base test #104/Synchronize RenewedTimeUtc when dequeued from InMemoryQueue #105/adding delete files by search #100 builds remain running. Older-head test counts are not evidence for this stack.
  • Docs CI at 6d90ce85e7d5fc500adbb764a5d728a18be69d17 is pending: PR Build / push Build.
  • Broker images stay at 4.2.5 and the delayed-exchange plugin artifact stays at 4.2.0. Documented 4.3+ options require separate runtime verification. Resolver configuration tests do not establish live client-certificate authentication. Single-node delayed scheduling, non-atomic handoff/ACK, capacity limits, permissions, and application idempotency remain adoption constraints.

Copy link
Copy Markdown
Member Author

Cross-repository documentation/workflow audit

Confirmed #574 is the canonical companion to Foundatio.RabbitMQ #100. I closed the concurrently created duplicate #575 rather than leave two documentation PRs to review. The provider README and PR body now point to this branch, docs/rabbitmq-4.2.5-delivery-contracts.

Reviewed the overview, delivery-safety, verification, quorum-migration, and general messaging corrections at e36f735f0633648804bdb9fbf47c1f6f1591b8be, including API names/defaults, queue versus exchange identity, required dispatch/terminal outcomes, the quorum broker/application budget relationship, TLS host semantics, and delayed-plugin limitations. The guides explicitly label companion/unreleased behavior and retain the 4.2.5 requirement.

The provider's documentation-only commit c569775c1498e895047f049bb164876dd0cba4d6 removes docs/delivery-safety.md and docs/tls-and-verification.md and shortens/links the README. Its diff against 7c1d477 changes only those three documentation paths. Runtime code, tests, dependencies, broker configurations, and workflows are preserved.

The provider workflow directory contains only the existing build.yml and copilot-setup-steps.yml. The provider PR retains just the existing Build input for preparing its delayed-plugin image; this documentation work adds no workflow. This companion PR changes documentation/navigation and the existing consumer skill, not GitHub Actions. The current provider Build 35803034042 is completed/successful for c569775c.

Remaining verification boundary: source/API/link review is not a rendered VitePress build or compiled-snippet test. Those documentation checks and provider-release coordination remain outstanding; no deployment or new workflow was introduced to mask that limitation. Keep this branch available while preview links depend on it, and replace them with published canonical routes only when those pages and the matching provider release are actually available.

@niemyjski niemyjski changed the title docs: centralize RabbitMQ 4.2.5 delivery and verification guidance docs: explain RabbitMQ strict dispatch, retention, and safe adoption Sep 24, 2026
@niemyjski niemyjski changed the title docs: explain RabbitMQ strict dispatch, retention, and safe adoption docs: explain RabbitMQ delivery safety and adoption requirements Sep 25, 2026

This branch has not been deployed

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant