Pulumi 55,992 (github.com/pulumi/pulumi (https://github.com/pulumi/pulumi 25,735 ), Apache 2.0, 3.264.0) uses real languages like the CDK 24 , but calls cloud APIs itself and, like Terraform 4,548 , keeps its own state: in a file, your S3 24 bucket, or the optional Pulumi Cloud. Its aws-native provider uses CloudFormation 24 's resource handlers through the Cloud Control API (Registry and Providers).
Crossplane 295,677 (github.com/crossplane/crossplane (https://github.com/crossplane/crossplane 12,116 ), Apache 2.0, 2.4.2, a CNCF graduated project since 28 October 2025) makes a Kubernetes 5,150 cluster the control plane. A DynamoDB 24 table becomes a Kubernetes object that a controller keeps reconciling, so a hand edit in the console is reverted, not merely reported. Platform teams publish their own APIs as compositions, such as a BookstoreDatabase kind that expands into a table and alarms, and since v2 a composition may include any Kubernetes resource.