Ayush Poddar's Wiki

      • Business
      • Financial philosophies and lessons
      • Investments and Personal Finance
      • Taxation
      • Documentation on some tools
      • Events, anecdotes and facts
      • Life Philosophies
      • Politics, governance and legals
      • Productivity
      • Climate change
      • High level designs - Software Systems
      • Industrial production
      • Software engineering

    High level designs - Software Systems

    Dec 16, 20241 min read

    map-of-contentssoftware-engineering

    System Design

    Scenarios/Examples

    • Scaling a web app
    • Estimating Twitter Queries Per Second and Storage - Example
    • How to design a Rate Limiter
    • Design a key-value store

    Concepts

    • Models of consistency
    • Using Quorum Consensus to get consistency
    • CAP Theorem
    • Consistent hashing
    • Vertical scaling and Horizontal scaling
    • Load balancers
    • Database replication using master-slave relationship
    • Caching in large scale applications
    • Single point of failure
    • Content delivery networks (CDN)
    • Stateful web server and Stateless web server
    • GeoDNS routing of clients
    • Message queues
    • Monitoring logs
    • Collecting application system metrics
    • Automating application maintenance cycle
    • Typical system latency times
    • Service Level Agreement (SLA)
    • Resolving inconsistencies using versioning and vector clocks
    • Failure detection using gossip protocol
    • Improve availability after failures - Using sloppy quorum
    • Recovering from temporary failures - Hinted handoff
    • Recover from permanent failures - Merkle Trees

    Miscellaneous

    • Tips for System Design Interviews
    • Measurement of capacity of a data center

    Graph View

    • System Design
    • Scenarios/Examples
    • Concepts
    • Miscellaneous

    Backlinks

    • No backlinks found

    Created with Quartz v4.4.0 © 2024

    • GitHub
    • Discord Community