Distributed System In System Design | SDE Interview

Ganesh Prasad
3 min readJan 9, 2023

Distributed systems are computer systems that consist of multiple interconnected computers that communicate with each other in order to achieve a common goal. These systems are designed to be highly scalable, fault-tolerant, and capable of handling a large number of requests concurrently.

Challenges

One of the key challenges in designing a distributed system is ensuring that the system is able to operate effectively even in the face of hardware and software failures. This is achieved through the use of various techniques such as replication, load balancing, and fault tolerance.

Architecture for distributed system

Several different architectures can be used to design a distributed system. One common architecture is the client-server architecture, in which a central server handles requests from clients and returns the results. Another common architecture is the peer-to-peer architecture, in which all nodes in the system are equal and can both send and receive requests.

One important aspect of distributed systems is the use of communication protocols to facilitate communication between the various nodes in the system. These protocols can be either synchronous, in which the sender and receiver must wait for a response before continuing, or asynchronous, in which the sender does not need to wait for a response.

Distributed systems are used in a wide range of applications, including online retail, search engines, social networks, and cloud computing. Some of the key benefits of distributed systems include increased scalability, improved reliability, and the ability to handle a large number of concurrent requests.

Here is a diagram illustrating the general architecture of a distributed system:

(suyash namdeo) Distributed systems

In this diagram, multiple client computers are connected to a network of servers, which handle the requests and return the results to the clients. The servers may also communicate with each other in order to coordinate their activities and ensure that the system is operating efficiently.

Conclusion

Overall, distributed systems are an important component of many modern computing systems and are crucial for handling the large volumes of data and requests that are common in today’s digital world.

That’s all 👍🏼.

Thanks 🤗.

Want to Hire/Connect? LinkedIn

P.S.: If you like this uninterrupted reading experience on this beautiful platform of Medium.com, consider supporting the writers of this community by signing up for a membership HERE. It only costs $5 per month and helps all the writers.

A clap would be highly appreciated if you liked what you just read. You can be generous in clapping; it shows me how much you enjoyed this story. And if you didn’t like it? Please do comment😋!

--

--

Ganesh Prasad

Backend Developer at Appscrip | C++ veteran, 💜 Dart