When to use OTP vs 'bare' processes?

There is an undocumented :$ancestors procdict key:

iex>  Process.get(:"$ancestors")
[#PID<0.50.0>]

Whether you want to rely on that is another matter :slight_smile: If you want to be more explicit, you can pass the pid of the parent to the child from supervisor’s init/1.

I agree it’s messy, but I also think it’s fine in those rare cases where siblings are tightly coupled. For other cases, I’d use Registry to discover processes in the system. I talked about this last year at ElixirConf EU. You can find the video here. There was no Registry back then, so I used gproc as the registry, but other than that, I believe the talk is still up to date.

Not sure I understand what you mean by this.