Adding content to 100-availability

content/system-design
syedmouaazfarrukh 2 years ago
parent 17063f5e7f
commit 2c4735fbd9
  1. 9
      src/roadmaps/system-design/content/118-cloud-design-patterns/103-reliability-patterns/100-availability/deployment-stamps.md
  2. 9
      src/roadmaps/system-design/content/118-cloud-design-patterns/103-reliability-patterns/100-availability/geodes.md
  3. 9
      src/roadmaps/system-design/content/118-cloud-design-patterns/103-reliability-patterns/100-availability/health-endpoint-monitoring.md
  4. 9
      src/roadmaps/system-design/content/118-cloud-design-patterns/103-reliability-patterns/100-availability/index.md
  5. 8
      src/roadmaps/system-design/content/118-cloud-design-patterns/103-reliability-patterns/100-availability/queue-based-load-leveling.md
  6. 8
      src/roadmaps/system-design/content/118-cloud-design-patterns/103-reliability-patterns/100-availability/throttling.md

@ -1 +1,8 @@
# Deployment stamps
# Deployment Stamps
Deployment Stamps in system design refers to a technique used to manage the deployment of a system across different environments, such as development, staging, and production. A deployment stamp is a set of environment-specific configurations and settings that are applied to the system during the deployment process. It allows to manage environment-specific configurations, ensure consistency across environments, and simplify the deployment process. It can be implemented in several different ways such as Configuration files, Environment variables and Deployment script.
To learn more visit the following links:
- [Deployment Stamps pattern](https://learn.microsoft.com/en-us/azure/architecture/patterns/deployment-stamp)
- [Deployment Stamps 101](https://blog.devgenius.io/deployment-stamps-101-7c04a6f704a2)

@ -1 +1,8 @@
# Geodes
# Geodes
Geodes in system design refers to a technique of partitioning a large dataset into smaller chunks, called geodes, that can be stored and processed more efficiently. Geodes are similar to shards in database partitioning, but the term is often used in the context of distributed systems and data processing. It allows to Scale the system, Improve performance and balance the load. It can be implemented in several different ways such as Hashing and Range-based partitioning.
To learn more visit the following links:
- [Geode pattern](https://learn.microsoft.com/en-us/azure/architecture/patterns/geodes)
- [Geode Formation, Types & Appearance | What is a Geode?](https://study.com/academy/lesson/geode-formation-types-appearance.ht)

@ -1 +1,8 @@
# Health endpoint monitoring
# Health Endpoint Monitoring
Health Endpoint Monitoring in system design refers to a technique for monitoring the health of a system by periodically sending requests to a specific endpoint, called a "health endpoint", on the system. The health endpoint returns a response indicating the current status of the system, such as whether it is running properly or if there are any issues. It allows to Monitor the overall health of the system, Provide insight into the system's performance, and automate the process of monitoring. It can be implemented in several different ways such as Periodic requests and Event-based monitoring.
To learn more visit the following links:
- [Health Endpoint Monitoring pattern](https://learn.microsoft.com/en-us/azure/architecture/patterns/health-endpoint-monitoring)
- [Explaining the health endpoint monitoring pattern](https://www.oreilly.com/library/view/java-ee-8/9781788830621/5012c01e-90ca-4809-a210-d3736574f5b3.xhtml)

@ -1 +1,8 @@
# Availability
# Availability
Availability in system design refers to the ability of a system to perform its intended function without interruption. High availability is desired as it means that the system is less likely to experience downtime, and when it does, it can quickly recover. To increase the availability of a system, several methods can be used such as Redundancy, Load balancing, Failover, Monitoring, and Automated recovery.
To learn more visit the following links:
- [System Design: Availability](https://dev.to/karanpratapsingh/system-design-availability-38bd)
- [Concept of Availability in system design](https://www.enjoyalgorithms.com/blog/availability-system-design-concept)

@ -1 +1,7 @@
# Queue based load leveling
# Queue-Based load leveling
Queue-based load leveling in system design refers to a technique for managing the workload of a system by using a queue to buffer incoming requests and process them at a steady pace. By using a queue, the system can handle bursts of incoming requests without being overwhelmed, as well as prevent idle periods where there are not enough requests to keep the system busy. It allows to smooth out bursts of incoming requests, prevent idle periods, Provide a way to prioritize requests, and provide a way to monitor requests. It can be implemented in several different ways such as In-memory queue and Persistent queue.
To learn more visit the following links:
- [Queue-Based Load Leveling pattern](https://learn.microsoft.com/en-us/azure/architecture/patterns/queue-based-load-leveling)

@ -1 +1,7 @@
# Throttling
# Throttling
Throttling in system design refers to a technique for limiting the rate at which requests are processed by a system. This is often used to prevent the system from being overwhelmed by a high volume of requests, or to ensure that resources are used efficiently. Throttling can be applied to incoming requests, outgoing requests or both, and can be implemented at different levels of the system, such as at the network, application, or service level. It allows to prevent system overload, ensure efficient resource usage, provide Quality of Service (QoS) and prevent Denial of Service (DoS). It can be implemented in several different ways such as Rate limiting, Leaking bucket and Token bucket.
To learn more visit the following links:
- [Throttling pattern](https://learn.microsoft.com/en-us/azure/architecture/patterns/throttling)
Loading…
Cancel
Save