Elixir Supervisor
https://hexdocs.pm/elixir/1.12/Supervisor.html
A supervisor is a process which supervises other processes, which we refer to as child processes. Supervisors are used to build a hierarchical process structure called a supervision tree. Supervision trees provide fault-tolerance and encapsulate how our applications start and shutdown..