Reward observation

the game room publishes the reward · the observer's local room forwards it as a bound push, then the observer stops

Reward observation the game room publishes the reward · the observer's local room forwards it as a bound push, then the observer stops ObserveBingoEventsReq Relay through binding Join observed RoomId Subscribed ObserveBingoEventsRes ObserveBingoEventsRes BingoRewardAcquiredEvent (publish to bingo.room.reward) BingoRewardAnnouncedNotify BingoRewardAnnouncedNotify BingoRewardAnnouncedNotify StopObservingBingoEventsReq Relay through binding Leave StopObservingBingoEventsRes StopObservingBingoEventsRes Observer · Sequence participant Observer Session · Sequence participant Session Observer Actor · Sequence participant Observer Actor Observer Room · Sequence participant Observer Room Game Room · Sequence participant Game Room

Participants and publish path

  • • Observer = Observer Client; Observer Actor/Room = Play / Observer Actor/Room; Game Room = Play / Game Room.
  • • The game room first confirms the end result, submits the player push, then publishes BingoRewardAcquiredEvent to the bingo.room.reward topic. Each Play node's local observation BingoRoom subscribes to the same topic; only a room whose event RoomId matches its own ObservedRoomId sends a typed message to the observer Actor, which notifies via bound session.

Delivery semantics

  • • The observation room doesn't participate in player membership, cards, the timer, or winner determination, and no separate reward-only Spot type is created.
  • • Normal publish completion means the source runtime started the operation — it doesn't guarantee subscriber handler execution or per-target acceptance. The Client confirms the delivery result via the BingoRewardAnnouncedNotify payload, not the publish return value.