A ProducerConsumer is a component that both sends messages to and receives messages from a particular destination.