Legitimate reasons to use unlinked processes in production

This is IMO the most important reason for start_link. If you use plain start, there’s always a chance you’ll leave some dangling process behind, and that might cause various weird behaviour.

This is why a worker should sit under a supervisor even if you don’t want to restart it. Because supervisors are not just about restarting, but also about synchronized starting in the proper order, as well as proper termination and cleanup.

6 Likes