Following are few use cases where this pattern will be a right fit:
- To ensure that a system continues to meet service level agreements
- To prevent a single tenant from monopolizing the resources provided by an application
- To handle bursts in activity
- To help cost-optimize a system by limiting the maximum resource levels needed to keep it functioning