Skip to main content
Version: V2-Next

ADR 052: Model Forge emits no events — consumers pull synchronously

Date: 2026-07-15

Status: Accepted

Decision Makers: @derlinne, @luckey

Context​

The platform coordinates provisioning via events, so Model Forge's role relative to the message bus must be defined.

Decision​

Model Forge is a synchronous model store. It does not publish to a message bus. Downstream consumers (pipeline engines, the Config Adapter) obtain the DataSet manifest and its referenced artifacts by synchronous reads on the embedded Java facade (ADR 051) integrated in the portal-backend.

Rationale​

  • Model Forge owns the design-time model, not runtime orchestration. Eventing, saga coordination and provisioning are platform concerns handled outside Model Forge (in CIVITAS/CORE V2, by the Portal Backend).
  • A single source of truth (the PostgreSQL registry) plus a pull API avoids a second delivery channel that could drift from the registry.
  • Everything a consumer needs for flow translation is available by synchronous reads (manifest plus referenced artifacts), so no separate push payload is required.

Consequences​

Model Forge has no message-broker dependency, topic or producer configuration — consumers always pull synchronously.

See also​

  • Portal Backend Integration