Following are few use cases where this pattern will be a right fit:
- Near real-time systems: Systems which require near real time performance which cannot afford delays in data access from persistent stores.
- Priority workload: Not all operations in a system will hold equal priority. Operations which had to be executed on a higher priority can be separated as a different partition served with more capable hardware to optimize performance.
- Geo dispersed user base: Storing the data close to the users can be beneficial in case of a Geo-dispersed deployment. Partitioning data based on user local can be useful in this scenario.