Server
Network
Several servers sharing one database and Redis: jobs that follow the player, a shared market and budget, and shared work orders.
There is no network switch: point ExyliaLib's database.yml of every server at the same MySQL, MariaDB, PostgreSQL or MongoDB, and enable database.redis on each with its own server-id. Then:
- Jobs follow the player. The server holding a player keeps a cross-server lock on them from join to the end of their quit write; a join anywhere waits for it (at most
handover-wait) so the last write is always read. Turnnetwork-handoveroff on a server whose jobs are not shared. - Market and budget are shared over Redis: each server sends what it added every few seconds, so the market rate and the pay factor reflect the whole network. Without Redis each server keeps its own.
- Earnings are seeded from the ledger on join (this hour and today, every server), so caps survive moving between servers.
- Work orders are shared: orders live in the database, every change takes a cross-server row lock, and other servers are told over Redis (a network without Redis converges within a minute).
- Server orders are posted by every server on its own; the maximum is per server.
- Top lists, perks and pauses come from the shared database; a pause is read again on join.
Dashboard figures such as "today" placeholders are this server only.
Something missing on this page? Tell us on Discord