Parties that survive a hop
A player moves from your lobby to a minigame and their party moves with them, because the platform saw them arrive. The server they landed on did not have to be told.
A party of three — move one of them
Configured for Relay: gameServer("lobby-1"), once, at startup.
Nothing attached. This server has never been told about party-7f3.
Configured for Relay: gameServer("minigame-2"), once, at startup.
Click a player to move them to the other server, then say something. The server they land on starts receiving the party — nothing on it subscribed, and nothing on the one they left unsubscribes.
Kept, or not, and you choose
A channel keeps nothing, keeps an hour, or keeps everything. Somebody reconnecting gets exactly what they missed — and a channel that keeps nothing is never billed for storage.
Reconnecting after time away
The channel keeps
You were away for
5 messages were published while you were away. Reconnect to see which of them you get.
Choose how long the channel keeps messages and how long you were gone, then reconnect.
No credential in your game client
Your server already authenticated the player, so it mints them a token: one channel, one member, and it expires. Nothing you ship to a player’s machine holds anything worth stealing.
A token a player’s machine holds — try misusing it
Channel
party-7f3Member
asterMay
Publish and Subscribe
The secret — returned from the mint and never again
rlt_9QmT4wZ2c8LxKp0vH7bN3sRfJ1yUeA6dExpires one hour after minting.Try what somebody who lifted it from a player's machine would try. It reaches one channel, as one member, with the verbs your server chose — and your API key never left the server.
Any bytes, any shape
Chat, a command, a state delta, whatever your game already serialises. Plany never looks inside a message, so a channel works the same for a game it has never seen. Beside the messages sits one object of state — who leads, which map — handed to everyone who subscribes.
One channel: messages, and state
{
"leader": "aster",
"members": [
"aster",
"bex",
"cass"
],
"phase": "lobby"
}A message is something that happened; state is what is true now. A patch merges only the keys it names, so two servers changing different things cannot lose each other's change — and anybody who subscribes late is handed the object rather than the whole conversation to replay.
One call, on every server
Nothing of yours to run
Relay is on its way.
There is nothing to sign up for yet. The rest of the platform is running today.