In the previous articles, we have covered how to work with the processes in Elixir on a low level.
We have also covered what kind of wrappers exist around processes. That can help us to avoid writing that low-level code. Yes, I am mentioning Agents and Tasks now.
Now it’s time to get familiar with OTP and its features called GenServer and Supervisors.
Let’s dive in.
In the previous article
we have covered the basics of working with multiple processes.
In order to make it properly work we need to implement several things.
We need recursively listen to messages, we need to handle timeouts and send messages.
That looks like a lot of stuff which can lead to mistakes. To prevent that, Elixir provides us nice wrappers around processes such as Agents and Tasks.
Agents allow us to keep a state and Tasks help us to run processes in parallel.
This time we will go deeper and get familiar with the concurrent programming in Elixir.
We will meet processes. Will learn what are they, why do we need them and how to work with them.
In the previous articles, we have implemented the Toy Robot (you can find it here Part 1 and Part 2).
This time we will improve the implementation and turn it into a console application.
In that application, we will be able to run the simulator and give commands to the robot.
In the first part, we have implemented the placement, rotation and for our toy robot. The robot can also provide us the report about its position. At this part, we will proceed with the implementation. We will implement movement functionality and improve our code a little bit.