Understanding dependency graph
Terraform doesn't simply build your resources and write their configuration into a state
file. Internally, it also manages a dependency graph of all the resources you have. It's hard to see with a single resource, but now we have two interconnected resources: VPC and a subnet. The latter one depends on the existence of the first one. But wait, what is a dependency graph anyway?
First of all, let's recall what a graph is. We won't go deep into mathematical formulas and advanced graph theories and examples here. Graph theory is big, and there are so many applications of it.
Though there are many definitions of a graph, which differ depending on the knowledge area and industry, the simplest description is a set of nodes and edges, where edges represent a connection between two nodes. It's easier to look at a graph than to read about one:
Here, we have two nodes connected to each other. Nothing really complicated. What is a dependency graph then? Let's steal a definition...