Skip to main content

actorHeartbeat

Liveness heartbeat for the authenticated user's actors in an app. Refreshes actors.updated_at for every actor row the user owns so the user stays host-eligible, then returns the freshly-elected host (same shape as the gameHost query) so a client can fold its poll and heartbeat into one round-trip. Call on an interval shorter than HOST_ACTOR_FRESHNESS_SECONDS. Only refreshes rows that already exist (created by Buddy on chunk entry); returns null when no fresh actors exist for the app.

actorHeartbeat(
appId: BigInt!
): GameHost

Arguments

actorHeartbeat.appId ● BigInt! non-null scalar

The app (game) whose actors owned by the authenticated user should be kept fresh, as a BigInt decimal string. Also the app the returned host is elected for.

Type

GameHost object

The elected host user of a game (app). Election is deterministic across all cks-game-api replicas: among actors that are still fresh (recently heartbeated), the user whose earliest actor was created first wins, with a uuid tiebreaker. Row lifecycle is owned by Buddy (cks-udp-api); liveness (updated_at) is owned by game-api's actorHeartbeat mutation.