# Contributing Guide
## Architectural overview
```mermaid
graph TB
subgraph "Minecraft Server Platforms"
SPIGOT["Spigot/Paper
(Bukkit Module)"]
BUNGEE["BungeeCord
(Proxy Module)"]
VELOCITY["Velocity
(Velocity Module)"]
end
subgraph "FastLogin Core"
CORE["FastLoginCore
Main Logic Engine"]
SESSION["LoginSession
Session Management"]
AUTH["AuthPlugin Hook
Auth Integration"]
RESOLVER["ProxyAgnosticMojangResolver
Profile Resolution"]
STORAGE["SQLStorage
Database Layer"]
ANTIBOT["AntiBotService
Rate Limiting"]
end
subgraph "Bedrock Support"
FLOODGATE["FloodgateManagement
Bedrock Players"]
GEYSER["GeyserService
Geyser Integration"]
BEDROCK["BedrockService
Base Service"]
end
subgraph "External Services"
MOJANG["Mojang API
api.mojang.com"]
SESSION_SERVER["Session Server
sessionserver.mojang.com"]
DATABASE[(SQL Database
MySQL/SQLite)]
end
subgraph "Async Processing"
SCHEDULER["AbstractAsyncScheduler
Thread Pool Management"]
end
subgraph "Messaging"
MESSAGES["ChannelMessage
Proxy Messages
(i.e. BungeeCord)"]
NAMEKEY["NamespaceKey
Message Routing"]
end
SPIGOT -->|loads| CORE
BUNGEE -->|loads| CORE
VELOCITY -->|loads| CORE
CORE -->|manages| SESSION
CORE -->|uses| AUTH
CORE -->|resolves profiles| RESOLVER
CORE -->|persists data| STORAGE
CORE -->|checks rate limits| ANTIBOT
CORE -->|handles bedrock| FLOODGATE
FLOODGATE -->|extends| BEDROCK
GEYSER -->|extends| BEDROCK
RESOLVER -->|queries| MOJANG
RESOLVER -->|verifies| SESSION_SERVER
STORAGE -->|connects to| DATABASE
CORE -->|schedules async| SCHEDULER
MESSAGES -->|uses| NAMEKEY
CORE -->|sends via| MESSAGES
AUTH -.->|delegates to| SPIGOT
AUTH -.->|delegates to| BUNGEE
ANTIBOT -->|rate limits| RESOLVER
```