Special Processes (OTP)
OTP behaviors, in the vast majority of cases, provide you with the concurrency design patterns you need in your projects. There might, however, be occasions where you want to create an OTP-compliant application while attaching processes that are not standard behaviors to your supervision tree. (…). You may want to write new behaviors after separating your code into generic and specific modules. Or you might want to do something as simple as adding pure Erlang processes to a supervision tree, making your release OTP compliant beyond the capabilities provided by supervision bridges.
We refer to a process that can be added to an OTP supervision tree and packaged in an application as a special process. (Cesarini and Vinoski 2016, 241 chap.10)