Logo
Pattern

Discover published sets by community

Explore tens of thousands of sets crafted by our community.

Scalability Design Patterns

10

Flashcards

0/10

Still learning
StarStarStarStar

Service Discovery

StarStarStarStar

Implementation: Allows services in a distributed system to find each other and communicate. When to Use: To manage and discover services in a dynamic, often containerized, cloud-based environment.

StarStarStarStar

Data Replication

StarStarStarStar

Implementation: Copying data from one location to another to ensure consistency across distributed systems. When to Use: To improve the availability of data and resilience of the system against regional failures or network partitions.

StarStarStarStar

Caching

StarStarStarStar

Implementation: Temporarily store copies of frequently accessed data in fast storage systems. When to Use: To speed up data retrieval, reduce latency, and decrease the load on the database or service.

StarStarStarStar

Microservices Architecture

StarStarStarStar

Implementation: Break down a monolithic application into a collection of smaller, independent services. When to Use: To enable scaling of individual components of an app independently, improve fault isolation, and support a variety of languages and frameworks.

StarStarStarStar

Circuit Breaker

StarStarStarStar

Implementation: Automatically detect failures and prevent the application from trying to perform an action that is likely to fail. When to Use: To maintain high-availability and prevent cascading failures in distributed systems.

StarStarStarStar

Database Sharding

StarStarStarStar

Implementation: Split a database into smaller, faster, more easily managed parts called 'shards'. When to Use: When a database is too large to be served from a single machine or when write operations become a bottleneck.

StarStarStarStar

Event Sourcing

StarStarStarStar

Implementation: Store changes to the application state as a sequence of events. When to Use: When you need to rebuild the state of the application, perform complex temporal queries or audit changes.

StarStarStarStar

Load Balancing

StarStarStarStar

Implementation: Distribute incoming traffic among multiple servers using hardware or software load balancers. When to Use: To evenly distribute load across servers, prevent overloading any single resource, and to increase the availability of applications.

StarStarStarStar

Queueing Systems

StarStarStarStar

Implementation: Use message queues to orchestrate communication between distributed components decoupling senders and receivers. When to Use: To manage workloads, ensure resiliency in communication between services, and handle asynchronous processing.

StarStarStarStar

Consistent Hashing

StarStarStarStar

Implementation: Use a hash function to distribute data across nodes, minimizing reorganization when nodes are added or removed. When to Use: For distributing load to a large number of servers and dealing with dynamic addition or removal of servers with minimal disruption.

Know
0
Still learning
Click to flip
Know
0
Logo

© Hypatia.Tech. 2024 All rights reserved.