Channels
Every server on the network publishes to, and listens on, one Redis channel. It is set by channel in config.yml and defaults to proton:updates. All servers must use the same name, or they will not hear each other.
What travels on it
When something changes on one server, that server sends a short message on the channel and the others react.
| Change | Message | What the other servers do |
|---|---|---|
| A listing is created or sold | An update signal | They refresh that auction from the shared database, so its new state shows at once. |
| A listing ends | A remove signal | They drop that auction from their view. |
The messages are small change-signals, not the auction house itself. The shared database stays the single source of truth. When a server hears that an auction changed, it re-reads that auction from the database rather than trusting the message. Money, items and bids move through the database and the transaction engine, never over Redis.
Only real changes, once
Each server tags its own messages with a private id and ignores anything carrying that id, so a server never reacts to its own change a second time. None of this is configured, it follows from the one shared channel.
Running two separate networks against two separate databases but one Redis server? Give each network its own channel name so their signals do not cross. Servers only act on messages from their own channel.