Search

Feature Matrix

Following is an index of the features covered by CAP today, with status and availability information given in the columns. In addition, we also list features, which are planned or already in development, but not yet generally available, in order to share a hint on our roadmap.

[Legend]

Tag Explanation
    generally and publicly available today
  n/a not applicable for this combination
in prog. in progress; likely to become available near-term
planned we might pick that up for development soon
contrib? not scheduled for development by us so far

Domain Modeling

  CDS
Entity-Relationship Modelling
Views / Projections
Custom Types
Associations
Annotations
Aspects
Services (w/ redirection)
Compositions of entities
Composition of types in prog.
Nested Projections planned
Calculated Fields planned
Managed m:m Associations planned
Linters as pluggable architecture planned

(Generic) Service Providers

  CDS Node.js Java
Automatically serving CRUD requests n/a
Reading/writing nested documents
Automatic Input Validation
Auto-filled primary keys
Auto-filled admin data
Serving Delta Requests planned 1
Streaming & Media Types 1,2
Automatic Change Logging in prog. in prog. in prog.
Conflict Detection via ETags
Application-level Locking planned planned planned

1 only for OData v4

2 read-only; not within $batch requests

Enterprise Features

  CDS Node.js Java
Authentication n/a
Authorization
Localization / i18n
Localized Data
Temporal Data in prog. 1
Dynamic Extensibility
Audit Logging n/a in prog. in prog.
Data Privacy — r/w access logs in prog. in prog. in prog.
Data Privacy — personal data mgmt in prog. in prog. in prog.
Data Privacy — retention mgmt in prog. in prog. in prog.

1 only for OData v4

Protocol Support1

  CDS Node.js Java
Local 2
REST in prog.
OData v2 3
OData v4
Events / Messaging in prog. in prog. in prog.
  - SAP Enterprise Messaging n/a in prog. in prog.
  - Local n/a in prog.
  - AMQP n/a in prog. in prog.
  - Kafka n/a contrib? contrib?
  - RabbitMQ n/a contrib? contrib?
GraphQL4 contrib? contrib? contrib?

1 each inbound and outbound

2 that are service-to-service calls in same server

3 with restricted liability; only after double-check with us

4 easy, but ranked low in our current backlog, based on stakeholder requests and ratings. Could be a good case for 3rd-party contribution.

API Formats

  import export
OData EDMX v2
OData EDMX v4
OpenAPI planned in prog.
AsyncAPI in prog. in prog.

This is about CDS only, that is, about translating the mentioned formats from and into CSN.

Databases

  CDS/deploy Node.js Java
SAP HANA out of the box
SQLite out of the box 1 2 3
Any SQL n/a
Pluggable Drivers Architecture in prog. in prog. in prog.
Schema Evolution for any DB planned n/a n/a

1 for dev scenarios
2 without schema evolution today
3 only in combination with usage of cds.ql Java

Note: Already today you can integrate your database of choice on a project or a contribution level. The last two are meant to further facilitate this by out-of-the-box features in CAP.

Frontends, Periphery

  CDS Node.js Java
Serving Fiori UIs
with Fiori Draft
Vue.js n/a std1 std1
React.js n/a std1 std1
Angular n/a std1 std1
Serving Analytics in prog. planned planned
Serving Search Engines in prog. planned planned
Data Extraction (e.g. to DataHub) in prog. in prog. in prog.

1 “std” means: supported on the level of common AJAX standards, for example, using jQuery or similar. Similar to Fiori, we or the community might provide more advanced support in future.

Cloud Platform Integration

  Node.js Java
Deploy to/run on Cloud Foundry
Deploy to/run on Kubernetes1 contrib? contrib?
Deploy/run Serveless planned planned
SaaS on-/off-boarding
Multi-Tenancy
Health checks
Profiling (via Dynatrace, SAP stats, …)
Resilience (retry, circuit breaking)
Caching (for example, via Redis) planned planned

1 available on plain Kubernetes level → see blog by Thomas Jung