Looking for an existing code base to learn how to structure a large project with complex process supervision

Ejabberd’s supervisor is a good place to start! Even though it is Erlang it is still applicable. It is a good example of starting workers and other supervison trees. There is also the muc_sup in the same project.