Revisiting RedisBungee

RedisBungee 0.3 was released last week, so I think it would be worth it to revisit the reason for creating RedisBungee.

Early September 2013, a very different world

The day is September 7, 2013 (corrected June 6, 2014). It's a Saturday, and you're preparing for your inevitable return to school, and SkyDoesMinecraft has posted his MinerWare video. Naturally, you want to play MinerWare. You've watched the video from start to end, and you really enjoy the crazy nonsensical action in MinerWare.

But for vemacs and I, that's likely the worst Sunday ever. We suddenly had almost a thousand players online concurrently, and it was a nightmare for vemacs and I to tend to the servers. We had only started on migrating the servers away from the horrid state we found them in and migrated to a sane setup.

Earlier, we set up a synchronization system, based on BungeeCountSync. However, it was very prone to issues and we needed a replacement. BungeeCountSync was causing somewhat elevated CPU usage. The counts would sometimes not synchronize properly. It relied on MySQL, a bad choice for a simple system like this.

Late September 2013 / October 2013, a world of difference

At this time, we were starting the "darkness" phase. The attention built around us had mostly dissipated, and we had a few clones starting popping up. But the waves were still crashing.

BungeeCountSync was proving to be a breaking point for us. This was when we decided to move to a new system. However, there was no other system out there, so this was something we had to create ourselves! I set out to find a system that would best work with this new system, and I found Redis. So I set out to work.

This was the first time I was writing plugins for BungeeCord. I had barely scratched the surface with AdvancedBungeeAnnouncer earlier, but now I had to go all-out. Eventually, however, I was able to crank out a usable initial implementation and installed it on the network. It worked very well, and after some discussion on whether or not to open-source the plugin, I committed the initial version publicly on September 29, 2013.

After some nudging by vemacs, I decided to publish the plugin to the SpigotMC resources section on October 13, 2013. The Spigot community quickly picked up on my plugin and suggested improvements. This is where RedisBungee currently stands.