Wolfpack is a one-to-one-of-many messaging pattern for workload distribution in which a client addresses a group of services that share a workload stream. The diagram shows this pattern, where Feeder refers to the client, and Wolf refers to the service instances. The Router refers to a set of feeds and pipes, or other resources capable of queuing and routing messages.

Wolfpack is always decoupled. The wolves read from a named shared queue, and the feeder publishes messages to this named queue. To support Wolfpack the router must implement shared queues which can distribute messages to wolves on a round-robin basis, possibly with the addition of fair-queueing in which feeders as well as wolves are selected on a round-robin basis.

The RestMS 4/AMQP9 profile implements Wolfpack through the service and rotator feed types. For request-response scenarios a good combination is Wolfpack to send work to the wolves, and Housecat to send responses back to the feeders.

Related Posts

Leave a Reply

Your email address will not be published. Required fields are marked *