A Mule application processes messages one at a time in the order received. It can return a response message to the original source, send the message to third parties, or discard messages that do not meet criteria. Advanced Mule applications support more complex processing using multiple queues, clusters, object stores, and other features. Mule supports building applications as flows, which arrange pre-built blocks into a sequence, or as patterns for common use cases. Flows provide the most flexibility by allowing exact configuration of message processing steps.