Glossary
Cross-cutting definitions used throughout the documentation. Terms are grouped by concern; within a group they read top-down from the most fundamental.
Platform & planes
- Meridian — the clinical-workflow automation platform: an empty engine plus a plugin system that contributes all clinical vocabulary and behavior.
- Engine (core) —
@meridian/engine-core: the generic interpreter, the meta type-system, and the dataflow primitives. It contains no clinical content. - SDK —
@meridian/shared: the stable contract a plugin compiles against (manifest schemas, the behavior/adapter/source contracts, the type system). - Configuration plane — the
config-planeapp: where workflows are designed, runs are monitored, agents and plugins are inspected. - Control plane — Restate: durable execution — journaling, replay, crash recovery, human-in-the-loop suspension.
- Execution plane — the engine plus the ports it drives (FHIR, LLM, …), run by the Restate endpoint.
Plugins
- Plugin — a self-contained package that contributes vocabulary and behavior
through a single
plugin.yamlmanifest. Loaded by the host; never a build-time dependency of the engine. - Manifest (
plugin.yaml) — a plugin's declaration of everything it contributes: value-sets, dimensions, types, conversions, nodes, adapters, agents, event sources and bindings. - Contribution point — one of the manifest's declarable kinds (see above).
dependsOn— a plugin's declared dependency on another plugin, used for load ordering and cross-plugin type resolution.- Registry — a version store for published plugins (a GCS bucket or a directory),
laid out
@publisher/name/<version>/…with immutable versions. - SDK range (
sdk:) — the SDK version a plugin requires; the host refuses and logs a plugin incompatible with its own SDK version.
Type system
TypeRef— the recursive description of a data shape:primitive,coded,quantity,object,ref,list, orany.- Value-set — a terminology backing a
codedvalue (an enumerated code system, or an external one resolved by a terminology port). - Dimension — a physical dimension backing a
quantityvalue (a canonical UCUM unit plus conversion factors). - Object type — a structured datatype or clinical resource, declared with typed field descriptors.
- Conversion — a declarative
From → Intorule between two types.
Workflows
- Workflow — a declarative YAML graph (
meridian/v3) of nodes wired port-to-port; the single source of truth for a process, versioned in git. - Node — a building block with typed input/output ports and a
kind(trigger, source, sink, compute, gateway, human-task, agent, transform). - Port — a typed input or output socket on a node. Also, in the hexagonal sense, a contract implemented by an adapter (see below).
- Connection — a typed edge
nodeId.outPort → nodeId.inPort. - Trigger — the entry node that turns an inbound event into the initial context and outputs.
- Context — the ambient variables a trigger establishes for a run, keyed by context kind.
- Context kind — a plugin-contributed sort of ambient context
(
contributes.contextKinds: name, id field,refentity) —@posos/commoncontributespatient,encounter,order,document. The registry is open and the core ships none. - Behavior — the JS module a node runs (its "tier C" implementation), returning outputs from inputs.
- Split-pin — wiring a single
objectport field-by-field without an intermediate node. after/done— the implicit flow ports every node exposes to sequence and join branches without carrying data.- Absence propagation — a required input left unfed skips the node, cutting the branch downstream — the model's "else".
Ports & adapters (hexagonal)
- Port (hexagonal) — a named contract behaviors depend on. The SDK types only
the ports the core calls (
agent,terminology); every business port — patient record, prescription, notification, or any plugin-defined port — is defined by its owning plugin, which augments the openPortsbundle. - Adapter — a plugin's implementation of a port (e.g. a FHIR patient record, an
LLM agent runner). Selected per instance. An adapter declaring
record: { contextKind }is the record port of that kind (SubjectRecordPort): it servesGET /api/records/:kind/:idand receives validation publications. - Instance manifest — the deployment's concrete configuration
(
meridian/instance-v1): which adapter for each port, connection config, required plugins, locale.
Events & ingestion
- Event source — a generic ingestion mechanism (polling, an HL7 socket…) that emits raw records, knowing nothing about domain events.
- Event binding — the declarative link
source + query → event + mapthat turns raw records into a domain event. MapExpr— the small grammar (dotted path, JSONPath,ref,const) that maps a raw record's fields onto an event's fields.
Execution & runs
- Run — one execution of a workflow, journaled and recoverable by Restate.
- Run index / run-store — the proxy's queryable list of runs (SQLite or Postgres); the execution truth stays in Restate.
- Human-in-the-loop (HITL) — a
human-tasknode that suspends the run until a human decision, optionally with an SLA deadline and escalation branch. - Simulation — running a workflow spec against a forged event in a sandbox, without a durable run — the editor's "▶ Simulate".
- Trace code — a structured
{code, params}engine trace, translated for display (the engine persists no display language).
Internationalisation
- Instance locale — the language of persisted content (validation titles, notifications). An instance is monolingual.
- UI locale — the viewer's display language (cookie
meridian-locale), affecting only chrome, catalog labels, and docs navigation. - Bundle (
i18n/<locale>.yaml) — a plugin's translation overlay, with keys derived from the manifest structure.