Skip to content

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