Go Admin UI - Game Backend Interfaces
Production-ready admin panels, metrics dashboards, and WebSocket event streaming for game backends.
Last Updated: 2026-03-14
Go Version: 1.22+
Stack: Go + Gorilla Mux + WebSocket + Grafana
Purpose
This example demonstrates building production-ready game backend admin interfaces with:
- Economy Monitoring - Resource faucet/sink tracking, inflation detection
- Metrics Dashboards - Real-time Grafana integration, Prometheus metrics
- WebSocket Event Streaming - Game event broadcasting, player action tracking
- Systemic Consistency - Game state validation, economy balance rules
- Accessibility Patterns - ARIA labels, keyboard navigation, screen reader support
2026 Best Practices
Economy Monitoring Patterns
| Pattern |
Use Case |
Implementation |
| Faucet Tracking |
Resource generation |
Track gold/xp sources, validate caps |
| Sink Monitoring |
Resource consumption |
Track spending, detect leaks |
| Balance Detection |
Economy health |
Ratio analysis, trend alerts |
| Inflation Alerts |
Price drift |
Moving average, threshold alerts |
| Audit Logging |
Compliance |
All transactions logged with sequence |
Grafana Integration Patterns
| Pattern |
Metric Type |
Dashboard |
| Counter |
Total events |
Event rate over time |
| Gauge |
Current state |
Player HP/MP, economy balance |
| Histogram |
Distribution |
Action completion times |
| Summary |
Aggregates |
Economy metrics by region |
WebSocket Event Streaming
// WebSocket event structure for game streaming
type GameEvent struct {
Type string `json:"type"` // "PLAYER_ACTION", "ECONOMY_UPDATE"
Payload interface{} `json:"payload"` // Event data
Sequence uint64 `json:"sequence"` // Eventual consistency
Timestamp time.Time `json:"timestamp"` // Server authority
Source string `json:"source"` // "server" for authority
}
Accessibility (A11Y) Requirements
| Requirement |
Pattern |
WCAG Level |
| ARIA Live Regions |
aria-live="polite" on updates |
AA |
| Keyboard Navigation |
Standard <form> + <button> |
A |
| Focus Management |
tabindex="-1" + HTMX focus |
AA |
| Screen Reader Labels |
aria-label on all interactive |
A |
Systemic Consistency Rulesets
ECONOMY CONSISTENCY RULES:
1. **FAUCET CAPS**
- All resource generation has hard caps
- Daily/weekly faucet limits enforced
- Inflation detection triggers alerts
2. **Sink VALIDATION**
- All consumption tracked with audit log
- Sink rate matches faucet rate (balanced economy)
- Negative sink rates rejected
3. **SERVER AUTHORITY**
- Economy state computed server-side
- Client displays only, never computes
- All mutations validated against rules
4. **EVENTUAL CONSISTENCY**
- Events streamed with sequence numbers
- Conflicts resolved via server timestamp
- WebSocket reconnects re-sync from sequence
Running the Example
cd examples/go/admin-ui
go mod init admin-ui
go get github.com/gorilla/mux
go get github.com/gorilla/websocket
go get github.com/prometheus/client_golang/prometheus
go run economy-monitor.go metrics-dashboard.go websocket-events.go
Access the admin UI at http://localhost:8080/admin
File Structure
| File |
Purpose |
Key Patterns |
economy-monitor.go |
Faucet/sink monitoring, balance detection |
Economy rules, audit logging |
metrics-dashboard.go |
Grafana/Prometheus integration |
Counter, gauge, histogram |
websocket-events.go |
Real-time game event streaming |
WebSocket, SSE, sequence |
Architecture
+------------------+ +------------------+ +------------------+
| Browser | | Go Server | | Grafana |
| (Admin UI) | | (1.22+) | | (Metrics) |
+------------------+ +------------------+ +------------------+
| | |
| GET /admin | |
|-----------------------| |
| | |
| Economy data | Query economy state |
|-----------------------|------------------------|
| | |
| WebSocket events | Push to Grafana |
|-----------------------|------------------------|
| | |
| Prometheus scrape | Expose /metrics |
|-----------------------|------------------------|
| | |
| | Prom GaugeVec |
| |------------------------|
| | |
| | Grafana Dashboard |
| |------------------------|
Guardrails Compliance
| Rule |
Implementation |
| PRODUCTION FIRST |
Economy logic before UI |
| SERVER AUTHORITY |
All economy state server-side |
| ACCESSIBILITY |
ARIA labels, keyboard nav |
| AUDIT LOGGING |
All economy transactions logged |
| RATE LIMITING |
Per-session request limits |
Related Documentation
Authored by: Claude Code (Anthropic)
Document Owner: Project Maintainers
Review Cycle: Monthly