Saturday, November 1, 2014

System Design: Introduction to System Design

I. System Design process:
Step 1: Constraints and use cases
The very first thing you should do with any system design question is to clarify the system's constraints and to identify what use cases the system needs to satisfy. Spend a few minutes questioning your interviewer and agreeing on the scope of the system. Many of the same rules we discussed while talking about algorithm design apply here as well.

Step 2: Abstract Design

Step 3: Understand the bottleneck
Step 4: Scale your abstract design

2. Scalability fundamental:

  • Vertical scaling

  • Horizontal scaling
  • Caching
  • Load balancing
  • Database replication
  • Database partitioning

No comments:

Post a Comment