Interface ClusterEvent

All Known Implementing Classes:
ClusterEvent.EntityChanged, ClusterEvent.Notification, ClusterEvent.Presence, ClusterEvent.ProcessTasksChanged

Wire form of a cross-node notice carried by a ClusterEventBus.

It is a sealed family discriminated by kind(): each permitted variant is a distinct payload shape that shares the one bus channel without a wire break. ClusterEvent.EntityChanged mirrors su.onno.events.EntityChangedEvent; future kinds add a sibling record and a new KIND_* tag, and receivers switch on the type.

The variants are kept as plain strings with no Jackson annotations so the core module stays free of spring-context and Jackson — the ClusterEventBus implementation owns the JSON encoding, writing the kind() tag explicitly so a receiver can pick the right variant (see PostgresClusterEventBus).

originNodeId() is the id of the node that published the event. A bus delivers an event back to its own subscribers (Postgres NOTIFY echoes to the publisher's LISTEN), so receivers drop events whose origin equals their own node id: the originating node already fanned the change out to its local SSE clients synchronously.