System Design Topics

MD
R
Markdown

Concise guide to designing scalable software systems. Covers key architectural patterns, trade-offs, and best practices for building robust applications.

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