summaryrefslogtreecommitdiff
path: root/docs/architecture.md
blob: b30f98f3ea7b6d9e647d71410cf0207de12e53dc (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
36
37
38
39
40
41
42
# Nova architecture

The nova architecture is composed of multiple components. Each of them is horizontally scale-able.

```
                                            ┌──────────────────┐
                                            │                  │
                              ┌─────────────┤    Discord API   ├──────────────┐
                              │             │                  │              │
                              │             └────────┬─────────┘              │
                              │                      │                        │
                              │                      │                        │
                              │                      │                        │
                    ┌─────────┴────────┐    ┌────────┴─────────┐    ┌─────────┴────────┐
                    │                  │    │                  │    │                  │
                    │    Rest Proxy    │    │  Gateway client  │    │  Webhook Server  │
                    │                  │    │                  │    │                  │
                    └─────────┬──┬─────┘    └────────┬─────────┘    └─────────┬────────┘
                              │  │                   │                        │
                              │  │                   │                        │
                              │  │                   │                        │
                              │  │                   │                        │
                              │  │                   │                        │
                              │  │                   │                        │
                              │  └───────┐           │                        │
┌────────────────┐   ┌────────┴───────┐  │   ┌───────┴────────┐               │
│                │   │                │  │   │                ├───────────────┘
│     Redis      ├───┤    Ratelimit   │  │   │  Nats broker   │
│                │   │                │  │   │                ├──────────────────┐
└────────────────┘   └────────────────┘  │   └───────┬────────┘                  │
                                         │           │                           │
                                         │           │                           │
                                         │   ┌───────┴────────┐           ┌──────┴─────┐
                                         │   │                │           │            │
                                         │   │  Cache manager ├───────────┤    User    │
                                         │   │                │           │            │
                                         │   └────────────────┘           └──────┬─────┘
                                         └───────────────────────────────────────┘
```

## Rest Proxy