When is a plugin suited to your task? Your code needs to be a plugin to act upon or alter specific parts of Catalyst's request lifecycle. If your functionality needs to wrap some prepare_* or finalize_* stages, you won't get around a plugin.

Another valid target for a plugin architecture are things that really have to be globally available, like sessions or authentication.

# 実際問題として、これを満たさないプラグインが多いのは事実だとは思うのだけれど、プラグインを使うなって話ではないってことは書いておいた方がいいんじゃないかなと。