System Design Cheat Sheet

Nikolay Ashanin
Feb 3 · 2 min read
Image 1. Monument Valley Game

You can use it for interviews or assessments, pre-sales, or estimations.

1. Understand Problem and Scope

  • Recognize stakeholders and prioritize them. Create a RACI matrix
  • Understand business drivers of the project
  • Recognize end-users of the project and understand how they use that system
  • Check functional requirements
  • Define external dependencies
  • Suggest additional features
  • Remove items that interviewer considers out of scope

2. Think about constraints and non-functional requirements

  • (use PASS ME if you do not remember all of NFRs)
  • Recognize the number of users
  • Estimate users growth rate (for the next year/next five years)
  • Define average response time
  • Understand database size (current / for the next year/ for the next five years)
  • Understand storage size (current / for the next year/ for the next five years)
  • Recognize security needs
  • Define acceptable downtime of the system
  • Recognize the number of requests (per month/per second)
  • Estimate reads vs. writes operations percentage
  • Define time to market
  • Check customer related NFR: legacy/proprietary soft, etc

3. Detect Architecture Significant Requirements

4. Abstract Design

  • Choose which architectural views to define based on the stakeholders’ matrix. Use common C4/4+1/etc otherwise
  • Choose Architecture Style (Monolith, SOA — microservices, layered architecture, etc.)
  • Choose between cloud solution or on-premise servers
  • Consider authentication/authorization and privacy
  • Suggest security rules and protocols
  • Define infrastructure: load balancing, messaging
  • Make a rough overview of any critical algorithm that drives the service
  • Consider bottlenecks and determine solutions
  • Choose storage type (SQL or NoSQL)
  • Understand what data should be cached and how to improve performance/security/availability with caching
  • Choose monitoring system and logging. Analytics and automatically reboot the system in case of exceptions
  • Define separation between public and restricted areas

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade