Skip to content

Cross-Server Setup

Bazaar supports running across any number of Minecraft servers with a shared market backed by Redis. One server is the ORCHESTRATOR; the rest are PARTICIPANT nodes.

If Redis is disabled, Bazaar runs in single-server mode and everything stays local to that one server.

[client] --(Minecraft)--> [orchestrator]
\--> [participant A]
\--> [participant B]
all servers -------> Redis
orchestrator ------> dashboard HTTP/WebSocket server

Bazaar uses Redis for:

  • cross-server market event fanout
  • cross-server personal notifications
  • cross-server persistence and config reload signals
  • orchestrator discovery
  • A reachable Redis 6+ instance
  • The same Bazaar version on every server
  • Shared Impactor currency storage so balances stay consistent
  • Optional proxy messaging support through FabricProxyLite or CrossStitch if you use Velocity

In config/bazaar/config.conf:

role = "ORCHESTRATOR"
redis {
enabled = true
url = "redis://redis.internal:6379"
password = "<password>"
poolSize = 8
serverId = "main"
}
web {
enabled = true
port = 8080
jwtSecret = "<32+ random chars>"
}
role = "PARTICIPANT"
redis {
enabled = true
url = "redis://redis.internal:6379"
password = "<password>"
poolSize = 8
serverId = "survival-2"
}
web {
enabled = false
}

Every server needs its own unique redis.serverId.

ComponentOrchestratorParticipant
In-game commands (/gts, /ah, …)yesyes
Redis listeneryesyes
Dashboard HTTP/WebSocket serveryesno
Stats rollups and security scansyesno
Cross-server config broadcastsyesreceives
  • Same Bazaar version on every server
  • Same Redis connection settings on every server
  • Unique redis.serverId on every server
  • role = "ORCHESTRATOR" on exactly one server
  • Shared Impactor storage backend
  • web.jwtSecret set on the orchestrator
  • Firewall allows the dashboard ports only where intended