The problem it solves

In classic ECC projects, years of direct table modifications, user-exits and modified standard code turned every upgrade into a high-risk project. Clean Core forbids that pattern by design: modifications only happen through released, stable APIs that SAP guarantees not to break.

The extensibility pyramid

SAP organises extension options from least to most invasive. As a rule, always pick the option lowest on this list that solves the requirement:

Released objects: the technical enforcement

Every CDS view, class or function module in S/4HANA is tagged with a release contract. The ABAP Development Tools will flag — and, in Steampunk, block — any reference to an object that isn't officially released for custom use.

ABAP CDSreleased-api-example.ddls
@API.state: #RELEASED
@API.releaseState.since: '2408'
define view entity API_CONTRACT_MANAGER
  as select from ZI_CONTRACT_MANAGER
{
  key ContractId,
      ContractManager1
}
// consuming this API is Clean Core-safe: SAP guarantees its stability

What this means day to day

Where this connects to everything else on this page: RAP is Clean Core by construction (it only reads/writes through released CDS entities), and BTP is the designated home for side-by-side extensions — Clean Core is the strategy, RAP and BTP are the tools that implement it.
SAP BTP Previous