System Design
When designing a complete system, we need to consider the following components' detail:
- Storage (Database)
- Cache
- High Availability - Have some redundant nodes running in active/active mode.
- Cross country replication - To serve data closer to the user-machine like Akamai
- Service Level Agreement (SLA): Time required to reflect the changes made in the system
- Use a load balancer if one server is not sufficient
- Try to put queuing systems for asynchronous consumption of offline loads.
- Find out the columns you want to index if using an RDBMS. Find out the memory required by those indexes.
If indexes per machine are taking more than 10-100 GB per machine, then you have to shard the DB.
- If read traffic is very high than write traffic, it may be a good idea to increase some slaves replicas.
Slave replicas will only respond to read traffic but will keep themselves updated by getting data from the server.
Read full article from System Design - PrismoSkills
No comments:
Post a Comment