Nova/docs/architecture.md
2023-01-14 17:45:48 +04:00

3.9 KiB

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