This is the last iteration of the main server which was used for IW4x while I ran the infrastructure. I was almost done replacing the main_server with ControlX before I left, ControlX will possibly become open source at a later point if I get around to going through the code again to make sure its in a releasable state as it's a more complex software.
- dp_api at this point still required a dedicated DPMaster server to get servers from
- node_api is fully standalone and just needs some bootstrap nodes (game servers) to get started
- main_server (or later ControlX) is the central point for collecting the data from dp_api and/or node_api sources to then publish it for game clients on /v1/servers/iw4x?protocol={int}
The main reason for splitting it into these smaller shards was to protect the actual main server IP, as it could otherwise be determined from the request pattern to game servers (nodes) in the case of the node_api. dp_api was supposed to become an actual reimplementation of DPMaster and thus would also have to expose it's IP unless ran behind a more complex firewall/proxy setup. The actual main server would only expose it's IP to the *_api sources and could serve the actual server list from behind Cloudflare and a simple fallback HTTP proxy.
This configuration allowed for a more resilient central "node".