System Design
- DNS: distributed system used to translate human-readable domain names, such as www.example.com, into IP addresses, like 192.168.1.1
- LOAD BALANCER: network device that distributes incoming network traffic across multiple backend servers
- API GATEWAY: server that acts as a single point of entry for a set of microservices (routing, authentication, and rate limiting)
- CDN: These servers are designed to deliver web content, such as images, videos, and other static files, to users based on their geographical location
- FORWARD PROXY: a “proxy server,” or simply “proxy,” server that sits in front of one or more client machines and acts as an intermediary between the clients and the internet
- REVERSE PROXY: is a server that sits in front of one or more web servers and acts as an intermediary between the web servers and the Interne
- CACHING: high-speed storage layer that sits between the application and the original source of the data
- DATA PARTITIONING: horizontal partitioning, also known as sharding, involves dividing the rows of a table into smaller tables and storing them on different servers or database instances. vertical partitioning, involves dividing the columns of a table into separate tables
- SHARDING: It is a technique used to scale a database by horizontally partitioning the data across multiple servers, or shards. The goal of sharding is to distribute the data and workload across multiple servers,
- DATABASE REPLICATION: copying and synchronizing data from one database to one or more additional databases.
- DISTRIBUTED MESSAGING SYSTEMS: exchange of messages between multiple, potentially geographically-dispersed applications
- DISTRIBUTED FILE SYSTEMS: storage solutions designed to manage and provide access to files and directories across multiple servers, nodes, or machines, often distributed over a network.
- FULL TEXT SEARCH: inverted index, which is a data structure that maps words or phrases to the documents in which they appear. An example of such systems is Elastic Search.
- DISTRIBUTED COORDINATIONS SERVICES: manage and coordinate the activities of distributed applications, services, or nodes in a reliable, efficient, and fault-tolerant manner. Apache ZooKeeper, etcd, Consul.
Created on 3/28/2023