Distributed Systems

A distributive system is a collection of multiple individual systems connected through a network sharing resources so as to achieve common goals. 

It is more likely seen in the real world as it has huge advantages over monolithic architecture making it highly scalable and at the same time with multiple systems sharing the same resource solves our SPOF problem. (Single Point Of Failure)

Distributed Systems Architecture

As seen above media, in a distributive system, nodes are geographically distributed. So what if a node crashes due to power failure? In Distributed systems, the data will not be lost as data has been shared across multiple servers. Hence redundancy/replication helps us in saving data which is very essential as a backup is already there to take over justifying SPOF. 

Example: Telecommunication Networks

Telecommunication Networks

Now let us discuss some merits and demerits of distributive systems:

Advantages of Distributed Systems

  1. Scalable: As it contains a collection of independent machines horizontal scaling can be done to achieve scalability.  
  2. Reliable: The distributed system solves SPOF while the monolithic does not because even if an individual unit fails to work rest are operational making it more efficient to work most of the time and hence reliable. 
  3. Low latency: Because of multiple servers and more likely spread to get closer to the user to resolve a query, hence takes very less time to resolve a user query. 

Disadvantages of Distributed Systems

  1. Complexity: Because of high scalability the number of network points and hardware makes the system quite complex and challenging. 
  2. Consistency: Higher number of devices makes it difficult to integrate the data as it gets complex to synchronous application states. 
  3. Network Failure:  Communication and coordination between systems in distributed systems is carried via network calls. In a network failure, conflicting information is passed or sometimes communication failure occurs leading to poor overall system performance.   

Note: Management is also a disadvantage here out because of load balancing functionality(It is a process of distributing the load to the nodes), logging, caching and monitoing is required to manage the systemto prevent failures. 

Analysis of Monolithic and Distributed Systems – Learn System Design

System analysis is the process of gathering the requirements of the system prior to the designing system in order to study the design of our system better so as to decompose the components to work efficiently so that they interact better which is very crucial for our systems.

System design is a systematic process involving phases such as planning, analysis, designing, deploying, and testing phases. Now the firstmost question would be why do analyze the system when we are well versed in the designing of systems. 

Analysis of Monolithic and Distributed Systems – Learn System Design

Similar Reads

Difference between System Design and System Analysis

Parameters System Analysis System Design Definition Process of collecting requirements(functional and non-functional) so as to prose out any business design logic. Process of portraying down business logic for new ones or updating the existing ones Time It takes lesser time than system designing.  It comparatively takes more time than system analysis.  Process It is a comparatively long and simple process. It is a comparatively short and quite complex process.  System Configurations This phase(process) requires a system with higher configurations as we can not compensate while analyzing training sets. This phase(process) can be carried out on a system with low configurations for smaller projects and even bog projects for smaller chunks. Focus In this phase, we focus only on removing errors from an existing model.   In this phase, errors will for sure come but we will handle them at last not right as they are encountering.  Bugs As studied in the above point, programmers get trained for error fixing from the complete project.  As studied in the above point, programmers here only are answerable to errors in a specific part of the structure and dimension parameters.  Screen Also, multiple screens are required for the system analysis phase.  One single big screen is enough for the system designing phase as we do not need multiple simultaneous monitoring. Programmer Knowledge Programmers possess in-depth knowledge of the specific field. Programmers possess strong knowledge of multiple wide-varied field concepts...

Types of Systems in System Analysis and Design

Now that we have understood what is System Analysis and how System Analysis is different from System Design, it is now imperitive that we analyze the types of systems in System Design. Generally, the systems can be categorised into two broad categories:...

Monolithic Systems

If all the functionalities of a project exist in a single codebase, then that application is known as a monolithic application....

Microservices

Microservices is an architectural development style in which the application is made up of smaller services that handle a small portion of the functionality and data by communicating with each other directly using lightweight protocols like HTTP. According to Sam Newman, “Microservices are the small services that work together.”...

Monolithic vs Microservices architecture

For details on how Microservice Architecture is different from Monolithic architecture, please refer Monolithic vs Microservices architecture....

Distributed Systems vs Microservices

If you are incorporating Microservices architecture or migrating from Monolithic to Microservices architecture, you cannot do all work on a single system (as it is against the modular feature of Microservices). This is where Distributed Systems were developed....

Distributed Systems

A distributive system is a collection of multiple individual systems connected through a network sharing resources so as to achieve common goals....

Race Conditions in Monolithic and Distributed Systems

Race condition is a bug that arises in systems due to timing mismatch of the execution order of multiple system services which leads to a degree of level of parallelism....