Point-to-Point Channel
Explanation
Section titled “Explanation”Sometimes a sender needs to be sure that exactly one receiver handles a message or performs a call. If two receivers both acted on it, the work could be done twice.
The solution is to send the message on a Point-to-Point Channel. This channel guarantees that only one receiver gets any particular message. The Message Channel article explains channels in general.
Compared with publish-subscribe. In a Publish/Subscribe Channel, all consumers receive every message. In a point-to-point setup, one consumer receives each message.
Competing Consumers. One consumer may be too slow for the rate at which messages arrive. The fix is to put several consumers on the same channel. They process different messages at the same time, so the system can scale horizontally, meaning by adding more consumers.
Order is not guaranteed. With several consumers, the order in which they receive messages may differ from the order in which the messages were created. Azure Service Bus sessions can provide first-in, first-out (FIFO) order when it is needed.
Delivery at least once. The queue delivers each message at least once. A message may therefore be processed more than once. Operations should be idempotent, so repeating them does no harm. The Idempotent Receiver article covers this.
Redelivery. In Azure Service Bus, the PeekLock mode hides a message from other consumers while one consumer works on it. If processing succeeds, the consumer calls Complete to settle the message. If it fails, the runtime may call Abandon. The message then becomes visible again, so another consumer can pick it up.
Example
Section titled “Example”An online shop puts “ship order 1042” messages on one channel. Three warehouse workers listen on that channel. Each message goes to exactly one worker, so no order is shipped twice. When orders pile up, the shop adds a fourth worker on the same channel. Because order is not guaranteed, each worker checks whether an order was already shipped before acting.
Trade-offs
Section titled “Trade-offs”- Scaling versus order. More competing consumers process more messages at once. But the order of processing is no longer guaranteed. Sessions in Azure Service Bus can restore FIFO order.
- No lost messages versus repeats. At-least-once delivery means a message may be handled more than once. Consumers must be idempotent.
- One receiver versus many. If several parties each need every message, a Publish/Subscribe Channel fits better.
Diagram source
flowchart LR S[Sender] --> C[Point-to-Point Channel] C -->|message 1| R1[Receiver A] C -->|message 2| R2[Receiver B] C -->|message 3| R3[Receiver C]Checks
Section titled “Checks”- The document states which channels must deliver each message to exactly one receiver, and uses point-to-point channels for them.
- Where several consumers share a channel, the document notes that processing order is not guaranteed and says how order is handled if needed.
- Consumers on queue-based channels are designed to be idempotent, because delivery is at least once.
- The document explains how failed messages become available again for another consumer.
Related
Section titled “Related”- Message Channel
- Publish/Subscribe Channel
- Idempotent Receiver
- Dead Letter Channel
- Messaging
- Scalability
- Polling Consumer
- Event-Driven Consumer
Sources
Section titled “Sources”- Point-to-Point Channel - Enterprise Integration Patterns — enterpriseintegrationpatterns.com, accessed 2026-11-09
- Competing Consumers Pattern - Azure Architecture Center | Microsoft Learn — learn.microsoft.com, accessed 2026-11-09
- Competing Consumers - Enterprise Integration Patterns — enterpriseintegrationpatterns.com, accessed 2026-11-09