In a telecommunication network where programs communicate by exchanging formally-defined messages (that is, through the act of messaging ), a message broker is an intermediary program that translates a message from the formal messaging protocol of the sender to the formal messaging protocol of the receiver. Message broker programs are sometimes known as middleware. Many messaging patterns (like publish-subscribe) can work without a message broker. One pattern that requires a message broker is workload queues, that is message queues that are handled by multiple receivers. Such queues must be managed, transacted, and usually stored reliably, at a single point.