Events

What Events are For

Events announce that something changed.

Examples include:

  • dataset.active.changed;

  • dataset.mapping.updated;

  • selection.focus.changed;

  • artifact.created;

  • plugin-specific workflow events.

Custom plugin topics should use a plugin or workflow namespace.

Events are not Data Storage

An event should normally contain identifiers and small pieces of metadata.

{
    "dataset_id": "catalogue",
    "row_id": "source-42",
    "origin": "core.record_browser",
}

Large tables, images and model objects should be stored as datasets, artifacts or services and referenced by identifier.

Delivery

Event callbacks run synchronously. A slow callback delays later subscribers, so expensive work should be submitted as a job.

A callback exception is recorded by the EventBus and does not stop delivery to later callbacks.

Diagnostics

The EventBus records subscription metadata, active publishes, publish timings, slow callbacks and callback errors. It can also keep an optional trace of recent raw publishes when tracing is enabled.

The Event Monitor plugin reads the diagnostic information to show event health, recent publish activity, topic traffic and current subscriptions without modifying the EventBus.