Distributed Systems

A 2-post collection

Client-Server Communication In Distributed Systems

In the previous post I've covered main concepts of Interprocess Communication (IPC). Today we will get familiar with client-server paradigm and common communication methods used for it: sockets, RPC and pipes.


Client-server concept underpins distributed systems over a couple of decades. There are two counterparts in the concept: a client and a server. In practice there are often multiple clients and single server. Clients start communication by sending requests to the server, the server handles them and usually returns responses back.

Client processes often do not live long, while server process, which is sometimes called daemon, live till OS

Read more »

Interprocess Communication Concepts

Big Data applications are distributed by nature. To understand how they tick, you need to grasp concepts that distributed applications are build on. One such concept is interprocess communication or IPC, which covers ways how processes can communicate with each other.

There are different kinds of IPC used in practice including sockets, pipes, mailslots, memory mapped files, and so on. But almost all of them are based on two concepts: shared memory and message passing.

Shared Memory

Normally operating system (OS) isolates address spaces of processes to disallow them to affect each other. The cons of the isolation is that

Read more »