I run a couple of Rust game servers and for a long time have used an old remote console (RCON) software to manage them. This had been a web-based software that ran on NodeJS and the previous coder had never really designed this software to be scalable and while I extended it to have many more features than it originally had, I feel as though it's reached a point where I'm unable to refactor the code enough to get reasonable performance out of this other author's code. It used things like a JSON file as a database (low DB) and it wasn't very optimal code, it would choke on rapid messages the game server would spam and overall it would take too much work to overhaul this code to be what I wanted it to be so I've started a project called GoRCON (at least that is what I call it for now) that aims to be a web app that is scalable, highly performant, and will allow me to experiment coding in a new language as well as do data modeling in Apache Cassanda. This project of mine will use Apache Cassandra as a database, RabbitMQ as middleware and Google Go as the main server side coding language.
So now that you have some of that background, I've finally hooked up the game server listening code to one of the "client coordinator" nodes that listen for messages from certain game servers the logged in client will be able to see. This project is still very much in flux and just in the beginning stages so the architecture is still in the works. You can expect this project to show up on the projects list soon enough (when I'm ready to present it) but as this project progresses I'd like to show off show of my developed architecture of the software before just slinging code around.
Yeah, for my job I'm a systems engineer yet I routinely witness developers that just go around slinging code and engineering systems without actually taking the time to develop the system architecture during the process. I'd like to (at least in my own projects I'd like to follow the correct way things should be done).
Well, I've just dipped my toes into it and this is my first time coding with message oriented middleware, but I can already see how it'll provide more performance than my previous RCON software could never come close to touching. I have it running in an unprivileged LXC container on my Proxmox VE server and its running perfectly!