Liveness

sealed interface Liveness

The liveness state of an admitted member.

A level, and the authoritative one: Room.roster is a StateFlow, so a late subscriber reads the current value and can never miss a partition the way an events collector can (#1618 Q2). Prefer this over replaying MembershipEvents — in particular, do not key a UI on MembershipEvent.Recovered vs MembershipEvent.Resumed, which differ by role and by recovery path; the level clears on either.

Inheritors

Types

Link copied to clipboard
data object Connected : Liveness

The member's transport link is active.

Link copied to clipboard
data class Partitioned(val since: Instant, val windowExpiresAt: Instant) : Liveness

The member's transport link has dropped and its seat is held open until windowExpiresAt.