Adding content to 101-data-management

content/system-design
syedmouaazfarrukh 2 years ago
parent dc8f437166
commit daa5c7288c
  1. 8
      src/roadmaps/system-design/content/118-cloud-design-patterns/101-data-management/100-cache-aside.md
  2. 10
      src/roadmaps/system-design/content/118-cloud-design-patterns/101-data-management/101-cqrs.md
  3. 9
      src/roadmaps/system-design/content/118-cloud-design-patterns/101-data-management/102-event-sourcing.md
  4. 9
      src/roadmaps/system-design/content/118-cloud-design-patterns/101-data-management/103-index-table.md
  5. 9
      src/roadmaps/system-design/content/118-cloud-design-patterns/101-data-management/104-materialized-view.md
  6. 9
      src/roadmaps/system-design/content/118-cloud-design-patterns/101-data-management/105-sharding.md
  7. 9
      src/roadmaps/system-design/content/118-cloud-design-patterns/101-data-management/106-static-content-hosting.md
  8. 11
      src/roadmaps/system-design/content/118-cloud-design-patterns/101-data-management/107-valet-key.md
  9. 9
      src/roadmaps/system-design/content/118-cloud-design-patterns/101-data-management/index.md

@ -1 +1,7 @@
# Cache aside
# Cache Aside
Cache-Aside in system design is a pattern that allows for the caching of data, in order to improve the performance and scalability of a system. This pattern is typically used in systems where data is read more frequently than it is written. It can be used to reduce the load on a primary data store, and to improve the responsiveness of a system by reducing the latency of data access. Cache-Aside pattern can be used in scenarios like read-heavy workloads and latency-sensitive workloads. It can be implemented using various caching technologies such as in-memory cache, distributed cache, and file-based cache.
Learn more from the following links:
- [Cache-Aside pattern](https://learn.microsoft.com/en-us/azure/architecture/patterns/cache-aside)

@ -1 +1,9 @@
# Cqrs
# CQRS
CQRS (Command Query Responsibility Segregation) in system design is a pattern that separates the responsibilities of handling read and write operations in a system. This pattern allows for the separation of concerns between the read and write operations, and can be used to improve the scalability, performance, and maintainability of a system.
In this pattern, the read and write operations are handled by different components in the system. The write operations, known as commands, are handled by a Command component that updates the state of the system. The read operations, known as queries, are handled by a Query component that retrieves the current state of the system.
Learn more from the following links:
- [CQRS pattern](https://learn.microsoft.com/en-us/azure/architecture/patterns/cqrs)

@ -1 +1,8 @@
# Event sourcing
# Event Sourcing
Event Sourcing in system design is a pattern that stores the state of a system as a sequence of events, rather than the current state. Each change to the state of the system is recorded as an event, which is stored in an event store. The current state of the system can be derived from the events in the event store. Event sourcing can be used for various purposes such as tracking history, reconstruct state, recover from failures, and auditing. It is often implemented in conjunction with CQRS (Command Query Responsibility Segregation) pattern, which separates the responsibilities of handling read and write operations in a system.
Learn more from the following links:
- [Event Sourcing pattern](https://learn.microsoft.com/en-us/azure/architecture/patterns/event-sourcing)
- [Overview of Event Sourcing](https://microservices.io/patterns/data/event-sourcing.html)

@ -1 +1,8 @@
# Index table
# Index Table
An index table in system design is a data structure that allows for efficient lookup of data in a larger data set. It is used to improve the performance of searching, sorting, and retrieving data, by allowing for quick access to specific records or data elements. There are several types of index tables such as B-Tree, Hash table, and Trie each with its own strengths and weaknesses. Index tables can be used in a variety of scenarios such as searching, sorting, and retrieving.
Learn more from the following links:
- [System Design — Indexes](https://medium.com/must-know-computer-science/system-design-indexes-f6ad3de9925d)
- [Overview of Index Table](https://dev.to/karanpratapsingh/system-design-indexes-2574)

@ -1 +1,8 @@
# Materialized view
# Materialized View
A Materialized View in system design is a pre-computed and stored version of a query result, which is used to improve the performance of frequently executed queries. It can be used to improve the performance of read-heavy workloads, by providing a pre-computed version of the data that can be quickly accessed. Materialized views can be used in scenarios like complex queries, large datasets, and real-time analytics. A materialized view can be created by executing a query and storing the result in a table. The data in the materialized view is typically updated periodically, to ensure that it stays up-to-date with the underlying data.s
Learn more from the following links:
- [Materialized View pattern](https://learn.microsoft.com/en-us/azure/architecture/patterns/materialized-view)
- [Overview of Materialized View Pattern](https://medium.com/design-microservices-architecture-with-patterns/materialized-view-pattern-f29ea249f8f8)

@ -1 +1,8 @@
# Sharding
# Sharding
Sharding in system design is a technique used to horizontally partition a large data set across multiple servers, in order to improve the performance, scalability, and availability of a system. This is done by breaking the data set into smaller chunks, called shards, and distributing the shards across multiple servers. Each shard is self-contained and can be managed and scaled independently of the other shards. Sharding can be used in scenarios like scalability, availability, and geo-distribution. Sharding can be implemented using several different algorithms such as range-based sharding, hash-based sharding, and directory-based sharding.
Learn more from the following links:
- [Database Sharding: Concepts and Examples](https://www.mongodb.com/features/database-sharding-explained)
- [Database Sharding – System Design Interview Concept](https://www.geeksforgeeks.org/database-sharding-a-system-design-concept/)

@ -1 +1,8 @@
# Static content hosting
# Static Content Hosting
Static Content Hosting in system design is a technique used to serve static resources such as images, stylesheets, and JavaScript files, from a dedicated server or service, rather than from the main application server. This approach can be used to improve the performance, scalability, and availability of a system. Static content hosting can be used in scenarios like performance, scalability, and availability. Static content hosting can be implemented using several different techniques such as Content Delivery Network (CDN), Object Storage and File Server.
Learn more from the following links:
- [The pros and cons of the Static Content Hosting](https://www.redhat.com/architect/pros-and-cons-static-content-hosting-architecture-pattern)
- [Static Content Hosting pattern](https://learn.microsoft.com/en-us/azure/architecture/patterns/static-content-hosting)

@ -1 +1,10 @@
# Valet key
# Valet Key
A valet key in system design is a type of security feature that allows a user to grant limited access to a resource. It is commonly used in the automotive industry, where a valet key is used to allow a valet parking attendant to drive and park a car, but not to access the trunk or the glove compartment of the car.
In system design, a valet key can be used as a security feature to allow a user to grant limited access to a resource, such as a file or a service, to a third party. The third party can access the resource, but only with the limited permissions that have been granted by the valet key.
Learn more from the following links:
- [Valet Key pattern](https://learn.microsoft.com/en-us/azure/architecture/patterns/valet-key)
- [Explanation of Valet Key](https://www.youtube.com/watch?v=sapu2CE1W8s)

@ -1 +1,8 @@
# Data management
# Data Management
Data management in cloud system design refers to the process of designing, implementing and maintaining the data infrastructure and data management processes in a cloud computing environment. This includes designing and configuring data storage systems, data replication, data backup and disaster recovery, data security and access control, and data governance policies. It's a set of actions that aims to ensure the data is properly managed, stored and protected in a cloud environment.
Learn more from the following links:
- [Data Management in the Cloud: Promises, State-of-the-art](https://link.springer.com/article/10.1007/s13222-010-0033-3)
- [Data Management: What It Is, Importance, And Challenges](https://www.tableau.com/learn/articles/what-is-data-management)
Loading…
Cancel
Save