Design Patterns: Competing Consumer Pattern

The Competing Consumer Pattern enables a system to process multiple messages concurrently to optimize throughput, to improve scalability and availability.

Design Patterns: Queue-Based Load Leveling Pattern

By introducing an Asynchronous Queue between a task and a service, you will be allowing the service to handle the messages at its own pace