Workspaces:
- PROD-us-east-1-All-the-VPC-stuff
- NAT count = 3
- PROD-us-west-2-All-the-VPC-stuff - NAT count = 3
- PROD-us-east-1-Enterprise-Network-Tool - var instance count = 2
- PROD-us-west-2-Enterprise-Network-Tool - var instance count = 2
- STAGE-All-the-VPC-stuff (us-east-1) - NAT count = 3
- STAGE-Enterprise-Network-Tool (us-east-1) - var instance count = 1
- DEV-All-the-VPC-stuff (us-east-1) - NAT count = 0 (maybe since we don't have the network tool we're transit vpcing or something else in dev)
It's a little contrived but the idea is that normally workspaces align to these borders:- Env
- Cloud region (not always -- and the cross region ones are usually called out)
- Loosely de-coupled app border
Workspaces provide really easy "manholes" for servicing your IaC quickly when there's a mistake. They don't encourage you to manually change resources, but rather work in a smaller area and reduce blast radius. The issue I see with a lot of teams is when they're not sure how to handle cross-stack references or what they should output. I think that's an area for training and leveling up in TF.