See it as a diagram
Everything below, as a diagram you can edit. Describe yours and see it in seconds.
No account needed · Editable canvas, not a picture
Where AWS diagrams drift first
The drift is predictable. A second availability zone gets added and the subnets multiply. A queue is inserted between two services to absorb a spike. A Lambda is replaced by a Step Functions workflow. An account is created for a new team. A service is deployed straight from the console during an incident and never written back into code. Each change is small, none of them triggers a diagram update, and after two quarters the picture describes a system that no longer exists.
The cost lands on the people least able to detect it: a new joiner reasoning from a diagram that is three services out of date, an auditor asking about a data path that moved, an on-call engineer tracing a call that now goes through a queue nobody drew. An outdated diagram is worse than no diagram, because it is confidently wrong.
Two sources of truth, two different answers
Grounding from infrastructure code gives you the declared architecture: reviewable, versioned, environment-aware, and readable with nothing more than repository access. It is what your team intends to run, and for anything provisioned through Terraform, CloudFormation, CDK, or Pulumi it is the same thing as what runs. It does not see resources created outside the pipeline.
Grounding from a live account read gives you the observed architecture, including whatever was clicked into existence at two in the morning. The trade is access: a read-only role in every account, a scan that includes noise no diagram wants, and the ephemera of autoscaling recorded as though it were structure.
Datadef grounds in the repository. Connect GitHub, GitLab, or Azure DevOps with read-only access (public repositories need none), pick a branch or a tag, and the analysis parses the source directly. For Terraform that means every .tf and .tfvars file, with no terraform init, no state file, and no AWS credentials involved at any point.
The sync loop, and why it does not thrash
After the first generation, the project re-syncs daily and on demand, regenerating both the diagram and an architecture document from the connected branch. Three mechanisms make that survivable on a busy main branch, and they are worth knowing because they decide whether a team leaves automatic regeneration switched on.
First, a structure fingerprint. Each sync hashes what actually feeds the diagram, the parsed Terraform draw plan or the assembled corpus, into a 32-character digest. A commit that edits a README, a test, or a comment moves the commit sha and leaves the fingerprint alone, and a sync whose fingerprint has not changed skips generation entirely: no model call, no new version, nothing added to the history. On most repositories that covers the large majority of commits.
Second, node identity. Ids derive from the Terraform address, so aws_ecs_service.checkout is the same node this month and next. When the structure genuinely did change, the previous diagram is handed back to the generator as a listing of ids, labels, and zones to reuse, which is what keeps one new consumer a one-node delta instead of a fresh composition.
Third, pinned positions. A node sitting more than twelve pixels from where the last sync left it counts as hand-moved, and those coordinates survive the next regeneration while untouched nodes stay free to re-lay-out. The arrangement you made for readability accumulates instead of being reshuffled every night.
Publish once, and let every surface follow
The last place diagrams go stale is distribution. An exported image pasted into a README, a wiki page, and two decks becomes four copies aging at different rates. A live embed replaces all of them: one markdown image line renders the current diagram, and every surface that shows it follows the next sync. Readers need no account.
Agents can drive the loop too. The MCP server exposes repo_status and repo_refresh, so a session in Claude Code or Cursor can check when a project last synced and trigger a refresh after an infrastructure pull request merges, which is the moment the diagram is most likely to be wrong.
 <!-- higher resolution for a wiki page --> 
Stamp the diagram with its provenance
FAQ
How often do AWS architecture diagrams actually go stale?
Is it better to generate diagrams from code or from a live AWS account?
Does automatic regeneration mean the diagram changes every day?
How do I stop the README picture from going stale?
Can a CI pipeline or an agent trigger a refresh?