broadcast

open suspend override fun broadcast(payload: ByteArray)

Eager-flood to the active neighbours only. A defined no-op when the active view is empty (alone in the session, or the view has not reconciled yet), matching the Seam broadcast contract.

The no-op must not consume a per-origin seq: the flood reaches nobody, so a burned seq would be a permanent phantom gap — every future receiver would first-sight this origin mid-stream and reorder-hold (up to a full reorderGrace) everything sent after it (#1309). The check races benignly with view reconciliation: a view that empties between the check and the flood burns one seq into a gap the grace bounds, and a view that fills gains receivers for the already-stamped frame.

The payload is wrapped in a fresh origin-stamped GossipFrame so receivers can dedup and relay it across the overlay (see the class KDoc).

A Torn overlay throws IllegalStateException (state delegates to base), honouring the shared Seam send contract — a torn transport cannot deliver, so swallowing the send would hide the failure. This is distinct from the empty-view no-op below: an empty active view is a live seam with nobody to flood to yet (recoverable), whereas Torn is terminal death (#1390).