50 System Design Terms That Will Make You Sound Like a Pro

1. Scalability

  • Definition: A system can support increased load by adding resources.
  • Example: Add more servers to handle the increase in web traffic.
    Scalability
  • For More information, click here

2. Load Balancer

  • Definition: Dividing the incoming network traffic among multiple servers so that no one server processes a large amount of load.
  • Example: Load balancing web traffic across multiple EC2 instances using the AWS Elastic Load Balancer(ELB) Service.
    Load Balancer
  • For More Information, click here

3. Microservices

  • Definition: It is an architectural pattern forcing the structuring of an application as a collection of loosely coupled services.
  • Example: Breaking down a monolithic application into independent services responsible for user management, processing payments, and sending notifications.
Microservices

4. CAP Theorem

  • Definition: It states that at best, only two out of three guarantees can be gained in a distributed system: Consistency, Availability, and Partition Tolerance.
  • Example: When to Trade Off Consistency for Availability — And Vice Versa — in Distributed Database Design.
    CAP Theorem Tradeoffs
  • For More Information, click here

5. Sharding

  • Definition: It involves breaking down a large database into smaller pieces called shards for better management.
  • Example: Sharding a user database based on geographic region.
Sharding

6. Latency

  • Definition: This gets defined as the time that it takes for data to travel from point A to point B.
  • Example: Measuring the delay involved in message delivery through a chat application.
    Latency example
  • For More Information, click here

7. Throughput

  • Definition: A measure of the quantity of data a system processes in some timeframe
  • Example: Requests processed by a web server in one second.
Throughput

8. Cache

  • Definition: Any hardware or software component that stores data to obviate future requests for the same data, serving It quickly.
  • Example: Implementing Redis caching for repeated database queries.
    Caching Pros and Cons
  • For More Information, click here

9. Content Delivery Network (CDN)

  • Definition: A server system, geographically dispersed, that shows Web content to a user based on the geographical location from which he is accessing.
  • Example: Using Cloudflare CDN for faster web page loading.
    CDN
  • For More Information, click here

10. REST API

  • Definition: a type of architectural style designed to build web services where data is accessed and manipulated using HTTP requests.
  • Example: Designing the Social Media API by REST(Representational State Transfer) principles.
    Understanding REST API
  • For More Information, click here

11. GraphQL

  • Definition: It is a language designed to query data, so it is much more powerful, efficient, and flexible than REST.
  • Example: Using GraphQL to query user information in a single request.
    GraphQL vs Others
  • For More Information, click here

12. ACID

  • Definition: A set of properties ensuring reliable processing of database transactions. The properties are Atomicity, Consistency, Isolation, and Durability.
  • Example: Ensuring that a banking transaction has ACID properties prevents corrupted data.
    A.C.I.D. Properties
  • For More Information, click here

13. BASE

  • Definition: An alternative to ACID that emphasizes Availability and Partition tolerance over strict consistency. Available, Soft state, Eventually consistent system.
  • Example: Design of a highly available, eventually consistent NoSQL database.
ACID vs BASE Properties

14. NoSQL

  • Definition: A type of database designed to promote storage and retrieval of data modelled in ways other than the tabular relationships used in relational databases.
  • Example: Using MongoDB for a document-based data store.
    NoSQL Databases
  • For More Information, click here

15. SQL

  • Definition: It is the standard language for storing, manipulating, and retrieving data in relational databases.
  • Example: Writing SQL queries to get data back from a relational database.
  • For More Information, click here

16. Database Indexing

  • Definition: It is a data structure technique that allows quick searching and access to data from a database.
  • Example: Create indexing in the user ID column for search speed enhancement.
Database Indexing

17. Replication

  • Definition: A process of copying and maintaining database objects in a multitude of databases that make up a distributed database system.
  • Example: It involves allowing a database to be highly available across different geographical locations using replication.
Replication Process

18. Failover

  • Definition: A backup operational mode in which system component functions are taken over by other system components in case of loss of a primary system component.
  • Example: Built-in automatic failovers to standby servers in the event of a server failure of your internet applications.
Failover types, Automatic and Manual

19. API Gateway

  • Definition: A server that sits at the front of an API, receiving API requests, applying throttling and security policies, and then forwarding them to back-end services.
  • Example: Using AWS API Gateway to manage APIs.
  • For More Information, click here

20. Service Mesh

  • Definition: A dedicated infrastructure layer for facilitating service-to-service communications between microservices.
  • Example: Integrating Istio as a service mesh for the management of microservice interactions.
  • For More Information, click here

21. Serverless Computing

  • Definition: A Cloud computing implementation that “dynamically allows for the allotment of machine resources by the cloud provider”.
  • Example: Run backend code without any server provisioning at your end using AWS Lambda.
Serverless Computing Pros and Cons

22. Event-Driven Architecture

  • Definition: A software architecture paradigm encouraging the generation, detection, and consumption of, and the reaction to, events in general.
  • Example: Design a system with event communications between microservices using Apache Kafka.
    Event Driven Architecture
  • For More Information, click here

23. Monolithic Architecture

  • Definition: A software architecture wherein all the elements are fitted into a single application and run as a single service.
  • Example: Old traditional enterprise applications built as a single, large unit.
  • For More Information, click here

24. Distributed Systems

  • Definition: A model wherein components located on networked computers communicate with each other and coordinate their actions by passing messages.
  • Example: Designing a distributed file system like Hadoop.
  • For More Information, click here

25. Message Queue

  • Definition: This method allows asynchronous, service-to-service communication in both serverless and microservices architectures.
  • Example: Using RabbitMQ to queue messages between services.
Message Queue

26. Pub/Sub Model

  • Definition: A messaging pattern in which senders (publishers) publish messages so abstractly that any one of them can end up being accessed by recipients without the sender having to even know the identity of the destination receivers (subscribers).
  • Example: A notification system that uses Google Cloud Pub/Sub.
  • For More Information, click here

27. Data Partitioning

  • Definition: Division of a database into smaller, manageable parts.
  • Example: Partitioning a table in a database by date to allow super-fast query execution.
  • For More Information, click here

28. Horizontal Scaling

  • Definition: Increasing the capacity by adding more machines or nodes within a system.
  • Example: Adding more web servers to handle an increasing volume of user traffic.
  • For More Information, click here

29. Vertical Scaling

  • Definition: Upgrading an already existing machine with more power in the form of a CPU or RAM.
  • Example: Upgrading the RAM of a server so that it can handle more requests all at once.
  • For More Information, click here

30. Rate Limiting

  • Definition: It means controlling the rate of traffic that the network interface controller is sending or receiving.
  • Example: Throttling an API to prevent abusive behavior.
  • For More Information, click here

31. Circuit Breaker Pattern

  • Definition: A design pattern used in modern software development, applied to detect failures and encapsulate the logic of preventing a failure from constantly recurring.
  • Example: Handling failed remote service calls using a circuit breaker in a microservice architecture.

32. Data Consistency

  • Definition: Ensuring that data is the same across multiple instances and is not corrupted.
  • Example: Maintaining the consistency of user data through multiple replicas of a database.
Data Consistency

33. Eventual Consistency

  • Definition: A model of consistency used in distributed computing toward the goal of high availability, stating that updates to a system will eventually propagate and be reflected by all nodes.
  • Example: Amazon DynamoDB provides an eventually consistent model for the read operation.
  • For More Information, click here

34. Strong Consistency

  • Definition: A consistency model ensuring every read gets the most recent write on a given unit of data.
  • Example: Using strong consistency in a financial transaction system.
  • For More Information, click here

35. Containerization

  • Definition: Basically, this is whenever an application and its dependencies are encapsulated into a container to be run on any computational environment.
  • Example: Using Docker to containerize the applications for deployment in various environments such as dev, test, prod etc.
    Containerization
  • For More Information, click here

36. Kubernetes

  • Definition: An open-source platform that automates the process of application container deployment, scaling, and operation.
  • Example: Run and deploy containerized applications using Kubernetes.
  • For More Information, click here

37. Autoscaling

Definition: Automatically adjusting the number of computational resources based on the user load.
Example: Utilizing AWS EC2 Auto Scaling feature to dynamically adjust the number of instances.

Autoscalaing Using AWS

38. Multi-Tenancy

  • Definition: Architecture where a single instance of a software application serves multiple consumers/customers.
  • Example: SaaS applications, such as Salesforce, utilize multi-tenancy in their service provision toward their different categories of customers.
  • For More Information, click here

39. Load Shedding

  • Definition: Backing off some demands or degrading services to maintain the health of the overall system under high load.
  • Example: This will turn off all non-essential services during times of peak traffic.
Load Shedding

40. Idempotence

  • Definition: A property for some mathematical and computer-science operations stating that it has the same effect if repeated more times than once.
  • Example: An HTTP DELETE request is idempotent.
  • For More Information, click here

41. Quorum

  • Definition: The minimum number of votes needed to commit a distributed transaction.
  • Example: Basically, quorum-based replication ensures that consistency exists in the distributed database.
  • For More Information, click here

42. Orchestration

  • Definition: A pattern of service interaction where a central coordinator controls the interaction between services.
  • Example: Using a workflow engine to manage some multi-step business process.

43. Choreography

  • Definition: A service interaction pattern in which every service is self-contained and interacts with others through events; there will not be any coordinator or orchestrator.
  • Example: Microservices communicating through an event bus in a choreography pattern.
  • For More Information, click here

44. Service Registry

  • Definition: A database that keeps track of instances of microservices.
  • Example: Using the Eureka service registry in a microservice architecture.

45. API Rate Limiting

  • Definition: It means controlling how many requests a client can make against an API within a certain timeframe.
  • Example: Limiting requests to an API to 100 per minute to prevent abuse.

46. Data Warehouse

  • Definition: A system that helps in the generation of reports and business data analytics; the hub of Business Intelligence.
  • Example: Amazon Redshift can be implemented in data warehousing.

47. Data Lake

  • Definition: A system or repository where data is kept in native/raw format, generally as object blobs or files.
  • Example: Petabyte scaling for storing and managing structured and unstructured data in a data lake.
  • For More Information, click here

48. OLAP

  • Definition: Online Analytical Processing : The software category that allows the analysis of data kept in a database.
  • Example: Use of the OLAP cubes for pointy analytical and arbitrary queries.

49. OLTP

  • Definition: Online Transaction Processing: a class of systems that manage transaction-oriented applications.
  • Example: Using OLTP systems for transaction data management, as in banking systems, etc.
  • For More Information, click here

50. Big Data

  • Definition: Large, complex data sets that cannot be efficiently managed by conventional data-processing software in the best of cases.
  • Example: Analyzing social media interactions to predict fashion trends.
  • For More Information, click here

Thanks for reading! Please share this guide with others if you, in any way, found it useful so they can also do these sets of exercises.

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *