For the complete documentation index, see llms.txt. This page is also available as Markdown.

Message Channel

Message Channel PHP

In Symfony Messenger, you dispatch() and the framework chooses a transport. In Laravel, you dispatch() to a queue. A Message Channel is the same idea: it's the pipe. The point of giving channels first-class names ("orders", "notifications", "tenant_a_orders") is that everything else in Ecotone — async processing, retries, dead letter, scaling — configures per channel.

You'll declare a Message Channel explicitly when:

  • You want a specific async handler to use a specific transport (one handler on RabbitMQ, another on a database queue).

  • You want one handler to retry differently than another — different channels = different policies.

  • You're going multi-tenant and want to isolate noisy tenants (see Dynamic Channels).

A message channel may follow either point-to-point or publish-subscribe semantics. With a point-to-point channel, only one consumer can receive each message. Publish-subscribe channels broadcast each message to all subscribers.

Pollable channels extends Message Channels with capability of buffering Messages within a queue. The advantage of buffering is that it allows for throttling the inbound messages and preventing of message loss.

Last updated

Was this helpful?