System design concepts
System design concepts internet

System design concepts

System design concepts


1. Vertical scaling - refers to increasing the resources (such as CPU, memory, or storage) of a single machine to improve its performance or handle higher workloads.

2. Horizontal scaling -adding more servers to a system to distribute the workload and increase overall capacity and performance.

3. Load balancer - A load balancer is a network device or software that evenly distributes incoming network traffic across multiple servers or resources to optimize performance and ensure high availability.

4. Content delivery networks - Content Delivery Networks (CDNs) are distributed networks of servers located geographically closer to end users, designed to deliver web content efficiently by caching and serving it from nearby locations

5. Caching - Caching is the process of storing frequently accessed data or content in a temporary storage location (cache) to improve retrieval speed and reduce the need for repeated requests

6. Internet Protocol Address - An IP address is a unique numerical label assigned to each device connected to a computer network

7. TCP - TCP (Transmission Control Protocol) is a communication protocol that ensures reliable, connection-oriented transmission of data by dividing it into smaller packets, numbering them, and reassembling them at the receiving end.

8. DNS - DNS (Domain Name System) is a decentralized naming system that translates human-readable domain names into IP addresses

9. HTTP - HTTP (Hypertext Transfer Protocol) is a protocol that governs the communication between web browsers and servers, allowing for the retrieval and transfer of web pages and resources over the internet.

10. REST - REST (Representational State Transfer) is an approach to designing web services that uses standard HTTP methods and URLs to facilitate communication between clients and servers.

11. GraphQL - GraphQL is a query language for APIs that provides a flexible and efficient way for clients to request and retrieve data from servers by allowing them to specify exactly what data they need. Using single query it can fetch multiple resources without overfetching as well.

12. gRPC - gRPC (Google Remote Procedure Call) is an open-source framework that enables efficient communication and interoperation between services by defining the interface and data contracts using Protocol Buffers and facilitating bi-directional streaming and error handling.

13. web sockets - WebSockets is a communication protocol that provides full-duplex, real-time, and bidirectional communication between a client and a server over a single, long-lived connection.WebSockets can be used in applications such as chat systems or real-time collaboration tools, where instant and continuous data exchange between clients and servers is required.

14. SQL - SQL (Structured Query Language) is a programming language used for managing and manipulating relational databases, allowing users to perform tasks such as querying data, defining database structure, and modifying data records. SQL is considered to use when fast retrieval of data is needed

15. ACID compliance - ACID (Atomicity, Consistency, Isolation, Durability) compliance is a set of properties that ensure reliability and integrity in database transactions, guaranteeing that they are executed reliably, consistently, and without interference.

16. NoSQL databases - NoSQL (Not Only SQL) databases are a class of databases that provide flexible, schema-less data models and horizontal scalability, making them suitable for handling large volumes of unstructured or semi-structured data.

17. Sharding - Sharding is a technique in database management where data is horizontally divided and distributed across multiple servers or nodes to improve performance, scalability, and load balancing.

18. Replication - Replication is the process of creating and maintaining identical copies of data across multiple servers or nodes, providing redundancy, fault tolerance, and improved data availability in distributed systems.

19. CAP thoerem - The CAP theorem states that in a distributed system, it is impossible to simultaneously guarantee consistency, availability, and partition tolerance, and therefore, trade-offs must be made between these three properties.

20. Message Queues - Kind of like databases because they have durable storage. They can be replicated for redunduncy or sharded for scalability. This can be used in task distribution and workload decoupling.

#shafiqul_islam_talks_for_humanity


要查看或添加评论,请登录

SHAFIQUL ISLAM的更多文章

社区洞察

其他会员也浏览了