443915 (1) [Avatar] Offline
Question 1 is "What happens when you kill the WorkerSupervisor process in Observer? Can you explain why that happened?"

When you will the Server, both the Server and the WorkerSupervisor are created again because of the :one_for_all strategy. I thought that killing the WorkerSupervisor would also use the :one_for_all strategy because both the Server and WorkerSupervisor are at the same level and being supervised by the top Supervisor. But, it didn't restart. Since the restart strategy for WorkerSupervisor didn't override the default behavior or explicitly specify :temporary, I thought it would also restart. Can someone explain why it didn't restart?
474683 (1) [Avatar] Offline
The documentation of Supervisor.Spec states:
  • :temporary - the child process is never restarted (not even when the supervisor’s strategy is :rest_for_one or :one_for_all)