Our rule is short: CDK when everything is on AWS, Pulumi over Terraform when it isn't. Pulumi gives you real languages, real tests and an engine you can call from code, and it can use any Terraform or OpenTofu provider, so the ecosystem comes with it. What Pulumi costs, where Terraform is still the better call, and how to move.
We have built tooling on Pulumi and deploy our own AWS infrastructure with CDK. The pattern behind both choices is the same: infrastructure written in a real programming language, with types, functions, packages and tests, is easier to get right than infrastructure written in a configuration language. CDK does that for AWS. Pulumi does it for everything else.
Real languages. TypeScript, Python, Go, .NET or Java, with loops, functions, classes and your editor's type checking, instead of HCL's count, for_each and string templates.
Real tests. Unit tests with mocked resources in the same test runner as the application, and integration tests that deploy a stack and check it.
The engine is a library. Pulumi's Automation API is "a programmatic interface for running Pulumi programs without the Pulumi CLI", available in every Pulumi language. Internal platforms, per-customer environments, and deployments behind your own API become ordinary code.
The ecosystem comes with it. `pulumi package add terraform-provider <name>` turns any Terraform or OpenTofu provider into a typed SDK, so leaving Terraform doesn't mean leaving its providers.
An open licence. The engine and SDKs are Apache 2.0, where Terraform has been under the Business Source License since August 2023.
Book a free 30-minute call. You'll leave knowing what we'd do first and roughly what it costs, whether or not you hire us.
A small team can run Pulumi with state in an S3 bucket and pay nothing. Pulumi Cloud earns its price with a team: state locking and history, secrets, policy and a console, all without running anything.
The team writes HCL well and doesn't write TypeScript or Python. A tool your team is fluent in beats a better tool it fights.
A large, stable estate already in Terraform. Migrating means importing every resource and proving nothing is replaced; do it when Terraform is in the way, not for its own sake.
You depend on HCP Terraform, Sentinel policies or a HashiCorp support contract.
You want HCL without the licence question: that is OpenTofu, not Pulumi.
On AWS alone we still choose CDK. CloudFormation holds the state and rolls back failed deployments, AWS's higher-level constructs encode a lot of good defaults, and nothing else needs running or paying for. Pulumi on AWS is a perfectly good choice too; it is simply the second-best default when CDK is free and native.
Start new work in Pulumi rather than converting everything; the two can live side by side.
Read Terraform outputs from Pulumi, or Pulumi outputs from Terraform, at the seams between them.
Convert a module at a time with Pulumi's converter, then import the existing resources so nothing is recreated.
Run a preview that shows no changes before switching a module's ownership. That empty diff is the whole test.
Once a month: what changed in tech that month and what it means for you, from cloud and AI to security and the tools you build with. Every item links to its source. No sales pitch, unsubscribe in one click.
Book a free 30-minute call about it. Bring your setup and your bill; you'll leave knowing what we'd do first and roughly what it costs, whether or not you hire us.
Or keep reading
CDK vs Terraform vs OpenTofu vs Pulumi in 2026: Choosing Infrastructure as Code
Terraform is IBM's now, OpenTofu has shipped features Terraform does not have, CDK for Terraform is archived, HCP Terraform's free tier is capped at 500 resources, and AWS CDK gained Mixins. What changed, what each tool costs, and how we choose.
Read
CDK for Terraform Is Archived: Your Four Options and How to Pick
HashiCorp archived CDK for Terraform on December 10, 2025. Existing stacks still deploy, but nothing will be fixed. Export to HCL, move to Pulumi, move to AWS CDK, or adopt the community fork: the effort and risk of each.
Read
As of November 2, 2026. Provided as is, for general information, and accurate to the best of our knowledge on the date shown. Not legal, compliance, tax, financial or other professional advice. Prices, limits and vendor services change; check current vendor documentation before relying on anything here. Terms of use.