DEV Community

Cover image for Top 50 System Design Terminologies You Should Know
Farzana Pomy
Farzana Pomy

Posted on

Top 50 System Design Terminologies You Should Know

1. Scalability
Definition: A system can support increased load by adding resources.
Example: Add more servers to handle the increase in web traffic.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

copied

Top comments (2)

Collapse
 
kavya-sahai-god profile image
Kavya Sahai • Edited

While I believe the most of the content is strong, here are a few minor suggestions for enhancement:

  • Target Audience: Specifying the target audience (e.g., beginner, intermediate) could make the content even more useful.
  • Visuals: Adding diagrams or visuals could further enhance understanding, especially for complex concepts like CAP theorem or service mesh.
  • Links: Incorporating links to external resources (e.g., official documentation, in-depth articles) could provide readers with further learning opportunities.

That's all from Me. The things I liked about your article are:

  • High-Quality Content: The content provides valuable information for anyone interested in learning about distributed systems, scalability, and related topics.
  • Well-Organized: The use of numbered headings and clear definitions with concise examples makes the content easy to read and understand.
  • Relevant Keywords: The content naturally incorporates relevant keywords, which is good for SEO without being keyword-stuffed.
  • Engaging: The use of examples helps to make abstract concepts more concrete and relatable.

Your content deserves more likes than it has :D

Collapse
 
farzanapomy profile image
Farzana Pomy

Hello Kavya, Thanks for your cordial support. further, I will try to maintain your suggestion.