Skip to content

GH-5054 Serverless docs: finish the remaining checklist items - #5178

Merged
jeremydmiller merged 1 commit into
mainfrom
gh-5054-serverless-docs
Oct 23, 2026
Merged

jeremydmiller merged 1 commit into
mainfrom
gh-5054-serverless-docs

Conversation

@jeremydmiller

Copy link
Copy Markdown
Member

Docs only. Finishes the #5054 checklist. Most of the serverless.md DRAFT notes were already folded into the page by #5085 (7b60418), so this covers what was still open:

  • docs/guide/durability/cosmosdb.md: the <!-- DRAFT (GH-5059) --> note becomes a "How Incoming Envelopes Are Partitioned" section. Under IdOnly, incoming documents are partitioned by message identity, and under IdAndDestination by destination. Documents from before 6.51 are still found, updated and deleted. While they drain, a redelivery of one of them isn't rejected at insert, because the new copy goes into a different partition. Checked against CosmosDbMessageStore.IncomingPartitions.cs / .Inbox.cs.
  • docs/guide/serverless.md, "Moving an Existing Database to ServerlessWithOutbox" (ServerlessWithOutbox follow-ups from the pre-PR review (GH-5016) #5038): the relational stores only add the timestamp columns when OutboxStaleTime / InboxStaleTime have a value, and this mode gives both a default. Under AutoCreate.None, Wolverine logs that storage is out of date and doesn't migrate, so stale outbox recovery fails until you run resources setup. Checked against the *EnvelopeTable.cs schemas and MessageDatabase.Admin.migrateAsync.
  • docs/guide/serverless.md, "Provisioning Broker Topology" (RabbitMQ under the serverless modes: skip the system reply queue declared on every cold start #5053): provision outside the function (resources setup or IaC) instead of AutoProvision() on every cold start. Under ServerlessWithOutbox, mandatory publishes to a missing queue fail the send. Also a tip about UseSenderConnectionOnly(), because ConnectAsync opens a listening connection that nothing uses here, and the admin channel falls back to the sending connection.
  • Removes a stray blank line in the "What Doesn't Work" list.

Already covered on main by #5085, verified rather than rewritten: the drain-loop sample with the pass cap (#5050) and all seven items from the second comment.

Local check: npx vitepress build docs succeeded (no dead links). No code changed.

Closes #5054

🤖 Generated with Claude Code

https://claude.ai/code/session_01DCggXgxnG3EBXoR9rrq37U

- cosmosdb.md: replace the GH-5059 DRAFT note with a "How Incoming Envelopes
  Are Partitioned" section (IdOnly partitions by identity, IdAndDestination by
  destination, pre-6.51 documents still found and drained, the one dedup gap)
- serverless.md: "Moving an Existing Database to ServerlessWithOutbox" -- the
  timestamp columns are added because the mode defaults both stale times, so
  AutoCreate.None leaves the pass failing until resources setup migrates (#5038)
- serverless.md: "Provisioning Broker Topology" -- provision outside the
  function instead of AutoProvision() on every cold start, why it matters for
  mandatory publishes under ServerlessWithOutbox, UseSenderConnectionOnly() (#5053)
- tidy a stray blank line in the "What Doesn't Work" list

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DCggXgxnG3EBXoR9rrq37U
@jeremydmiller
jeremydmiller merged commit c95b664 into main Oct 23, 2026
@jeremydmiller jeremydmiller mentioned this pull request Oct 23, 2026
This was referenced Oct 25, 2026
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.

Docs: Pub/Sub push subscriptions are provisioned outside Wolverine; AutoProvision creates unread pull subscriptions under ServerlessWithOutbox

1 participant