Part 1: Listening

Listening?

The first step towards having a distributed system is for a way to make it “listen”. Ideally, your system should be able to branch out its operations by understanding the context in which it is invoked. This includes stuff like input/invocation arguments, communicated entities, internal state, etc. We shall start with these forms of understanding before we move on to more complex means of deducing context.

Input / Invocation Arguments, and why we need active listening

I wouldn’t characterize this as “listening” per se, but rather “knowing in what context one spawns”. We shall talk about this later, when we need to handle multiple “listeners”, but for now, let’s focus on the actual listening that takes place.

Intro

I decided to start writing about a field I am pretty passionate about. I have always liked building autonomous, distributed machines that could do a lot of the grunt work that goes into our life. This means having multiple processes be able to interact with each other, handle race conditions, failures, leader election and byzantine generals, as well as the myriad of possibilities and theories that arise here.

Why?

I realized that the easiest way to learn is to teach. I never knew about the IPC commands in my work until I had to teach an intern. I never knew a lot of things until I had to get my hands dirty. So, as a way to motivate me to learn, and to motivate me to write, I decided to begin this series of posts.