One of the first really challenging problems an Erlang novice must face is the classical process ring, which can be found around the Internet and most notably in “Erlang Programming” by Cesarini and Thompson (page 115).
Its formulation may vary, but the core of it requires the programmer to design and implement a closed ring of processes, to make them pass a given number of messages each other and then terminate gracefully.
I try here to give an in-depth analysis of the matter, to point out some of the most interesting issues of this exercise. I strongly suggest the Erlang novice to try and solve the exercise before looking at the solutions proposed here.
Read the post on The Digital Cat