What’s the difference between Terraform Graph and Overmind?

James Lane
June 27, 2025

Making changes to infrastructure without understanding their full impact can lead to unexpected downtime and cascading failures. This is where visualization tools become your safety net, helping you see exactly what might be affected before you pull the trigger on that `terraform apply`.

What is Terraform Graph?

The `terraform graph` command creates a visual map of your infrastructure resources and their dependencies. Think of it as a blueprint that shows how everything connects - which resources depend on others and in what order they need to be created or modified.

The output comes in DOT format, which you can then convert into actual visual diagrams using tools like GraphViz. This isn't just academic - seeing your infrastructure laid out visually can save you from making costly mistakes.

Getting Started

First, install GraphViz on your system:

brew install graphviz    # macOS
sudo apt-get install graphviz    # Ubuntu/Debian

Then generate your graph:

terraform graph [options]

The `-type` flag controls what kind of graph you get:
- `plan` (default): Shows your current configuration
- `apply`: Based on a saved execution plan
- `plan-destroy`: Shows what happens during destruction

Creating Visual Output

Raw DOT format isn't very readable, so convert it to something visual:

terraform graph | dot -Tsvg > graph.svg

You can also use online services if you don't want to install GraphViz locally:
- http://www.webgraphviz.com/
- https://dreampuf.github.io/GraphvizOnline/
- https://sketchviz.com/new

Heres an example from https://dreampuf.github.io/GraphvizOnline/.

The Reality Check

Here's where things get tricky. While `terraform graph` works great for smaller setups, real-world enterprise infrastructure tells a different story. Picture trying to read a diagram that's literally as wide as a Boeing 747's wingspan - that's what you're dealing with when your Terraform configuration grows beyond a few hundred resources.

The graph becomes an incomprehensible web of lines and boxes. Even with GraphViz's best efforts, you end up squinting at tiny text and following spaghetti-like connections that disappear off the edge of your screen.

A Different Approach

Overmind takes a completely different angle on this problem. Instead of trying to visualize everything at once, it focuses on impact analysis - showing you exactly what might be affected by your specific changes.

Here's how it works:

1. Real-time Analysis: Overmind connects to your AWS infrastructure through read-only APIs, getting a live view of your current state
2. Blast Radius Calculation: It calculates which resources might be impacted by your planned changes, including dependencies that span across accounts and services
3. Human-Readable Risks: Instead of cryptic diagrams, you get plain English explanations of potential issues

Getting Started with Overmind

Setting up Overmind is straightforward:

1. Create a free account
2. Integrate with your workflow using either:
  - GitHub Actions for automatic analysis on pull requests
  - CLI integration for any CI/CD system
  - Direct CLI usage for local development

The GitHub Action automatically parses your `terraform plan` output and creates change analysis with actionable insights.

What You Actually Get

Instead of massive, unreadable diagrams, Overmind gives you:

- Focused Impact Analysis: Only shows resources that might actually be affected
- Cross-Service Dependencies: Finds connections between resources that weren't created by Terraform
- Risk Assessment: Plain language warnings about potential issues
- Before/After Snapshots: Validation that changes happened as expected

Terraform Graph vs Overmind?

Before jumping into a comparison of the two it is worth providing some context to the application we are going to be making changes to.  It is Kubernetes cluster that manages some API gateways using AWS services such as EKS, EFS & Route53.

Let’s take a look at what this change would look like as a Terraform Graph output. Due to image dimension restrictions the below is a screenshot of a much larger Terraform Graph output.

Whereas with Overmind we get a set of risks back as a comment an a interactive graph to explore the dependencies in more detail.

And in the Overmind UI

Conclusion

In this example the output was a 3.5mb svg file or a image with the dimensions 256925px by 3802px. If you were to convert pixels to cm's it's about as it's about as wide as The Wingspan of a 747 (68 metres). Dealing with such a large file is not easy and as you can see from the above screenshot it is not easily readable.

However, Terraform graph can still be a great tool when working with smaller, more manageable changes or if you simply want something to run on CLI. But when you ultimately need to make some larger, more complex changes it is when Overmind would come in to its own. Allowing you to only see the affected resources.

Both tools are freely available:

  • Terrafrom Graph - docs here.
  • Overmind - You can sign up here.