Runtime Integration

Understand how build-time adapters and runtime cache interfaces work together.

The Deployment Adapter API is a build-time interface. It tells your platform what was built and how to route requests. Runtime behavior (request handling, streaming, caching) is handled by the Next.js server itself and by the cache interfaces cacheHandler and cacheHandlers.

Together, the adapter and cache interfaces form the complete platform integration surface:

  • Adapter (build-time): processes build outputs, configures routing, and sets up platform-specific infrastructure.
  • Cache Interfaces (runtime): cacheHandler manages ISR/server cache storage and revalidation across instances; cacheHandlers configures 'use cache' directive backends and tag coordination.

Handler Context

When invoking entrypoints, adapters pass a ctx object to the Next.js handler. Key fields include:

  • ctx.waitUntil: a function that accepts a promise. Use this to keep the serverless function alive after the response is sent, allowing background work like cache revalidation to complete.
  • requestMeta.onCacheEntryV2 (set via addRequestMeta): a callback that fires when a cache entry is generated or looked up. Use this to observe all cache operations (not just PPR) and propagate cache updates to your platform's storage backend. This callback fires on the instance that handled the request. For multi-instance deployments, your adapter should propagate updates to shared storage. See How Revalidation Works for coordination patterns.

On this page