Repository navigation
v27.5.0
Added
Tier 3 — realtime. Tier 5 — cli.
publishChannelEvent(decl, params, event)— a channel event from a job or an action.import { publishChannelEvent } from '@ultimat3/realtime/server'. TheChannelHubis thesyncrole's, so app code in a worker or a web process had no way to publish on a declared channel (the reference app'snotify-subscribersjob said so). Every role's boot now installs the process's transport (setChannelTransport), and the call publishes the hub's owneventsframe on it: in-process underx dev, across pods over NATS. With nothing booted it publishes to a heap bus nobody hears and does not throw;resetChannelTransport()is the test seam.
Fixed
Tier 5 — cli.
- A
syncnode that serves only events channels needs no replicator.X_REALTIME_TOPOLOGYrefused everysyncnode on a real database with the in-process bus and no replicator in the process, whatever it served — so an app whose only realtime was an events-only channel was asked for a replication slot and the cluster-wideREPLICATIONgrant to carry events no write-ahead log ever held. The boot now asks whether anything reads a change (alive: truequery, or a channel withrecords); when nothing does the node boots withlive=none, on either transport.
Commits
- feat(realtime): publishChannelEvent from any role; an events-only sync node needs no replicator (#748)