Skip to content

Publishing#

FastStream NatsBroker supports all regular publishing use cases. You can use them without any changes.

However, if you wish to further customize the publishing logic, you should take a deeper look at specific NatsBroker parameters.

NATS Publishing#

NatsBroker also uses the unified publish method (from a publisher object) to send messages.

import asyncio
from faststream.nats import NatsBroker

async def pub():
    async with NatsBroker() as broker:
        await broker.publish(
            "Hi!",
            subject="test",
        )

asyncio.run(pub())

Basic Arguments#

The publish method accepts the following arguments:

  • message = "" - message to send.
  • subject: str - subject where the message will be sent.

Message Parameters#

  • headers: dict[str, str] | None = None - headers of the message being sent (used by consumers).
  • correlation_id: str | None = None - message id, which helps to match the original message with the reply to it (generated automatically).

NatsJS Parameters#

  • stream: str | None = None - validate that the subject is in the stream.
  • timeout: float | None = None - wait for the NATS server response.