I have decided to write a series on some common and modern Design Patterns that are useful in today's horizontally scalable (such as cloud-hosted) applications. This is not going to be the usual, gang of four design patterns series, but rather more suited towards building a modern application architecture that caters for the increasing requirements for east-west communication and easily scaling up and deploying.
Applications that rely heavily on a data-store usually can benefit greatly from using the Cache-Aside Pattern. How does it work?
By introducing an Asynchronous Queue between a task and a service, you will be decoupling the task from the service. The service will be able to handle the messages at its own pace, irrespective of the volume of requests from concurrent tasks.
The Competing Consumer Pattern enables a system to process multiple messages concurrently to optimize throughput, to improve scalability and availability.