Skip to content

docs: update queue documentation for fan-out delivery semantics#1391

Open
ytallo wants to merge 1 commit intomainfrom
docs/queue-fanout-documentation
Open

docs: update queue documentation for fan-out delivery semantics#1391
ytallo wants to merge 1 commit intomainfrom
docs/queue-fanout-documentation

Conversation

@ytallo
Copy link
Copy Markdown
Contributor

@ytallo ytallo commented Apr 2, 2026

Summary

  • module-queue.mdx: Updated topic-based queues section with fan-out per function explanation, added fan-out delivery Info callout, new Delivery row in comparison table, RabbitMQ per-function queue naming table, topic-based fan-out sequence diagram, and updated enqueue builtin function description.
  • module-pubsub.mdx: Fixed PubSub vs Queue comparison table — "Single consumer per message" was incorrect after fan-out; now correctly reads "Fan-out to each subscribed function; replicas of the same function compete".
  • use-queues.mdx: Comprehensive rewrite covering what queues are, when to use/avoid, both queue modes (topic-based + named), fan-out delivery model with diagrams, condition filtering, and four real-world scenarios (HTTP-to-queue pipeline, event fan-out, FIFO ledger, bulk email rate limiting).

Follows up on #1384 (feat: queue fan-out per function).

Test plan

  • Verify docs render correctly on preview deployment
  • Confirm all internal cross-references resolve (use-queues, module-queue, dead-letter-queues, trigger-actions, conditions)
  • Review mermaid diagrams render in the docs site

Summary by CodeRabbit

  • Documentation
    • Clarified queue delivery semantics, including topic-based fan-out behavior where messages are delivered to each subscribed function
    • Expanded queue guides with new real-world scenarios covering event fan-out and rate limiting patterns
    • Enhanced PubSub vs Queue comparison table with updated delivery model descriptions
    • Added documentation for message filtering via conditions and fan-out delivery model clarifications

The queue fan-out per function feature (PR #1384) changed how topic-based
queues deliver messages: each subscribed function now receives every
message (fan-out), while replicas of the same function compete on a
shared per-function queue.

Updated docs to reflect this:

- module-queue.mdx: rewrote topic-based queues section with fan-out
  explanation, added Info callout, delivery row in comparison table,
  RabbitMQ per-function naming table, fan-out sequence diagram, and
  updated enqueue builtin function description.

- module-pubsub.mdx: fixed PubSub vs Queue comparison table — "Single
  consumer per message" was incorrect after fan-out; now reads "Fan-out
  to each subscribed function; replicas compete".

- use-queues.mdx: comprehensive rewrite covering what queues are, when
  to use/avoid them, both queue modes (topic-based + named), fan-out
  delivery with diagrams, condition filtering, HTTP-to-queue pipeline,
  event fan-out scenario, FIFO ledger, and bulk email rate limiting.
@mintlify
Copy link
Copy Markdown

mintlify bot commented Apr 2, 2026

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
iii 🟢 Ready View Preview Apr 2, 2026, 12:47 AM

@vercel
Copy link
Copy Markdown
Contributor

vercel bot commented Apr 2, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
iii-website Ready Ready Preview, Comment Apr 2, 2026 0:47am
motia-docs Ready Ready Preview, Comment Apr 2, 2026 0:47am

Request Review

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Apr 2, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 6f6feac8-a8fb-428a-8871-064db6f8ed3f

📥 Commits

Reviewing files that changed from the base of the PR and between f5ac693 and 6f637f0.

📒 Files selected for processing (3)
  • docs/how-to/use-queues.mdx
  • docs/modules/module-pubsub.mdx
  • docs/modules/module-queue.mdx

📝 Walkthrough

Walkthrough

Documentation restructured to distinguish topic-based queues (fan-out to multiple subscribed functions with competing replicas) from named queues (FIFO acknowledgment-based). Updated queue delivery semantics explanation, added fan-out delivery diagrams, and revised real-world scenarios and comparison tables across queue and pubsub modules.

Changes

Cohort / File(s) Summary
Queue delivery semantics documentation
docs/how-to/use-queues.mdx, docs/modules/module-queue.mdx
Restructured to define topic-based queues with fan-out semantics (each subscribed function receives a copy, replicas compete per function) and named queues with FIFO/acknowledgment behavior. Added message filtering via conditions, sequence diagrams for topic-based and named queue flows, clarified RabbitMQ adapter naming conventions, and rewrote real-world scenarios to reflect the two queue modes.
PubSub comparison clarification
docs/modules/module-pubsub.mdx
Updated queue vs. pubsub comparison table to specify queue behavior as "topic-based" with fan-out to subscribed functions and retries/dead-letter support, while clarifying pubsub as "fire-and-forget fanout."

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested reviewers

  • andersonleal

Poem

🐰 Queues now split in two, so clear—
Topics fan-out without a fear!
Named ones ordered, replicas compete,
Dead letters catch what's not so sweet.
Docs bloom bright with diagrams new, 🐇✨

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: comprehensive updates to queue documentation to explain fan-out delivery semantics across three key documentation files.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/queue-fanout-documentation

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

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