StreamMachine can operate as a single process or in a master-slave configuration.
One process manages both incoming and outgoing audio. For development and small installations.
Master handles source connections and configuration. Provides the admin UI and centralizes logging from slave processes. Handles no client traffic.
Requires two ports be accessible: a master port used by the admin UI/API and slave connections, and a source port used by connecting clients.
Slave handles all client requests. Stream audio is proxied from the master over a single socket connection.
Must be able to connect to the master's master port. Requires that a port be accessible for listener connections. This will often be 80 (HTTP) from the client's perspective, but could be a high port internally to keep from having to run the slave server as a privileged user.