Dec 2, 2022
systemDesign
Which database to use?
Which database to use?
advantages of non-relational database
• Your application requires super-low latency.
• Your data are unstructured, or you do not have any relational data.
• You only need to serialize and deserialize data (JSON, XML, YAML, etc.).
• You need to store a massive amount of data.
Vertical scaling and horizontal scaling
Vertical scaling, referred to as “scale up”, means the process of adding more power (CPU, RAM, etc.) to your servers.
Horizontal scaling, referred to as “scale-out”, allows you to scale by adding more servers into your pool of resources.
Load Balancer
What is a load balancer?
How does it works?
data replication
What is the definition?
master/slave mode.
What are the advantages?
- Better Performance
- Reliability
- High Availability
Cache
What is Cache?
What are the advantages of using cache?
What are the considerations for using cache?
1. when to use
2. expiration policy
3. consistency
4. mitigating failures
5. eviction policy
CDN
considerations of using a CDN
1. cost
2. setting appropriate cache expiry
3. CDN fallback
4. invalidating files
challenges when implement multi-data center setup
1. Traffic redirection
2. Data synchronization
3. Test and Deployment
SESSION TWO
message queue
1. What is a message queue?
2. What problem does it solve?
SESSION 3 Sharding Technique
Sharding separates large databases into smaller, more easily managed parts called shards. Each shard shares the same schema, though the actual data on each shard is unique to the shard.
Sharding introduces complexities and several challenges
1. Resharding data
2. Celebrity problem
3. Join and de-normalization
basic knowledges
A software system is called "monolithic" if it has a monolithic architecture, in which functionally distinguishable aspects (for example data input and output, data processing, error handling, and the user interface) are all interwoven, rather than containing architecturally separate components.
The disadvantages of a monolith include: Slower development speed – A large, monolithic application makes development more complex and slower. Scalability – You can't scale individual components. Reliability – If there's an error in any module, it could affect the entire application's availability.
Software deployment is all of the activities that make a software system available for use. The general deployment process consists of several interrelated activities with possible transitions between them. These activities can occur on the producer side or on the consumer side or both
A single point of failure (SPOF) is essentially a flaw in the design, configuration, or implementation of a system, circuit, or component that poses a potential risk because it could lead to a situation in which just one malfunction or fault causes the whole system to stop working.
By undefined
31 notes ・ 94 views
English
Beginner