What is Distributed systems?
Tags: systemdesign, discuss, tutorial, beginners
Published: 2023-11-18 05:16:54

**Hello and welcome again to the system design series by @mukeshkuiry !** 🚀

**Have you ever wondered how Google handles billions of requests per second without downtime?**

Yes, it's due to their **distributed system**.

**Don't know what a distributed system is? Let me tell you what it is.**

A distributed system is like opening multiple **momo stalls** in your city to scale your business exponentially and distribute the load of a single shop to multiple. 🍜

**I guess you now have an idea of what a distributed system is.**

Distributed systems make it easier for companies to scale their applications at **exponential rates**. Many top tech companies use complex distributed systems to handle billions of requests and perform updates without downtime. A distributed system is a collection of computers that work together to form a single computer for the end user. All computers share the same state and operate concurrently. These machines can also fail without affecting the entire system.

**Distributed systems can be difficult to deploy and maintain, but they provide many benefits, including:**

- **Scaling:** Distributed systems allow you to scale horizontally to account for more traffic.
- **Modular growth:** There’s almost no cap on how much you can scale.
- **Fault tolerance:** Distributed systems are more fault-tolerant than single machines.
- **Cost-effective:** The initial cost is higher than traditional systems, but because of their capacity to scale, they quickly become more cost-effective.
- **Low latency:** You can have a node in multiple locations, so traffic will hit the closest node.
- **Efficiency:** Distributed systems break complex data into smaller pieces.
- **Parallelism:** Distributed systems can be designed for parallelism, where multiple processors divide up a complex problem into smaller chunks.

**Distributed system failure:**

**A distributed system can encounter several types of failures. Four basic types of failure include:**

**System failure:**

   System failure occurs because of software or hardware failures. System failure usually results in the loss of the content of primary memory, but the secondary memory remains uncorrupted. Whenever there is a system failure, the processor fails to execute the requests, and the system may reboot or freeze.

**Communication medium failure:**

   Communication medium failure occurs because of the failure of communication link failure or the shifting of nodes.

**Secondary storage failure:**

   A secondary storage failure when the secondary memory contents are inaccessible. It can result in many things like node crashing, dirt in the medium, and parity error.

**Method failure:**

   Method failure may halt the system and make it unable to execute any process. A system may enter a deadlock state or experience protection violations during method failures. ⚠️


In conclusion, understanding and implementing distributed systems play a crucial role in the scalability and reliability of modern applications. While they come with their challenges, the benefits of scaling, fault tolerance, cost-effectiveness, low latency, efficiency, and parallelism make them indispensable in handling the demands of today's digital landscape.


We've just scratched the surface of distributed systems in this post. If you're intrigued by the world of system design, stay tuned for more insights in the upcoming posts by @mukeshkuiry. Feel free to explore further and delve deeper into the fascinating realm of technology and its applications. 🌐