Skip to content

docs: RabbitMQ connection and queue arguments pages, application lifecycle, raw bytes content-type - #3124

Closed
Lancetnik wants to merge 16 commits into
mainfrom
docs/context7-gaps
Closed

Lancetnik wants to merge 16 commits into
mainfrom
docs/context7-gaps

Conversation

@Lancetnik

Copy link
Copy Markdown
Member

Summary

Closes the documentation gaps that Context7 users hit most often. Each item is a question we had no page for; the answers were only in source or tests.

  • RabbitMQ Connection (rabbit/connection.md): the AMQP URL vs. host / port / virtualhost / ssl_options keyword arguments and their precedence, virtual host handling, one broker per virtual host, and the difference between connect() and start(). declare.md now points at that section because declare_queue / declare_exchange need an open connection.
  • RabbitMQ Queue Arguments (rabbit/queue_arguments.md): how to pass x-* arguments through RabbitQueue(arguments=...), a table of the common ones per queue type, the PRECONDITION_FAILED trap on redeclaration, and a full dead letter queue section with a runnable example (RejectMessage → DLX → DLQ, x-death header).
  • Application Lifecycle (getting-started/lifespan/lifecycle.md): the contracts of run(), start(), stop() and exit(), who owns the signal handlers, how to embed FastStream in your own event loop, why two run()s in one process don't work, and how ASGI and TestApp fit in. One snippet per broker.
  • Raw bytes and content-type (getting-started/publishing/index.md): bytes are sent without a content-type header; how to set one through headers= or, for RabbitMQ, the content_type= argument; what the consumer sees.

Test plan

  • tests/docs/rabbit/test_connection.py — in-memory, checks the built URLs and the two-vhost application
  • tests/docs/rabbit/test_dead_letter.py — connected, run against a local rabbitmq:3.13-alpine: the rejected message reaches the DLQ handler
  • tests/docs/getting_started/lifespan/test_manual_run.py — in-memory for all six brokers, drives serve() as a task and stops it through the event
  • ruff check / ruff format on the new test files
  • mkdocs build --strict for the new pages and links

🤖 Generated with Claude Code

Lancetnik and others added 4 commits September 12, 2026 17:56
…nnect() vs start()

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…ample

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…xit()

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
… to set one

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@github-actions github-actions Bot added the documentation Improvements or additions to documentation label Sep 12, 2026
Lancetnik and others added 2 commits September 12, 2026 20:34
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…he reader's task

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@Lancetnik
Lancetnik marked this pull request as draft September 12, 2026 18:56
Lancetnik and others added 2 commits September 13, 2026 09:03
…chors, drop orphan dependency stubs, add Confluent ack specifics

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…eference pages

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@github-actions github-actions Bot added Confluent Issues related to `faststream.confluent` module AioKafka Issues related to `faststream.kafka` module NATS Issues related to `faststream.nats` module and NATS broker features Redis Issues related to `faststream.redis` module and Redis features Observability MQTT Issues related to `faststream.mqtt` module AsyncAPI Issues related to AsyncAPI specification generation labels Sep 13, 2026
Lancetnik and others added 5 commits September 13, 2026 09:12
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
# Conflicts:
#	docs/docs/en/confluent/message.md
#	docs/docs/en/getting-started/cli.md
#	docs/docs/en/getting-started/context.md
#	docs/docs/en/getting-started/lifespan/test.md
#	docs/docs/en/getting-started/observability/logging.md
#	docs/docs/en/getting-started/subscription/test.md
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
- SetupError for Kafka/Confluent misconfiguration fires when the subscriber is declared, not at startup
- confluent/message.md: split wrapper fields from confluent_kafka.Message methods, like the kafka page
- redis/message.md: drop decoded_body, it no longer exists; streams/ack.md annotates RedisStreamMessage
- publishing/index.md: bytes leave the content type empty (Kafka/NATS send an empty header), MQTT has no way to set it
- lifecycle.md: stop() hook order, CLI extra options, redelivery only for acknowledging subscribers
- queue_arguments.md: subscribers declare and consume in order, so the dead-letter subscriber goes first; x-delivery-limit needs NACK_ON_ERROR; reject-publish-dlx is classic-only
- connection.md: publishers declare exchanges only
- no_ack include: no literal msg.ack() signature, Redis streams need redis/group arguments
- scheduling.md: one pending schedule per subject, consistent with the examples

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…at the old URL

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Lancetnik and others added 3 commits September 21, 2026 12:35
# Conflicts:
#	docs/docs/en/getting-started/integrations/django/index.md
www.uvicorn.org no longer answers; the link check added to the docs job in
#3194 would fail on it.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@Lancetnik
Lancetnik marked this pull request as ready for review September 21, 2026 16:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

AioKafka Issues related to `faststream.kafka` module AsyncAPI Issues related to AsyncAPI specification generation Confluent Issues related to `faststream.confluent` module documentation Improvements or additions to documentation MQTT Issues related to `faststream.mqtt` module NATS Issues related to `faststream.nats` module and NATS broker features Observability Redis Issues related to `faststream.redis` module and Redis features

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant