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
Five changes that should trigger a redraw
A new source system. This is the change that matters most, because it extends the trust boundary. Every new source is a new way for the platform to break in a way your team cannot prevent, and a diagram that omits it is actively misleading during an incident.
A new sink with a real consumer. New dashboards do not need a redraw; a new class of consumer does. A reverse sync into an operational system, a model consuming a feature table, or an external partner reading an export all change what the pipeline is for.
A layer boundary change. Moving logic from silver to gold, splitting a mart layer by domain, or introducing an intermediate layer changes the shape rather than the contents, and shape is what a diagram is for.
An orchestration or engine swap. Migrating from cron to Airflow, from Airflow to Dagster, or from stored procedures to dbt changes the units of failure, which changes what a reader needs to look at.
A schema break at a boundary. Not every schema change, only the ones that change what crosses a zone boundary. Those are the ones that invalidate the contracts written on the diagram.
Everything else, and it is the majority, does not need a redraw. A new model inside an existing layer, a renamed column, a tuned schedule. Redrawing for those is how teams learn to stop redrawing at all.
Make the redraw automatic instead of scheduled
Review cadences fail on pipelines. A quarterly documentation review catches drift a quarter late, and the person doing the review is rarely the person who made the change. The mechanism that works is generation from the source that already changed.
Connect the repository read only on GitHub, GitLab, or Azure DevOps, pick the branch or tag that represents reality, and let the sync regenerate the diagram and an architecture.md daily. Two properties make this liveable rather than noisy. The sync hashes what actually feeds the diagram and skips generation entirely when that hash has not moved, so a commit touching a README, a test, or a comment costs nothing and changes nothing. And a node counts as hand-moved once it sits more than 12 pixels from where the previous sync left it, at which point its coordinates are restored on top of the fresh layout, so a re-sync updates the picture instead of rearranging your mental map of it.
When the structure genuinely did change, the previous diagram is handed back as context: up to sixty existing nodes with their ids, labels, and zones, plus the rule that anything still present in the source keeps all three. Measured on an infrastructure repository, adding a single resource kept every existing id and label and produced exactly one new node, which is the difference between reading a delta and relearning a picture.
Then remove the copies. Every exported PNG pasted into a wiki page is a fork that will be wrong and will not know it. One live embed line renders the current diagram in a README, in Notion, or in Confluence, viewers need no account, and there is exactly one thing to keep correct. Keep PNG and JPEG export for slide decks, where a frozen snapshot with a date on it is the honest artifact.
<!-- README.md --> ## Pipeline architecture <!-- generated diagram, updates on every sync -->  Regenerated daily from the main branch.
Close the loop from the change itself
The best trigger for a redraw is the pull request that caused it. An agent working in your editor with the MCP server connected calls repo_status to see whether the synced diagram predates the branch it is looking at, and repo_refresh to regenerate it, without anyone opening a browser. Those are two of the nine outcome-level tools on the server, which also carries 27 canvas_* tools for node-level edits when the answer is a correction rather than a full refresh. That turns the diagram from something a person remembers to update into a step in the same workflow as the code change.
For teams that want a number to track, the useful metric is not how many diagrams exist or when they were last opened. It is the share of pipelines whose diagram is younger than their last structural change. That figure is computable, it goes down on its own, and it points at the specific pipelines that need attention rather than producing a general feeling of guilt.
The cultural half matters too: give each diagram an owner, the same person or team that owns the pipeline, and put the owner on the zone label. An unowned diagram is the first priority of nobody and the second priority of everybody, which is how a picture ends up two quarters behind.
One URL, many surfaces
FAQ
How often should a data pipeline diagram be updated?
Why do pipeline diagrams go stale faster than other diagrams?
How do you make a pipeline diagram update itself?
What metric shows whether pipeline documentation is trustworthy?
Should we still export images of the diagram?