[erlang-questions] ANN: app controller supporting a 'start_before' option

Ulf Wiger ulf@REDACTED
Wed Jan 24 09:50:13 CET 2018

Currently looking for early adopters and feedback for:


Status: first working prototype.

I occasionally run into the problem that I would like to run one of my own
applications BEFORE a third-party or OTP application, and there is
currently no good way to do that.

Typical such scenarios could be:

- to have a 'prep' application that checks various things and sets
environment variables. Currently, that may have to be done before starting
the node, but then becomes both slower and more cumbersome

- e.g. defining exometer probes that depend on certain applications that
exometer doesn't know about. Since we can't guarantee that they are running
before exometer, we have to create such probes manually in an application
that has both exometer and the other apps as dependencies.

The app_ctrl component is primarily (at the moment) a way to impose a
stricter start order than OTP can manage, e.g. by defining that `gproc`
must start before `exometer_core`.

For a few more details, see the README.md file.

I know that the question has been raised e.g. with `relx`, where people
would like it to preserve the sort order in the .rel file. But even
preserving the sort order doesn't guarantee order, since applications that
have no dependencies to each other can start in parallel.

The app_ctrl code has made some preparations for being a fully-fledged
Distributed Application Controller. This is in part a decency requirement
since it hogs app permissions and the `dist_ac` protocol. But currently, it
doesn't do all the work required for distributed app control.

Comments and contributions are most welcome!

Ulf W
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20180124/5f6f7ec1/attachment.htm>

More information about the erlang-questions mailing list