Structuring Terraform for Multi-Team?

Hi everyone,

I’m setting up Terraform to deploy standardized developer VMs across 3 locations and multiple teams and I’d love to get some feedback from you.

This is my current idea:

├── location-a/

│ ├── team-alpha/ (main.tf, backend.tf, terraform.tfvars)

│ └── team-beta/ (main.tf, backend.tf, terraform.tfvars)

└── location-b/

Separate backend/state file per team folder to isolate state and limit blast radius.

Use a map variable in main.tf to iterate over and deploy identical VM specs per dev.

My main 2 questions:

Is per-team/per-location state separation the right depth, or will managing duplicate main.tf files across folders become a maintenance headache?

Would you recommend wrapping the VM logic into a shared versioned module, or using Terragrunt to keep backend configurations DRY?

Thanks for any insights or real-world patterns!