Zotonic has an extra mechanism for starting additional things that
need to be running under the
zotonic_sup supervisor. These are
called extensions. Extensions are not tied to any particular Zotonic
site, but are regular Erlang processes, in OTP fashion.
On the startup of Zotonic, the global
$ZOTONIC/priv/extensions folder is
scanned once for folders starting with
ext_. Each of these folders
is considered an extension.
An extension (for instance,
ext_foo/ext_foo.erl) can be a regular
Erlang module, but is supposed to be something supervisable like a
gen_server. It needs to expose at least a function
start_link/0. On Zotonic startup, this function is called and the
resulting pid is added to the Zotonic supervision tree as a worker process.