I’m not going to lie — I am drawn to Distributed Systems in a way that few other areas of Computer Science do. Language Theory, Type Systems etc. while are fun just don’t have the allure in my mind that Distributed Systems have.

So what are Distributed Systems? The Definition By Andrew Tanenbaum goes like this:

A Collection of independent computers that appear to it’s user as a single coherent system.

While this definition conveys the idea very effectively, I would replace the words independent computers with independent processes.

And what do I mean by processes?

Basically, any unit of…

Elixir, Erlang and other BEAM languages give you the power of full parallelism.

The core primitive that enables all of this to happen is the BIF (built-in function) provided by OTP.

For example, if you run:

parent = self
:io.format("parent pid ~p~n", [parent])
child_pid = spawn(fn ->
:io.format("child process ~p~n", [self])

:timer.sleep 5_000 # sleep for 5 seconds

:io.format("Child done ~p~n", [self])
send parent, {self, :dead}
receive do
msg -> IO.inspect msg

Here we have a parent process that is identified by the PID . The spawn a child process identified by .

The child process…

Santosh Kumar

A96B F906 823F 22CA 63B9 CBE4 7025 A470 FFBF E06F

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store