Parrot is a one-to-many messaging pattern for information distribution in which a publisher addresses a group of subscribers. The diagram shows this pattern, where Parrot refers to the publisher, and Monkey refers to the subscribers. The Router refers to a set of feeds and pipes, or other resources capable of queuing and routing messages.
Parrot is always decoupled. The monkeys read from a set of topics, and the parrot publishes messages to this topic set. To support Parrot the router must implement topic routing into private queues, private selection from shared topic ring buffers, or another equivalent mechanism.
The RestMS 3/Defaults profile implements Parrot via ad-hoc joins, where the feed is the topic name. The RestMS 4/AMQP9 profile implements Parrot through the fanout, direct, topic and headers feeds. In Parrot the monkeys typically do not talk back to the parrots.