Person

Max Gruenfelder

Capabilities12

Contributes to 12
Async processingCAPAsync processingcapabilityDoing work outside the request that triggered it, with a guarantee that it eventually happens — deferred jobs, retries, and periodic work. Distinct from messaging, which is about telling other systems.CachingCAPCachingcapabilityHolding the result of an expensive read so the next one is cheap. 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.CI/CD pipelinesCAPCI/CD pipelinescapabilityA pipeline that builds, tests and delivers an application each time its source repository changes, with a build log that shows which step failed. [Deployment](capability:deployment) describes getting the build onto its target runtime.Data federationCAPData federationcapabilityReading data that lives in another system as if it were local — by federating the query, by copying the rows, or by caching what was read. Three different answers to one question, and the choice is about how stale you can afford to be.Job schedulingCAPJob schedulingcapabilityRunning something later, or on a cadence, without keeping a process alive to do it — a nightly job, a retry in an hour, a report on the first of the month — and knowing afterwards whether it ran.Local developmentCAPLocal developmentcapabilityRunning the whole stack on a laptop against real bindings — the service, the UI and the routing in front of it — without deploying to see a change.Metadata publishingCAPMetadata publishingcapabilityDescribing a service to something other than a human — service metadata for clients, and machine-readable descriptions for registries and discovery.MultitenancyCAPMultitenancycapabilityServing many tenants from one deployment — onboarding, tenant-isolated data, per-tenant schema deployment and the operational tooling around it. It is decided once, before anything is built, and narrows the artifacts in almost every capability downstream: most sharply in [caching](capability:caching) and anything else holding state in process.ODataCAPODatacapabilityExposing data and operations through OData, including the service model, metadata and protocol versions clients require. Version differences affect which clients can consume a service and which query features they can use.Rate limitingCAPRate limitingcapabilityCapping how many requests a service will accept per tenant or per caller, so one consumer cannot exhaust a shared deployment, whether enforced by a policy in front of the application or inside its own process.Schema evolutionCAPSchema evolutioncapabilityGetting a model change into a database that already holds data, in every tenant, without losing any of it. Generating the initial schema and migrating one that already holds data are often treated as the same step.TelemetryCAPTelemetrycapabilitySeeing what a running service did — traces across handlers and database calls, metrics, and correlation that survives an async boundary.

Entries7

Group by
EntrySignals
Contributes to7
@cap-js-community/commonv0.5.5
Functional boundary

Six CAP features in one package, from replication cache to rate limits

@cap-js-community/event-queuev2.3.2
Functional boundary

Transactional processing of asynchronous and periodic CAP events

@cap-js-community/mtx-toolv0.14.0
none

CLI for operating tenants of multitenant CAP applications

@cap-js-community/odata-v2-adapterv1.16.2
none

Exposes a CAP service as OData V2

@cap-js-community/sap-afc-sdkv1.1.0
none

SDK for SAP Advanced Financial Closing scheduling providers on CDS

@cap-js/telemetryv2.1.1
none

OpenTelemetry instrumentation for CAP services

cf-setup
none

GitHub Action setting up the Cloud Foundry CLI

Details

For your agent