Chapter 1 was about Tasks
Now working on Chapter 2
This implements a Job Control system (with retries) using a GenServer.
This builds a more complex setup for supervisor trees.
This introduces a DynamicSupervisor and then adds transitory supervisors that watch their own jobs (which can then terminate cleanly.
Here is the sample from chapter 2: https://github.com/chriseyre2000/jobber
The important detail here is the use of a Registry, which exposes the underlying ETS (Erlang Term Storage) system used.