MembershipEvent

sealed interface MembershipEvent

Events emitted by Room describing changes to member membership and liveness.

All events that carry timestamps use kotlin.time.Instant sourced from the injected clock — never kotlin.time.Clock.System.now() directly.

Inheritors

Types

Link copied to clipboard
data class HostLost(val at: Instant) : MembershipEvent

The host's transport link was permanently lost (joiner perspective only).

Link copied to clipboard
data class Joined(val member: Member) : MembershipEvent

A new peer completed the admit handshake and entered the roster.

Link copied to clipboard
data class Left(val peerId: PeerId, val reason: LeaveReason) : MembershipEvent

A peer left the room (clean leave or transport disconnect after admission).

Link copied to clipboard
data class Partitioned(val peerId: PeerId, val at: Instant) : MembershipEvent

An admitted peer's transport link dropped; reconnect window may be open.

Link copied to clipboard
data class Recovered(val peerId: PeerId, val at: Instant) : MembershipEvent

A partitioned peer's link recovered before the window expired.

Link copied to clipboard
data class Resumed(val peerId: PeerId) : MembershipEvent

A partitioned joiner successfully resumed via Room.resume.

Link copied to clipboard
data class WindowOpened(val peerId: PeerId, val expiresAt: Instant) : MembershipEvent

The host opened a reconnect window for a partitioned joiner.