System Design Flashcards
Rate Limiter Sliding window counters
- The entire window time is broken down into smaller buckets. The size of each bucket depends on how much elasticity is allowed for the rate limiter
- Each bucket stores the request count corresponding to the bucket range.
For example, in order to build a rate limiter of 100 req/hr, say a bucket size of 20 mins is chosen, then there are 3 buckets in the unit time
Framework for system design?
https://www.youtube.com/watch?v=i7twT3x5yv8&ab_channel=ByteByteGo
Step 1: Understand the problem and establish design scope 5 Minutes Functional no-functional
Step 2: Propose high-level design and get buy-in 20 Minutes API and why(REst), high-level Design data MOdel
Step 3: Design a deep dive for 15 Minutes Disscus high-level and detail trade-off
3-1 Identify bottlenecks and scaling opportunities, try concerned edge cases
Step 4: Wrap up 5 Minutes Summarize
Non-functional requirements:
Storage size
Number of users
Security
Consistency
Freshness
Accuracy
Performance
Scale
reliability
Functional questions
Who are our clients?
Do we need to talk to pieces of the existing systems?
What are the existing pieces?