summaryrefslogtreecommitdiff
path: root/README.md
blob: c41ca7fe82f576ea39d8e6ebd1bf9f5bf3a28bf0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# Nova

[![Build](https://github.com/discordnova/Nova/actions/workflows/rust.yml/badge.svg)](https://github.com/discordnova/Nova/actions/workflows/rust.yml)

## 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



[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fdiscordnova%2Fnova.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Fdiscordnova%2Fnova?ref=badge_large)