Skip to content

Inspect the signed event bus

Node events flow through the PLEXSPHERE_NODE_EVENTS JetStream stream, driven by an outbox poller whose high-water mark is the plexsphere.sse_relay_cursor Postgres row. There is no plexctl surface; use the nats CLI and psql.

Prerequisites

  • The nats CLI configured against the deployment's JetStream.
  • Read access to the plexsphere Postgres role.

Steps

Inspect the stream

shell
nats stream info PLEXSPHERE_NODE_EVENTS
nats stream view PLEXSPHERE_NODE_EVENTS --raw --count 1

Each message carries a Nats-Msg-Id header equal to the originating outbox row's UUID; JetStream uses it for dedup.

Inspect the relay cursor

sql
SELECT stream_name, last_published_seq
FROM plexsphere.sse_relay_cursor
WHERE stream_name = 'PLEXSPHERE_NODE_EVENTS';

Force a re-publish from a known point

Lower the cursor to re-emit envelopes. Nats-Msg-Id dedup makes the replay safe — envelopes already on the stream are dropped:

sql
UPDATE plexsphere.sse_relay_cursor SET last_published_seq = <seq>
WHERE stream_name = 'PLEXSPHERE_NODE_EVENTS';

Verification

shell
nats stream view PLEXSPHERE_NODE_EVENTS --count 5

The expected envelopes reappear without duplicates.

See also