Прочитав книгу Джо Армстронга и посмотрев скринкасты Кевина Смита, я создал простое приложение OTP, состоящее из одного gen_server и одного супервизора, объединенных вместе как приложение OTP.
Теперь я смотрю на mochiweb и создал образец проекта [helloworld], используя new_mochiweb.erl script. Просмотр исходного кода Я вижу, что он не отличается от моего примера OTP-приложения (там есть приложение OTP, супервизор) с одним ключевым отличием. Сгенерированные файлы helloworld.erl и helloworld_web.erl не реализуют поведение gen_server, они являются стандартными модулями Erlang.
У меня создалось впечатление, что использование gen_server было рекомендуемым способом при создании компонентов приложения OTP. Почему mochiweb может использовать приложения OTP и поведение супервизора, но избегать gen_server?