Grokking The System Design Interview

A step by step guide

Step 1: Requirements clarifications Step 2: Back-of-the-envelope estimation Step 3: System interface definition Step 4: Defining data model Step 5: High-level design Step 6: Detailed design Step 7: Identifying and resolving bottlenecks

Designing a URL Shortening service like TinyURL

Consistent Hashing

Review this.

Index _