The cds-data suite
cds-data is a set of three composable SAP CAP plugins. You usually reach for one of them by intent; the other two are either composed automatically or used standalone.
| Plugin | You reach for it when… | Surface |
|---|---|---|
| cds-data-federation | You have a remote service entity you want available in your app — live or synced. | @federation.delegate / @federation.replicate on consumption views. |
| cds-data-pipeline | You need a scheduled, traceable READ → MAP → WRITE job — from any source to any target, in code. | cds.connect.to('data-pipeline').addPipeline({ … }) + management API + Pipeline Console. |
| cds-data-materialization Experimental | You want a local aggregate snapshot from a group by projection. | @materialize.snapshot. Not yet released. |
How they compose
The pipeline is the engine. The two annotation plugins sit on top of it and generate pipeline registrations for you — you never call addPipeline yourself when you use annotations.
@federation.delegate ─── live proxy ──────────────▶ remote service (no pipeline)
@federation.replicate ─┐
├─▶ cds-data-pipeline ──▶ your database
@materialize.snapshot ─┘ (engine)@federation.replicateturns each annotated consumption view into one entity-shape pipeline (row-preserving UPSERT into a local table).@materialize.snapshotturns eachgroup byprojection into one query-shape pipeline (snapshot rebuild of an aggregate).cds-data-pipelineruns standalone too — register pipelines programmatically for any source/target the annotation layers don't cover.
Both annotation plugins declare cds-data-pipeline as a peer dependency and fail loudly at startup if it is missing.
See Architecture for the layering in detail, and Terminology for the exact meaning of federation, delegation, replication, materialization, and pipeline.
Feature highlights per plugin
cds-data-federation
- Delegate — transparent live proxy; reads forwarded to the remote, optional CUD opt-in.
- Replicate — scheduled sync into the local DB for offline access, analytics, and full SQL.
- Cross-service
$expandand navigation — stitch local and remote entities across service boundaries. - Caching — optional
responsecache (cds-caching) orentitycache (SQLite snapshot via the pipeline). - Multi-tenancy — per-tenant replication and entity cache under
@sap/cds-mtxs.
→ Federation features · Annotations
cds-data-pipeline
- Sources — OData V2/V4, HCQL, REST (with pagination + delta), CQN, and custom adapters.
- Targets — local DB (UPSERT/INSERT/truncate), remote OData, and custom adapters.
- Delta tracking —
timestamp,key, anddatetime-fieldsstrategies with a persisted high-watermark. - Scheduling — in-process (
spawn), cross-instance single-winner (queued), or external trigger. - Observability —
Pipelines/PipelineRunstracker, management OData API, and the Pipeline Console monitor UI. - Event hooks —
before/on/afterfor every phase (START → READ → MAP → WRITE → DONE).
→ Pipeline features · API reference
cds-data-materialization Experimental
@materialize.snapshotongroup byprojections — persist scheduled rollups locally.- Composes the pipeline for the query-shape run; stage remote data with
@federation.replicatefirst, then aggregate.
Common ground
- Terminology — the shared vocabulary across all three plugins.
- Architecture — the engine-vs-annotation layering and the consumption-view contract.
- CDS 10, HCQL and MCP — how the June 2026 CAP release composes with the suite.