Skip to content

Terminology

The shared vocabulary used across cds-data-federation, cds-data-pipeline, and cds-data-materialization. Plugin-specific pages link back here rather than redefining these terms.

The suite in one sentence

Declare what remote or aggregated data you need with a CDS projection, declare how it should be accessed with an annotation (or register a pipeline in code), and the engine handles the runtime — live proxying, scheduled sync, delta tracking, retry, and observability.

Core engine terms

These describe cds-data-pipeline, the engine every scheduled job runs on.

TermMeaning
PipelineA linear READ → MAP → WRITE job between exactly one source and one target, with a built-in tracker, retry, concurrency guard, and event hooks.
Source / TargetThe read side (source.entity, source.query, or a custom adapter) and the write side (target.entity — a DB table, remote OData, or custom adapter).
ModeHow a run writes: delta (only changed rows since the last watermark), full (re-read everything), or partial-refresh (rebuild a slice of a query-shape target).
Delta strategyHow "changed since last run" is detected: timestamp, key, or datetime-fields. Backed by a persisted high-watermark on the tracker.
TrackerThe Pipelines and PipelineRuns entities that persist pipeline state, schedules, overrides, and run history.
Pipeline eventsPIPELINE.START, PIPELINE.READ, PIPELINE.MAP, PIPELINE.WRITE, PIPELINE.DONE — namespaced to avoid collision with CAP's CRUD aliases.

Pipeline shapes: replicate, materialize, move

The engine derives a pipeline's shape from its configuration — you never pass a kind.

ShapeReadWriteComposed by
ReplicateEntity-shape (source.entity / REST path)Row-preserving UPSERT into a DB table@federation.replicate
MaterializeQuery-shape (source.query with joins / GROUP BY)Snapshot rebuild (full / partial-refresh)@materialize.snapshot
MoveEntity-shapeForwarded to a non-DB target (message bus, HTTP, object store)programmatic only

See the pipeline inference rules for the full derivation matrix.

Federation terms

These describe cds-data-federation, the annotation layer for remote-service integration.

TermMeaning
FederationIntegrating remote service models into your data model and choosing a runtime strategy for accessing that data. Used in the broad industry sense ("make multiple sources appear as one"), not CAP's narrower usage.
DelegationLive forwarding of a query to a remote service — req => remote.run(req.query). Exposed as @federation.delegate.
ReplicationCopying remote data into the local DB on a schedule so it can be joined with local data in SQL. Exposed as @federation.replicate; composes an entity-shape pipeline.
Consumption viewA CDS projection on a remote entity (entity X as projection on remote.Y { … }) that declares the schema contract: which fields, what shape, what renames. The @federation.* annotation on it declares the runtime behavior.
Cross-service $expand / navigationTraversing associations that cross a service boundary. The plugin batch-fetches and stitches the two sides. See Cross-service scenarios.
CachingAn optional read accelerator, orthogonal to delegate vs replicate — not a third strategy. response caches exact query results (cds-caching); entity caches a full local SQLite snapshot (via the pipeline).

The consumption view IS the contract

The CDS projection declares schema (fields, shape, renames). The annotation declares runtime behavior (delegate vs replicate, optional cache, optional CUD opt-in). From this single projection the plugin infers the source service/entity, the projected columns (for $select restriction), the bidirectional rename map, and the strategy. This is the principle everything else follows from — see Consumption views.

How the terms map to CAP

cds-data uses federation as the umbrella and makes delegation and replication strategies within it. CAP's Service Integration guide treats "Data Federation" and "Delegation" as sibling concepts. The mapping:

CAP termcds-data equivalentAlignment
Delegation (req => remote.run(req.query))@federation.delegateSame behavior
Data Federation (replicate for local "close access")@federation.replicateSame mechanism
Navigation (association path traversal)Cross-service navigationAligned
Expand ($expand across services)Cross-service expandAligned
Cachingcache option (no CAP-native equivalent)Extension

cds-data-federation is a Calesi plugin for remote data services — it encapsulates outbound OData/REST/HCQL calls behind a CAP service interface. For the full CAP-alignment discussion, the @federated-vs-@federation.* comparison, and the naming rationale, see Federation → Terminology.

Materialization term

TermMeaning
SnapshotA locally-persisted aggregate rebuilt on a schedule from a group by projection. Exposed as @materialize.snapshot Experimental; composes a query-shape pipeline.

Released under the MIT License.