Sitemap
System Design Concepts

Collection of concepts related to system design

Distributed System

3 min readNov 22, 2024

--

The What and Why of Distributed System

A Distributed system is a group of separate computers, often known as nodes, that provide the impression to the user that they are one cohesive system. Through network communication, these nodes work together to accomplish a shared objective, such as completing a task, storing data, or providing an application. The main premise is that, despite being dispersed among several physical locations, the system’s components function as a whole.

Cloud computing platforms (like AWS, Google Cloud, and Azure), distributed databases (like Apache Cassandra and MongoDB), and web services (like Amazon, Facebook, and Google) are a few examples of distributed systems.

Press enter or click to view image in full size

Why do we need it though?

The need for distributed systems arises from the limitations of single-computer systems in handling modern workloads. Distributed systems are now necessary to meet the needs of scalability, dependability, and performance as a result of the evolution of technology and the internet.

Motivations for using a distributed system:

  1. Scalability: Scalability to manage massive data volumes and satisfy rising demand. Every day, billions of consumers must be served by services like Google and Facebook. These services use distributed systems to grow horizontally across dozens or millions of servers because no one server can manage such a large load.
  2. Fault Tolerance and High Availability: High availability and fault tolerance are used to reduce downtime and provide HA. Google Drive and other cloud storage providers keep several copies of your data on several computers and data centers. The system may still serve your files from a different location if one data center fails, guaranteeing little downtime.
  3. Resource Sharing and Collaboration: Using a distributed system to manage the editing process, Google Docs allows several users to make real-time edits to the same document, synchronizing changes across devices.
  4. Geographical distribution: Website material is cached in several places across the world by material Delivery Networks (CDNs) such as Akamai or Cloudflare. This increases speed and dependability by guaranteeing that users access the content from the server nearest to them. In essence, it is necessary for worldwide reach and faster reaction times with local servers.
  5. Improved Performance and Throughput: Through parallelization and load balancing, performance and throughput are increased. Data analysis operations that would be prohibitively slow on a single machine can be greatly accelerated by using Hadoop, a distributed processing platform that enables the processing of big datasets in parallel over numerous machines.
  6. Cost Efficiency: Cost-effective operation and resource utilization are ensured by Amazon Web Services (AWS) elastic computing, which allows companies to scale their infrastructure up or down in response to real-time demands.
  7. Security: By distributing sensitive data over several computers or geographical areas, a distributed system lowers the possibility of data breaches by limiting the exposure of any one machine. To guarantee data security and privacy, distributed systems might deploy several security tiers (such as firewalls, encryption, and authentication) across several nodes.

Summary:

In short, distributed systems are essential for building modern applications that need to scale, handle large amounts of data, remain available even in the event of failures, and offer efficient, real-time access to users globally. Without distributed systems, it would be nearly impossible to support the demands of today’s internet-scale applications.

--

--

No responses yet