What is a Distributed System?
Last Updated :
13 Nov, 2024
A distributed system is a collection of independent computers that appear to the users of the system as a single coherent system. These computers or nodes work together, communicate over a network, and coordinate their activities to achieve a common goal by sharing resources, data, and tasks.

Difference between centralized system and distributed system
All data and computational resources are kept and controlled in a single central place, such as a server, in a centralized system. Applications and users connect to this hub in order to access and handle data. Although this configuration is easy to maintain and secure, if too many users access it simultaneously or if the central server malfunctions, it could become a bottleneck.
A distributed system, on the other hand, disperses data and resources over several servers or locations, frequently across various physical places. Better scalability and reliability are made possible by this configuration since the system can function even in the event of a component failure. However, because of their numerous points of interaction, distributed systems can be more difficult to secure and administer.
Architectures of Distributed systems
Below are some of the common distributed system architectures:
- Client-Server Architecture:
- In this setup, servers provide resources or services, and clients request them. Clients and servers communicate over a network.
- Examples: Web applications, where browsers (clients) request pages from web servers.
- Peer-to-Peer (P2P) Architecture:
- Each node, or "peer," in the network acts as both a client and a server, sharing resources directly with each other.
- Examples: File-sharing networks like BitTorrent, where files are shared between users without a central server.
- Three-Tier Architecture:
- This model has three layers: presentation (user interface), application (business logic), and data (database). Each layer is separated to allow easier scaling and maintenance.
- Examples: Many web applications use this to separate user interfaces, logic processing, and data storage.
- Microservices Architecture:
- The application is split into small, independent services, each handling specific functions. These services communicate over a network, often using REST APIs or messaging.
- Examples: Modern web applications like Netflix or Amazon, where different services handle user accounts, orders, and recommendations independently.
- Service-Oriented Architecture (SOA):
- Similar to microservices, SOA organizes functions as services. However, SOA typically uses an enterprise service bus (ESB) to manage communication between services.
- Examples: Large enterprise applications in finance or government, where different services handle various aspects of business processes.
- Event-Driven Architecture:
- Components interact by sending and responding to events rather than direct requests. An event triggers specific actions or processes in various parts of the system.
- Examples: Real-time applications like IoT systems, where sensors trigger actions based on detected events.
The most common forms of distributed systems today operate over the internet, handing off workloads to dozens of cloud-based virtual server instances that are created as needed, and then terminated when the task is complete.
Example of a Distributed System
Any Social Media can have its Centralized Computer Network as its Headquarters and computer systems that can be accessed by any user and using their services will be the Autonomous Systems in the Distributed System Architecture.

- Distributed System Software: This Software enables computers to coordinate their activities and to share the resources such as Hardware, Software, Data, etc.
- 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.

- As we can see that each Autonomous System has a common Application that can have its own data that is shared by the Centralized Database System.
- To Transfer the Data to Autonomous Systems, Centralized System should be having a Middleware Service and should be connected to a Network.
- Middleware Services enable some services which are not present in the local systems or centralized system default by acting as an interface between the Centralized System and the local systems. By using components of Middleware Services systems communicate and manage data.
- The Data which is been transferred through the database will be divided into segments or modules and shared with Autonomous systems for processing.
- The Data will be processed and then will be transferred to the Centralized system through the network and will be stored in the database.
Characteristics of Distributed System
- Resource Sharing: It is the ability to use any Hardware, Software, or Data anywhere in the System.
- Openness: It is concerned with Extensions and improvements in the system (i.e., How openly the software is developed and shared with others)
- Concurrency: It is naturally present in Distributed Systems, that deal with the same activity or functionality that can be performed by separate users who are in remote locations. Every local system has its independent Operating Systems and Resources.
- Scalability: It increases the scale of the system as a number of processors communicate with more users by accommodating to improve the responsiveness of the system.
- Fault tolerance: It cares about the reliability of the system if there is a failure in Hardware or Software, the system continues to operate properly without degrading the performance the system.
- Transparency: It hides the complexity of the Distributed Systems to the Users and Application programs as there should be privacy in every system.
Advantages of Distributed System
Below are some of the advantages of Distributed System:
- Scalability: Distributed systems can easily grow by adding more computers (nodes), allowing them to handle increased demand without significant reconfiguration.
- Reliability and Fault Tolerance: If one part of the system fails, others can take over, making distributed systems more resilient and ensuring services remain available.
- Performance: Workloads can be split across multiple nodes, allowing tasks to be completed faster and improving overall system performance.
- Resource Sharing: Distributed systems allow resources like data, storage, and computing power to be shared across nodes, increasing efficiency and reducing costs.
- Geographical Distribution: Since nodes can be in different locations, distributed systems can serve users globally, providing faster access to resources based on location.
Disadvantages of Distributed System
Below are some of the disadvantages of Distributed System:
- Relevant Software for Distributed systems does not exist currently.
- Security possess a problem due to easy access to data as the resources are shared to multiple systems.
- Networking Saturation may cause a hurdle in data transfer i.e., if there is a lag in the network then the user will face a problem accessing data.
- In comparison to a single user system, the database associated with distributed systems is much more complex and challenging to manage.
- If every node in a distributed system tries to send data at once, the network may become overloaded.
Use cases of Distributed System
- Finance and Commerce: Amazon, eBay, Online Banking, E-Commerce websites.
- Information Society: Search Engines, Wikipedia, Social Networking, Cloud Computing.
- Cloud Technologies: AWS, Salesforce, Microsoft Azure, SAP.
- Entertainment: Online Gaming, Music, youtube.
- Healthcare: Online patient records, Health Informatics.
- Transport and logistics: GPS, Google Maps.
Are Distributed Systems and Microservices the Same?
Distributed systems and microservices are related concepts but not the same. Let's break down the differences:
- Distributed Systems:
- A distributed system is a collection of independent computers that appear to its users as a single coherent system.
- In a distributed system, components located on networked computers communicate and coordinate their actions by passing messages.
- Distributed systems can encompass various architectures, including client-server, peer-to-peer, and more.
- Microservices:
- Microservices is an architectural style that structures an application as a collection of small, autonomous services, modeled around a business domain.
- Each microservice is a self-contained unit that can be developed, deployed, and scaled independently.
- Microservices communicate with each other over a network, typically using lightweight protocols like HTTP or messaging queues.
While microservices can be implemented in a distributed system, they are not same. Microservices focus on architectural design principles, emphasizing modularity, scalability, and flexibility, whereas distributed systems encompass a broader range of concepts, including communication protocols, fault tolerance, and concurrency control, among others.
Conclusion
Distributed systems are becoming increasingly popular due to their high availability, scalability, and fault tolerance. However, they also present some challenges that must be addressed. By understanding the characteristics and challenges of distributed systems, developers can design and implement effective distributed systems that meet the needs of their users.
Similar Reads
Distributed Systems Tutorial A distributed system is a system of multiple nodes that are physically separated but linked together using the network. Each of these nodes includes a small amount of the distributed operating system software. Every node in this system communicates and shares resources with each other and handles pr
8 min read
Basics of Distributed System
What is a Distributed System?A distributed system is a collection of independent computers that appear to the users of the system as a single coherent system. These computers or nodes work together, communicate over a network, and coordinate their activities to achieve a common goal by sharing resources, data, and tasks.Table o
7 min read
Types of Transparency in Distributed SystemIn distributed systems, transparency plays a pivotal role in abstracting complexities and enhancing user experience by hiding system intricacies. This article explores various types of transparencyâranging from location and access to failure and securityâessential for seamless operation and efficien
6 min read
What is Scalable System in Distributed System?In distributed systems, a scalable system refers to the ability of a networked architecture to handle increasing amounts of work or expand to accommodate growth without compromising performance or reliability. Scalability ensures that as demand growsâwhether in terms of user load, data volume, or tr
10 min read
Difference between Hardware and MiddlewareHardware and Middleware are both parts of a Computer. Hardware is the combination of physical components in a computer system that perform various tasks such as input, output, processing, and many more. Middleware is the part of software that is the communication medium between application and opera
4 min read
Difference between Parallel Computing and Distributed ComputingIntroductionParallel Computing and Distributed Computing are two important models of computing that have important roles in todayâs high-performance computing. Both are designed to perform a large number of calculations breaking down the processes into several parallel tasks; however, they differ in
5 min read
Difference between Loosely Coupled and Tightly Coupled Multiprocessor SystemWhen it comes to multiprocessor system architecture, there is a very fine line between loosely coupled and tightly coupled systems, and this is why that difference is very important when choosing an architecture for a specific system. A multiprocessor system is a system in which there are two or mor
5 min read
Design Issues of Distributed SystemDistributed systems are used in many real-world applications today, ranging from social media platforms to cloud storage services. They provide the ability to scale up resources as needed, ensure data is available even when a computer fails, and allow users to access services from anywhere. However,
8 min read
Communication & RPC in Distributed Systems
Features of Good Message Passing in Distributed SystemMessage passing is the interaction of exchanging messages between at least two processors. The cycle which is sending the message to one more process is known as the sender and the process which is getting the message is known as the receiver. In a message-passing system, we can send the message by
3 min read
What is Message Buffering?Remote Procedure Call (RPC) is a communication technology that is used by one program to make a request to another program for utilizing its service on a network without even knowing the network's details. The inter-process communication in distributed systems is performed using Message Passing. It
6 min read
Group Communication in Distributed SystemsIn distributed systems, efficient group communication is crucial for coordinating activities among multiple entities. This article explores the challenges and solutions involved in facilitating reliable and ordered message delivery among members of a group spread across different nodes or networks.G
8 min read
What is Remote Procedural Call (RPC) Mechanism in Distributed System?A remote Procedure Call (RPC) is a protocol in distributed systems that allows a client to execute functions on a remote server as if they were local. RPC simplifies network communication by abstracting the complexities, making it easier to develop and integrate distributed applications efficiently.
9 min read
Stub Generation in Distributed SystemA stub is a piece of code that translates parameters sent between the client and server during a remote procedure call in distributed computing. An RPC's main purpose is to allow a local computer (client) to call procedures on another computer remotely (server) because the client and server utilize
3 min read
Server Management in Distributed SystemEffective server management in distributed systems is crucial for ensuring performance, reliability, and scalability. This article explores strategies and best practices for managing servers across diverse environments, focusing on configuration, monitoring, and maintenance to optimize the operation
12 min read
Difference Between RMI and DCOMIn this article, we will see differences between Remote Method Invocation(RMI) and Distributed Component Object Model(DCOM). Before getting into the differences, let us first understand what each of them actually means. RMI applications offer two separate programs, a server, and a client. There are
2 min read
Synchronization in Distributed System
Source & Process Management
What is Task Assignment Approach in Distributed System?A Distributed System is a Network of Machines that can exchange information with each other through Message-passing. It can be very useful as it helps in resource sharing. In this article, we will see the concept of the Task Assignment Approach in Distributed systems. Resource Management:One of the
6 min read
Difference Between Load Balancing and Load Sharing in Distributed SystemA distributed system is a computing environment in which different components are dispersed among several computers (or other computing devices) connected to a network. This article clarifies the distinctions between load balancing and load sharing in distributed systems, highlighting their respecti
4 min read
Process Migration in Distributed SystemProcess migration in distributed systems involves relocating a process from one node to another within a network. This technique optimizes resource use, balances load, and improves fault tolerance, enhancing overall system performance and reliability.Process Migration in Distributed SystemImportant
9 min read
Distributed Database SystemA distributed database is basically a database that is not limited to one system, it is spread over different sites, i.e, on multiple computers or over a network of computers. A distributed database system is located on various sites that don't share physical components. This may be required when a
5 min read
Multimedia DatabaseA Multimedia database is a collection of interrelated multimedia data that includes text, graphics (sketches, drawings), images, animations, video, audio etc and have vast amounts of multisource multimedia data. The framework that manages different types of multimedia data which can be stored, deliv
5 min read
Mechanism for Building Distributed File SystemBuilding a Distributed File System (DFS) involves intricate mechanisms to manage data across multiple networked nodes. This article explores key strategies for designing scalable, fault-tolerant systems that optimize performance and ensure data integrity in distributed computing environments.Mechani
8 min read
Distributed File System
What is DFS (Distributed File System)? A Distributed File System (DFS) is a file system that is distributed on multiple file servers or multiple locations. It allows programs to access or store isolated files as they do with the local ones, allowing programmers to access files from any network or computer. In this article, we will discus
8 min read
File Service Architecture in Distributed SystemFile service architecture in distributed systems manages and provides access to files across multiple servers or locations. It ensures efficient storage, retrieval, and sharing of files while maintaining consistency, availability, and reliability. By using techniques like replication, caching, and l
12 min read
File Models in Distributed SystemFile Models in Distributed Systems" explores how data organization and access methods impact efficiency across networked nodes. This article examines structured and unstructured models, their performance implications, and the importance of scalability and security in modern distributed architectures
6 min read
File Caching in Distributed File SystemsFile caching enhances I/O performance because previously read files are kept in the main memory. Because the files are available locally, the network transfer is zeroed when requests for these files are repeated. Performance improvement of the file system is based on the locality of the file access
12 min read
What is Replication in Distributed System?Replication in distributed systems involves creating duplicate copies of data or services across multiple nodes. This redundancy enhances system reliability, availability, and performance by ensuring continuous access to resources despite failures or increased demand.Replication in Distributed Syste
9 min read
What is Distributed Shared Memory and its Advantages?Distributed shared memory can be achieved via both software and hardware. Hardware examples include cache coherence circuits and network interface controllers. In contrast, software DSM systems implemented at the library or language level are not transparent and developers usually have to program th
4 min read
Consistency Model in Distributed SystemIt might be difficult to guarantee that all data copies in a distributed system stay consistent over several nodes. The guidelines for when and how data updates are displayed throughout the system are established by consistency models. Various approaches, including strict consistency or eventual con
6 min read
Distributed Algorithm
Advanced Distributed System
Flat & Nested Distributed TransactionsIntroduction : A transaction is a series of object operations that must be done in an ACID-compliant manner. Atomicity - The transaction is completed entirely or not at all.Consistency - It is a term that refers to the transition from one consistent state to another.Isolation - It is carried out sep
6 min read
Transaction Recovery in Distributed SystemIn distributed systems, ensuring the reliable recovery of transactions after failures is crucial. This article explores essential recovery techniques, including checkpointing, logging, and commit protocols, while addressing challenges in maintaining ACID properties and consistency across nodes to en
10 min read
Two Phase Commit Protocol (Distributed Transaction Management)Consider we are given with a set of grocery stores where the head of all store wants to query about the available sanitizers inventory at all stores in order to move inventory store to store to make balance over the quantity of sanitizers inventory at all stores. The task is performed by a single tr
5 min read
Scheduling and Load Balancing in Distributed SystemIn this article, we will go through the concept of scheduling and load balancing in distributed systems in detail. Scheduling in Distributed Systems:The techniques that are used for scheduling the processes in distributed systems are as follows: Task Assignment Approach: In the Task Assignment Appro
7 min read
Distributed System - Types of Distributed DeadlockA Deadlock is a situation where a set of processes are blocked because each process is holding a resource and waiting for another resource occupied by some other process. When this situation arises, it is known as Deadlock. DeadlockA Distributed System is a Network of Machines that can exchange info
4 min read
Difference between Uniform Memory Access (UMA) and Non-uniform Memory Access (NUMA)In computer architecture, and especially in Multiprocessors systems, memory access models play a critical role that determines performance, scalability, and generally, efficiency of the system. The two shared-memory models most frequently used are UMA and NUMA. This paper deals with these shared-mem
5 min read