Performance is an indication of the responsiveness of a system to execute any action within a given time interval, while scalability is
Cache-Aside pattern
Load data on demand into a cache from a data store. This can improve performance and also helps to maintain consistency between data held in the cache and data in the underlying data store.
Command and Query Responsibility Segregation (CQRS) pattern
Segregate operations that read data from operations that update data by using separate interfaces. This can maximize performance, scalability, and security. Supports the evolution of the system over time through higher flexibility, and prevents update commands from causing merge conflicts at the domain level.
Event Sourcing pattern
Instead of storing just the current state of the data in a domain, use an append-only store to record the full series of actions taken on that data. The store acts as the system of record and can be used to materialize the domain objects.
Index Table pattern
Create indexes over the fields in data stores that are frequently referenced by queries. This pattern can improve query performance by allowing applications to more quickly locate the data to retrieve from a data store.
Materialized View pattern
Generate prepopulated views over the data in one or more data stores when the data isn’t ideally formatted for required query operations. This can help support efficient querying and data extraction, and improve application performance.
Priority Queue pattern
Prioritize requests sent to services so that requests with a higher priority are received and processed more quickly than those with a lower priority. This pattern is useful in applications that offer different service level guarantees to individual clients.
Queue-Based Load Leveling pattern
Use a queue that acts as a buffer between a task and a service it invokes in order to smooth intermittent heavy loads that can cause the service to fail or the task to time out. This can help to minimize the impact of peaks in demand on availability and responsiveness for both the task and the service.
Sharding pattern
Divide a data store into a set of horizontal partitions or shards. This can improve scalability when storing and accessing large volumes of data.
Static Content Hosting pattern
Deploy static content to a cloud-based storage service that can deliver them directly to the client. This can reduce the need for potentially expensive compute instances.
Throttling pattern
Control the consumption of resources used by an instance of an application, an individual tenant, or an entire service. This can allow the system to continue to function and meet service level agreements, even when an increase in demand places an extreme load on resources.
References
- https://docs.microsoft.com/en-us/azure/architecture/patterns/cache-aside
- https://docs.microsoft.com/en-us/azure/architecture/patterns/cqrs
- https://docs.microsoft.com/en-us/azure/architecture/patterns/event-sourcing
- https://docs.microsoft.com/en-us/azure/architecture/patterns/index-table
- https://docs.microsoft.com/en-us/azure/architecture/patterns/materialized-view
- https://docs.microsoft.com/en-us/azure/architecture/patterns/priority-queue
- https://docs.microsoft.com/en-us/azure/architecture/patterns/queue-based-load-leveling
- https://docs.microsoft.com/en-us/azure/architecture/patterns/sharding
- https://docs.microsoft.com/en-us/azure/architecture/patterns/static-content-hosting
- https://docs.microsoft.com/en-us/azure/architecture/patterns/throttling
No comments:
Post a Comment