Nojam and StateGraph

StateGraph keeps Terraform state in PostgreSQL as a graph instead of a file. It solves a different problem from Nojam: StateGraph removes the state-file bottleneck, and Nojam removes the credential, approval and audit bottleneck for a regulated Vault estate.

What StateGraph does better

  • Its state model is the better answer to one large state making every plan slow: conflicts are detected per resource, without a global lock, and plans cover only the part of the graph a change touches.
  • It offers transactions across states. Nojam’s rollback is compensation, not a transaction.
  • It runs Terragrunt, Pulumi and CDKTF as well. Nojam runs Terraform and OpenTofu.
  • It is open source under MPL 2.0, publishes its prices, and has customers and a community.

Where Nojam differs

  • StateGraph’s server never runs Terraform; plans and applies run in your own CI, so the apply credential lives in your CI’s secret store. Nojam gives each job its own short-lived Vault credential: read-only for plans, bound to main for applies, sealed in transit and revoked at the end.
  • StateGraph offers approval counts and CODEOWNERS. Nojam requires a signed-in session, MFA and a recent step-up for production, rechecks the approver at apply, and binds the approval to the plan’s values.
  • StateGraph keeps an attributed history with 30 or 365 days of retention. Nojam’s log is hash-chained, signed, write-once and verifiable offline.
  • Our answer to the slow state is to split it, one state per namespace, with nojam state split. It is plainer to run and keeps standard backends, but it doesn’t keep everything in one place.

Which to choose

Choose StateGraph if

Your problem is one huge state that makes every plan slow, across several tools.

Choose Nojam if

Your problem is who holds the Vault credential, whether the approval was real, and what you can show an auditor. The two can work together: a platform team could keep its state in StateGraph and run it through Nojam.

Facts about StateGraph come from its own pages, read on 7 November 2026: StateGraph, StateGraph on GitHub. If something here is out of date, write to us and we’ll correct it.

Compare them on your own Vault

A pilot runs next to your current pipeline in shadow mode, so you can compare the two on real changes.