🖇️

System Design & API Design Patterns

79 cards · 🇺🇸 English

Scalability, distributed systems concepts, and API design best practices.

Study all 79 cards for free

Flashcards, quizzes, pixel-art games and a daily review that remembers for you.

Study this deck free

Try the first 10 cards

1 / 10
Question

System design

Knew itLearning

Tap the card for the answer · swipe right if you knew it, left if not

Already have an account? Sign in

Cards

  1. 1System design
    The process of defining system architecture, components, interfaces, and data to satisfy specified requirements for scalability, reliability, and performance
  2. 2Main components of system design
    User Interface Design, Data Design, and Process Design
  3. 3Distributed system
    A system whose components are located on different networked computers that communicate and coordinate by passing messages
  4. 4Three main challenges of distributed systems
    Maintaining concurrency of components, overcoming lack of a global clock, and managing independent component failures
  5. 5Vertical scaling
    Adding more resources (CPU, RAM) to a single server to increase capacity
  6. 6Horizontal scaling
    Adding more servers to distribute the load across multiple machines
  7. 7Load balancing
    Distributing incoming network traffic across multiple servers to ensure no single server bears too much load
  8. 8Sharding
    Partitioning data across multiple database instances to distribute load and improve performance
  9. 9Database replication
    Maintaining multiple copies of data across different database servers to improve availability and reliability
  10. 10Primary-secondary (master-slave) replication
    A replication pattern where one primary database handles writes, and secondary databases handle reads
  11. 11CDN (Content Delivery Network)
    A distributed network of servers that delivers content to users based on their geographic location, improving speed and reducing latency
  12. 12Caching
    Storing frequently accessed data in fast-access storage (memory) to reduce database queries and improve response time
  13. 13Stateless server
    A server that doesn't store any session or user state between requests - each request is independent
  14. 14Stateful server
    A server that maintains session state and user context between requests
  15. 15Message queue
    A component that enables asynchronous communication between services by storing messages until they can be processed
  16. 16Publish-subscribe architecture
    A messaging pattern where publishers send messages to topics, and subscribers receive messages from topics they're interested in
  17. 17Single point of failure (SPOF)
    A component whose failure would cause the entire system to fail
  18. 18API rate limiting
    Controlling the number of requests a client can make to an API within a given time period to prevent abuse and ensure fair usage
  19. 19Service Level Agreement (SLA)
    A contract defining the expected level of service, including uptime guarantees and performance metrics
  20. 20CAP theorem
    A distributed system can only guarantee two of three: Consistency, Availability, and Partition tolerance
  21. 21Eventual consistency
    A consistency model where data will eventually become consistent across all replicas, but not immediately
  22. 22Microservices architecture
    An architectural style where an application is built as a collection of small, independent services that communicate via APIs
  23. 23Monolithic architecture
    An architectural style where all components of an application are tightly integrated and run as a single unit
  24. 24Database denormalization
    Intentionally introducing redundancy into a database design to improve read performance at the cost of write complexity
  25. 25SQL vs NoSQL databases
    SQL databases are relational, ACID-compliant with fixed schemas; NoSQL databases are non-relational, more flexible, and designed for scalability
  26. 26ACID in databases
    Atomicity, Consistency, Isolation, Durability - properties guaranteeing reliable database transactions
  27. 27BASE in distributed systems
    Basically Available, Soft state, Eventually consistent - an alternative to ACID for distributed systems
  28. 28Reverse proxy
    A server that sits in front of backend servers and forwards client requests, providing load balancing, caching, and security
  29. 29Georouting
    Directing user requests to the nearest datacenter based on geographic location to reduce latency
  30. 30Database indexing
    Creating data structures to improve the speed of data retrieval operations on a database table

And 49 more cards. Study the whole deck free

Articles about this deck

More Programming decks

See all
Study all 79 cards free