Retry design pattern is a software design pattern that allows a process to be repeated automatically if it fails, with a delay, a number of retries or with a specific condition, in order to handle transient errors or failures, thus improving the reliability of the system.
Category: Design Patterns
Throttling: Keep your system in control, under any load
The Throttling design pattern is a software design pattern that limits the rate at which a process can be executed, in order to prevent overloading of resources, improve performance, and avoid service degradation or failure, by using techniques such as fixed rate, sliding window, token bucket, and leaky bucket.
Queue-Based Load Leveling: Smoothing out the bumps in high-traffic systems
Queue-Based Load Leveling pattern is a software design pattern that uses a queue as a buffer between the source of requests and the service that handles them, in order to smooth out spikes in traffic and prevent overloading of resources by allowing the service to process requests at a steady rate and temporarily store incoming requests that exceed the service’s capacity.
CQRS: Segregating read and write for a better performance
The Command Query Responsibility Segregation (CQRS) pattern is a software design pattern that separates the responsibilities of handling commands that change the state of the system from the responsibilities of handling queries that retrieves the state of the system, by using different models and data storage for read and write operations, in order to improve scalability, performance, and simplify the complexity of the system.