A distributed system is a group of independent computers, called nodes, that work together and appear to users as a single system. These nodes communicate with each other over a network and share data, resources, and tasks in order to achieve a common goal.
Example: An online shopping platform like Amazon.
Characteristics
- Consists of multiple independent computers
- Nodes communicate and shared the data through a network
- Appears as a single system to the end user
- Failure of one node does not stop the entire system

- Database: It is used to store the processed data that are processed by each Node/System of the Distributed systems that are connected to the Centralized network.

- Each Autonomous System runs its own application and maintains local data.
- The Centralized Database System stores common data that can be shared across all Autonomous Systems.
- To transfer data between the Centralized System and Autonomous Systems, a Middleware Service is used.
- Middleware Services act as an interface, enabling communication and services not present in local systems or the centralized system.
- Data is divided into segments and sent to Autonomous Systems for processing.
- Autonomous Systems process the data locally.
- Processed data is sent back to the Centralized System via the network and stored in the database.
Advantages of Distributed System
- Resource Sharing: Nodes share resources such as data, files, and hardware, increasing efficiency and reducing costs.
- Multiple Independent Nodes: Consists of several independent computers (nodes) working together.
- Transparency: It hides the complexity of the Distributed Systems to the Users and appears as a single system to users, even though it is made of multiple nodes.
- Scalability: Can easily handle increasing workloads by adding more nodes.
- Reliability and Fault Tolerance: If there is a failure in Hardware or Software of one node, this does not crash the entire system; the system continues functioning.
- Performance: Workloads can be split across multiple nodes, allowing tasks to be completed faster and improving overall system performance.
Disadvantages of Distributed System
- Complexity: Designing and managing distributed systems is more difficult than centralized systems.
- Security Challenges: Multiple nodes increase the risk of unauthorized access and attacks.
- Network Dependency: Performance relies heavily on network reliability and speed.
- Data Consistency Issues: Keeping data synchronized across multiple nodes can be challenging.
- Higher Cost: More hardware, software, and maintenance are required compared to centralized systems.
- Troubleshooting Difficulties: Detecting and fixing problems across multiple nodes is harder.
Use cases of Distributed System
- Online Banking Systems: Branches and ATMs share data with central servers but operate independently.
- E-Commerce Platforms: Sites like Amazon or Flipkart process orders, payments, and inventory across multiple servers.
- Social Media Platforms: Facebook, Twitter, and Instagram store and process data across multiple data centers to handle millions of users.
- Online Gaming Systems: Multiplayer games like PUBG distribute game states across servers to reduce latency.
Are Distributed Systems and Microservices the Same?
Distributed systems and microservices are related concepts but not the same.
1. Distributed Systems: A distributed system is any system where multiple independent computers (nodes) work together and appear as a single system.
2. Microservices: Microservices is an architectural style where an application is divided into small, independent services that communicate over a network.
Difference:
- All microservices architectures are distributed systems, but not all distributed systems are microservices.
- Distributed systems can exist without being a microservices-based application.