Rivet – Open-Source Game Server Management with Rust & Nomad

61 points NathanFlurry

Hey all! Been lurking here for a few years now, and finally have an excuse to post something.

​

I've been working on a project called Rivet for a couple of years now, and just recently went open source:

Link to GitHub

​

We tried a lot of fun tools in building Rivet, most of which didn't stick around. I figure I'd share a handful of notes you all might find interesting:

  • Bolt is our toolchain for developing and managing super customizable Rivet clusters. It's super over-engineered, but I love it.
  • You can use the entire repo as a library. Our EE repo just uses the OSS repo as a submodule and imports the services as libraries.
  • We utilize Traefik as an edge proxy for speedy UDP, TCP+TLS, and WSS traffic handling.
  • Apache Traffic Server is underrated for its large file caching abilities. It's utilized for an edge Docker pull-through cache to reduce cold start time & use it as a CDN cache, reducing our S3 costs.
  • ClickHouse handles analytics and game server logs. It's been so straightforward; no further comments.
  • It's easier and more cost-effective to serve Docker images with Apache TS than to run a Docker pull-through cache.
  • Nebula has proven to be reliable and straightforward to manage as our overlay network.
  • For complex, atomic, in-memory operations, we use Redis Lua scripts.
  • Obviously, we're fans of Nix.
  • We maintain a basic SBOM.
  • Our licensing is under Apache 2.0 (OSI-approved), and we encourage others to run and experiment with Rivet. We often answer questions about this: Licensing Why OSS

​

Happy to answer any questions below!