а какие отличительные особенности от других реализаций?
в-основном, стиль написания.
во многих фреймворках используется явная передача в middleware ручки next, спускающей запрос дальше по пайплайну и отдающей респонс для обработки мидлварью. в плаге для этого используется регистрация процессоров результата через Conn.register_before_send.
типичный для экс-рубистов абьюз макросов(см. Plug.Builder и Plug.Router), и как следствие непонятки между компайл- и рантайм инициализацией плагов.