Large Scale System Design and Architecture

Read: https://en.wikipedia.org/wiki/Systems_architecture

To be honest, this is one thing you can truly know only after a good experience of this over and over again. This is more of an art than science. You want to develop senses which let you break down a large system into small parts, to take out each of such part and decide on what services that part renders and how each of these micro-services fit together to bring about the service.

Types

Enterprise architecture

  1. https://en.wikipedia.org/wiki/Enterprise_architecture
  2. There is a great overview of various Enterprise Integration Patterns here: https://camel.apache.org/components/4.4.x/eips/enterprise-integration-patterns.html

Software architecture

  1. https://en.wikipedia.org/wiki/Software_architecture
  2. https://en.wikipedia.org/wiki/Domain-driven_design

𝗬𝗼𝘂 𝗠𝗨𝗦𝗧 𝗸𝗻𝗼𝘄 𝘁𝗵𝗲𝘀𝗲 𝟲 𝗔𝗣𝗜 𝗔𝗿𝗰𝗵𝗶𝘁𝗲𝗰𝘁𝘂𝗿𝗮𝗹 𝘀𝘁𝘆𝗹𝗲𝘀.

APIs are the backbone of modern web communication, and there are multiple styles out there. Here’s a rundown of 6 API architecture styles you must know:

  1. REST: The classic, using HTTP requests for CRUD operations.
  2. GraphQL: Ask exactly what you need and nothing more, reducing data overfetching.
  3. WebSocket: For when the conversation goes both ways in real-time.
  4. gRPC: High-performance, language-agnostic, ideal for internal services.
  5. MQTT: The messenger service of the IoT, where devices publish and subscribe.
  6. Serverless: Write backend code without managing servers; let the cloud handle it.

Each style has its place, advantages, and use cases.

Tags

  1. Convention Over Configuration
  2. Design patterns
  3. Design principles
  4. Difference between Design patterns and Design principles
  5. Distributed Systems vs Centralized Systems
  6. Event driven architecture

KNOWLEDGE GAP - LEARN MORE

  1. 10 Best System Design Courses for Coding Interviews https://medium.com/javarevisited/10-best-system-design-courses-for-coding-interviews-949fd029ce65

  2. https://javarevisited.blogspot.com/2022/03/how-to-prepare-for-system-design.html

  3. https://javarevisited.blogspot.com/2012/06/20-design-pattern-and-software-design.html

  4. https://javascript.plainenglish.io/8-steps-guide-to-ace-a-system-design-interview-7a5a797f4d7d

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

  6. https://medium.com/@nidhiupreti99/understanding-system-design-of-netflix-backend-architecture-and-cloud-services-b077162e45bc

  7. https://www.geeksforgeeks.org/top-10-system-design-interview-questions-and-answers/?ref=leftbar-rightbar

  8. Orchestration vs choreography

  9. Bounded context

  10. Topics

    I aced the coding, but was quickly humbled by questions on load balancers, scaling, and the CAP theorem.

    I learned that passing these interviews isn’t about complex code, but about mastering the core building blocks of scalable systems. If you’re starting out, here are 10 beginner-friendly concepts that will make things finally click ✅

    ✨ Tip: Study one concept per week and build a small demo around it.

    1. Load Balancing - how traffic gets spread for reliability

      1. https://lnkd.in/gdYrCdxN
    2. Caching (CDN + Redis) - faster responses, less load

      1. https://lnkd.in/g4bgDz4F
      2. https://lnkd.in/ggn8ER9C
      3. Content Delivery Network (CDN)
    3. Database Indexing - the secret to fast queries

      1. https://lnkd.in/gMK3yerx
    4. Horizontal vs Vertical Scaling - add bigger boxes vs. more boxes

      1. https://lnkd.in/gnjyehuN
    5. CAP Theorem - consistency, availability, partitions: pick two under failure

      1. https://lnkd.in/gjyFen5n
    6. API Rate Limiting - protect your APIs & your bill

      1. https://lnkd.in/guY7n99u
    7. Message Queues (Kafka/RabbitMQ/SQS) - decouple and smooth traffic

      1. https://lnkd.in/gCvzUKNS
    8. Content Delivery Networks (CDNs) - content closer to users = speed

      1. https://lnkd.in/gdNb6PYK

      2. Content Delivery Network (CDN)

    9. Fault Tolerance & Redundancy - survive failures gracefully

      1. https://lnkd.in/gCfj8V7Q
    10. Monitoring & Alerts (Prometheus + Grafana) - know when things break

      1. https://lnkd.in/gmmkndnS