.devcontainer | ||
.github/workflows | ||
docs | ||
exes | ||
libs | ||
proto/nova/ratelimit | ||
.deepsource.toml | ||
.dockerignore | ||
.gitattributes | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
docker-compose.yaml | ||
Dockerfile | ||
go.mod | ||
go.sum | ||
LICENSE | ||
README.md |
Nova
What is nova ?
Nova is a complete framework for building reliable and stable discord bots using a services based system to operate all the components needed to operate a discord such as the discord gateway, new discord webhooks for receiving interactions. Using a traditional infrastructure (sharder / process), we can quickly reach bottlenecks when we scale to multiple thousands of shards. Nova is a way to avoid these problems by building a scale-first discord framework that creates an environment that allow better testing, reliability and operations easier.
Advantages
With the help of Nova, you can achieve a number of things, such as
- Scaling of workers independent of the number of shards
- zero-login updates
- Automatic shards scaling
- Shared cache for the whole bot (without broadcastEval and other unsafe methods)
- Stateless workers, easier to test
- Distributed rest rate-limiting
- Easier fine-tuned monitoring using cloud-native technologies
- Languages agnostic apis
How did we solve this ?
Nova separates the gateway into multiple smaller components corresponding to each discord apis