System Design Resources

System design of Twitter

source: https://www.infoq.com/presentations/Twitter-Timeline-Scalability

Everything-in-it page

https://github.com/donnemartin/system-design-primer

Interview solutions

Real-world examples (Tech Engineering pages)

Resource with many real-world system design explanations: http://highscalability.com/

Step-by-step

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

Very good course

Grokking the system design interview

Great book

Distributed systems for fun and profit

Some terms

  • CAP Theorem (video, blog)
    • Consistency, Availability, Partition tolerance

Introduction to architecting systems for scale

https://lethain.com/introduction-to-architecting-systems-for-scale/

  • Load balancing
    • Smart clients
    • Hardware load balancers
    • Software load balancers
  • Caching
    • Application vs. Database caching
    • In-memory caches (e.g. Memcached, Redis)
    • Content distribution networks
    • Cache invalidation
  • Off-line processing

HTTP requests

https://www.codecademy.com/articles/http-requests

  • HTTP: Hypertext Transfer Protocol
  • TCP: Transmission Control Protocol
  • URL: Uniform Resource Locator
  • HTTP verbs:
    • GET — retrieve a specific resource (by id) or a collection of resources
    • POST — create a new resource
    • PUT — update a specific resource (by id)
    • DELETE — remove a specific resource by id
  • List of HTTP status codes

What is REST

https://www.codecademy.com/articles/what-is-rest

  • REST: REpresentational State Transfer

Data engineering pipeline

with choices of technologies for each stage dataengpipeline