Distributed Systems Useful Links
Below are some of the links to the different technologies which are used to build a distributed system. It is necessary to know the different technologies available and how they can be used to build a distributed system.
Topics to Discuss for System Design InterviewWhenever you are Designing a System the following things should be discussed.
- What is the problem Statement
- Requirement and Goal of the System?
- Functional Requirements
- Non Functional Requirements
- Some Design Considerations
- Capacity Estimation and Constraints
- Traffic Estimate
- Storage Estimate
- Bandwidth Estimate
- Memory Estimate
- High Level Design
- System API
- Database Design
- Load Balancer
- Caching
- Disaster Recovery plan
Keep the following things in Mind and call the following things during the interview to show that you have a deep understanding of the concepts
- Load Balancer and usage
- CAP theorem - Will you choose Consistency or Availability ?
- Multiple instances of the service
- Software Architectural pattern for used
- Microservices Architectural pattern used
- Discuss Databases
- Type of database used - NoSQL vs SQL and why ?
- Do we need DB Sharding?
- Do we need Consistent Hashing ?
- Master - slave architecture
- Will Read and Write happen from same DB ?
- Discuss Caching
- Caching strategy - DBs that can be used for Caching
- Cache eviction policy
- Discuss Queueing mechanism
- Kafka, RabbitMQ
- Discuss Disaster Recovery
- How multiple instances could help
- How DB backups can be made
- What is the problem Statement
- Requirement and Goal of the System?
- Functional Requirements
- Non Functional Requirements
- Some Design Considerations
- Capacity Estimation and Constraints
- Traffic Estimate
- Storage Estimate
- Bandwidth Estimate
- Memory Estimate
- High Level Design
- System API
- Database Design
- Load Balancer
- Caching
- Disaster Recovery plan
- Load Balancer and usage
- CAP theorem - Will you choose Consistency or Availability ?
- Multiple instances of the service
- Software Architectural pattern for used
- Microservices Architectural pattern used
- Discuss Databases
- Type of database used - NoSQL vs SQL and why ?
- Do we need DB Sharding?
- Do we need Consistent Hashing ?
- Master - slave architecture
- Will Read and Write happen from same DB ?
- Discuss Caching
- Caching strategy - DBs that can be used for Caching
- Cache eviction policy
- Discuss Queueing mechanism
- Kafka, RabbitMQ
- Discuss Disaster Recovery
- How multiple instances could help
- How DB backups can be made
Service Registry
Message Broker
Rabbit MQ:
Video :
KAFKA vs RabbitMQ
Maintaining Message Ordering and no Duplication
https://developer.confluent.io/tutorials/message-ordering/kafka.html
Video : https://developer.confluent.io/learn-kafka/apache-kafka/topics/
https://developer.confluent.io/tutorials/message-ordering/kafka.html
Video : https://developer.confluent.io/learn-kafka/apache-kafka/topics/
JMS vs RabbitMQ:
IBM MQ:
Capacity Estimation
https://www.youtube.com/watch?v=VBw703pjC3E
https://dev.to/ievolved/how-i-calculate-capacity-for-systems-design-3477
https://dev.to/ievolved/how-i-calculate-capacity-for-systems-design-3477
No comments:
Post a Comment