sapatlas2026.3

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

Multitenant SaaS on BTP

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

WITHHELD
cds-cachingindependent

Maintained by this atlas's curator. Facts and verification stand; the verdict is withheld under the recusal rule. A guest verdict has been requested.

AVOID
node-cacheindependentsharpens the signals

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

Cache a remote S/4 call

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.

Cache expensive OData reads

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

USE
Best Practices — caching and performance
doc · written against 9.x · checked 2026-08-31
AVOID
PLACEHOLDER — stale caching tutorial (seed fixture, not a real post)
blog · written against 6.x · checked 2026-08-31
  • cds.env.cache.ttlConfiguration 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.