What we call a backend is an Erlang runtime that we're connected to via an internal Java node. This connection requires some erlIDE code to be installed and running on the Erlang side.
There are two kinds of backends: managed and standalone. Managed ones have their lifecycle controlled by erlIDE. Standalone ones use already started runtimes.
Inside erlIDE, backends are used for several purposes:
- for the IDE internals: scanning, parsing, etc. This is always a managed backend.
- for compiling code
- for running and debugging the applications