Architecture¶
This document provides an overview of the Kaizen Network architecture.
Network Topology¶
graph TB
subgraph Internet
Players[Players]
Bedrock[Bedrock Players]
end
subgraph Proxy["Velocity Proxy"]
Velocity[Velocity 2.7]
Geyser[Geyser]
Floodgate[Floodgate]
end
subgraph GameServers["Game Servers"]
Lobby1[Lobby-1]
Lobby2[Lobby-2]
Limbo[Limbo]
Survival[Survival Mix<br/>Terra]
Tycoon[Tycoon<br/>Astra]
Creative[Creative<br/>Illustra]
Quake[Quake]
end
subgraph Databases
MongoDB[(MongoDB)]
MariaDB[(MariaDB)]
end
subgraph External["External Services"]
Website[kaizenmc.id]
Discord[Discord Bots]
S3[S3 Backups]
end
Players --> Velocity
Bedrock --> Geyser --> Velocity
Velocity --> Lobby1
Velocity --> Lobby2
Velocity --> Limbo
Velocity --> Survival
Velocity --> Tycoon
Velocity --> Creative
Velocity --> Quake
Survival --> MongoDB
Survival --> MariaDB
Tycoon --> MongoDB
Tycoon --> MariaDB
Website --> MongoDB
Discord --> MongoDB
MongoDB --> S3
MariaDB --> S3
Server Connections¶
| Server | IP | Port | Purpose |
|---|---|---|---|
| Proxy | <proxy-ip> |
25565 | Main entry point |
| Lobby-1 | <lobby1-ip> |
<port> |
Primary hub |
| Lobby-2 | <lobby2-ip> |
<port> |
Secondary hub |
| Limbo | <limbo-ip> |
<port> |
Fallback server |
| Survival | <survival-ip> |
<port> |
Survival Mix (Terra) |
| Tycoon | <tycoon-ip> |
<port> |
Tycoon (Astra) |
| Creative | <creative-ip> |
<port> |
Creative (Illustra) |
| Quake | <quake-ip> |
<port> |
Quake minigame |
Data Flow¶
sequenceDiagram
participant P as Player
participant V as Velocity Proxy
participant G as Game Server
participant M as MongoDB
participant W as Website
P->>V: Connect (play.kaizenmc.id)
V->>G: Route to Lobby
P->>V: /server tycoon
V->>G: Route to Tycoon
G->>M: Load player data
M-->>G: Player data
Note over W,M: Website reads from MongoDB
W->>M: Fetch leaderboards
M-->>W: Leaderboard data
Key Integration Points¶
Proxy → Servers¶
- BungeeGuard forwarding for security
- LuckPerms synced across all servers
- LibertyBans network-wide bans
Servers → Databases¶
- MongoDB: Player data, custom systems (alliance, generators, etc.)
- MariaDB: Plugin data (LuckPerms, QuickShop, etc.)
Website → Servers¶
- Player API: Skript HTTP server on game servers
- Leaderboard API: Cached data via MongoDB
- Store: AutoDonate plugin via MongoDB
Discord → Servers¶
- DiscordSRV: Chat bridge
- DiSky: Skript-based Discord integration
- Bot APIs: Player lookups via HTTP