🏗️ Architecture & Technologies
Lupin is built from the ground up for stability, sub-millisecond response times, and isolated per-guild state management.
🛠️ Technology Stack
- Runtime: Node.js v20 LTS
- Framework: Discord.js v14
- Database: PostgreSQL 16 with connection pooling and schema migrations
- Music Engine: Lavalink v4 via Riffy
- AI Security Core: Dedicated Security AI Service utilizing the custom
Security-Guard-V1model - Deployment & CI/CD: Docker Alpine, GitHub Actions, and Cloudflare Pages
🔒 Per-Guild Isolation & Persistence
Every server that Lupin joins operates in complete isolation:
- Settings, warnings, leveling cards, economy balances, and ticket logs are prefixed with unique guild namespaces (
guild:{guildId}:...). - No data leaks or collisions can occur across multiple Discord servers.
- Database failures trigger automated fallbacks so core interactions remain responsive.
⚡ Global Command Optimization
Discord imposes a hard limit of 100 global slash commands per application. Lupin organizes features using Sub-Command Trees (e.g., /ban user|unban|mass, /giveaway create|end|reroll|delete, /level set|add|remove).
This keeps Lupin's total global footprint at 70 clean slash commands, giving you maximum functionality while preserving 30 open slots for custom expansion.
