Closed
Description
Today, to start RabbitMQ, we depend on several Bourne shell scripts (for Unix-based OSes) and Batch scripts (for Microsoft Windows). They have several downsides:
- The code is duplicated between the two languages used for those scripts.
- Maintenance is obviously increased.
- Debugging what happens before the Erlang VM is launched is difficult.
- The Batch version for Windows gets less testing and may not have the same features as the Bourne shell version.
From an Erlang/OTP point of view, RabbitMQ is not a regular Erlang/OTP application because it relies on several things happening before the actual rabbit
application can be started. This complicates developers' life because RabbitMQ does not embrace Erlang/OTP system principles and a few things are reinvented internally.
We want to move most of the scripts to plain Erlang code and change RabbitMQ so it is built as a standard Erlang/OTP application.
The initial description of the problem was written down in a gist.