Caching
Holding the result of an expensive read so the next one is cheap. In CAP this spans four different things people call caching — HTTP response caching, query result caching, remote service response caching, and application-level memoisation. They are not interchangeable, and picking the wrong one is the usual cause of stale-data bugs in multitenant apps.
LEFT OPEN ON PURPOSE
The core: The runtime provides in-process memoisation for the lifetime of a single application instance.
Where it stops: It stops before distributed and tenant-aware caching. On more than one replica the hit rate collapses, and nothing in the core discriminates cache keys by tenant.
Coverage is editorial and dated (2026-08-31). It is not a verdict — a core answer can still be the wrong one for your stack.
CONSTRAINED BY
Running one deployment that serves many tenants, with tenant-isolated data and per-tenant onboarding. A foundation choice rather than a feature: it narrows the options in almost every capability downstream, most sharply in caching and anything holding state in process.
YOUR OPTIONS — 2
Maintained by this atlas's curator. Facts and verification stand; the verdict is withheld under the recusal rule. A guest verdict has been requested.
Enormously adopted and unmaintained since 2020 — the signals are already split. The part they cannot show is the one that matters here: no tenant isolation and no CDS lifecycle awareness, which makes it a data-leak pattern in multitenant CAP.
TASKS IN THIS CAPABILITY
A CAP service calls a remote S/4 system whose response changes rarely but whose latency dominates the request. You want to hold the response without holding it past the point it is still true.
A read-heavy OData entity is recomputed on every request and the query is slow. You want the second request to be cheap without serving another tenant's data or going stale after a write.
WHAT TO READ — AND WHAT NOT TO
cds.env.cache.ttl— Configuration key does not exist in 9.x.srv.before('READ')— Pattern shown caches without a tenant discriminator.
GAP IN THIS CAPABILITY
Nothing credible exists for cache invalidation driven by CDS change events. Everyone hand-rolls it.
Open since 2026-02-01.