Category: System Design

  • Non-functional Requirements – #1. High Availability, Fault Tolerance

    What is Availability? #1. Principles for High Availability #2. Processes for High Availability What is Fault Tolerance? Fault Tolerance vs High Availability Reliability, Resiliency Reference

  • Functional/Non-Functional Requirements

    Functional Requirements How to define Functional Requirements => Interviewer is checking how the interviewee is breaking down the ambiguious problems into smaller manageable ones Non-Functional Requirements Reference

  • Detailed Level Design

    Component #1. Client Component Notes Blocking I/O – 1 thread per 1 request=> Easy debugging Non-Blocking I/O – Single thread handles multiple requests Buffering and Batching – Client sends requests in batch=> To lower the burden on Server side Timeout 1. Connection Timeout – The time client waits until connection…

  • Analyze Requirements

    Clarify Requirements Functional Requirements Non-functional Requirements