Architecture practice
Turning architecture diagrams into shared team knowledge
A diagram becomes team knowledge when people can interpret it, challenge it, and keep it useful after the original author leaves the room.
Most teams have architecture drawings. Fewer have a dependable way to use them. A diagram may begin as a helpful explanation, then slowly lose meaning: its labels are familiar only to the author, arrows do not say what they represent, or the picture grows until every service competes for attention. The answer is not automatically a larger or more detailed map. Shared knowledge comes from making the model purposeful, legible, and connected to the conversations where the system changes.
Start by deciding what the diagram should help its audience do. A new engineer may need to find the system boundary and the main request path. A platform team may need to see ownership and dependencies. A product or leadership discussion may need the external actors and business capabilities, not every implementation detail. One picture rarely serves all these jobs equally well.
Give each view a question
Before adding a box, write a question in plain language: “What calls the billing service?” “Where does an uploaded file go?” “Which systems participate in sign-in?” The question acts as a filter. If a detail does not help answer it, leave it for another view or a note. This keeps the diagram useful without pretending that the omitted detail does not exist.
The C4 model offers a practical way to move between levels of detail: begin with the system and its surroundings, then reveal containers and components as the question requires. The tld project describes itself as inspired by C4 and supports a hierarchy of elements and views. A reader can use that hierarchy to orient first, then drill down into a more specific view rather than confronting a wall of nodes at the start.
Make the notation readable to someone else
Names should identify responsibility, not merely repeat a repository folder or team acronym. A connector label should explain the relationship: “publishes events,” “reads profile,” or “sends payment request” is more informative than an unlabeled line. Add a small legend when colors or line styles carry meaning, and use consistent terms across the diagram and surrounding documentation.
Also distinguish facts from interpretation. A line that comes from a source file or runtime configuration is different from a relationship proposed during a design discussion. If a model includes an assumption, mark it as such and give it an owner or a way to validate it. Architecture diagrams are explanatory models; they are not automatically complete merely because the editor can render them.
Put context beside the picture
A diagram rarely tells the whole story. Readers may need to know the purpose, scope, last validation approach, or reason a boundary exists. Keep a short note close to the relevant view rather than relying on an old meeting recording or a separate file no one can find.
The open-source tld project documents Markdown notes that can be previewed and edited alongside a diagram, and integration with Mermaid blocks in Markdown files. That can help teams keep explanatory text near a visual model while retaining a text-based format for portable documentation. Use notes for rationale and caveats; use the diagram for structure and relationships. Avoid turning either into a duplicate inventory that drifts independently.
Build a maintenance habit around real change
Assign a clear owner for each important view, then decide which kinds of change deserve an update. A renamed private helper usually has no architectural impact. A new external dependency, changed data path, or moved system boundary may. A lightweight review prompt can ask authors whether the change affects the maintained view, without requiring diagram edits for every code patch.
Keep history reviewable. The tld README describes local YAML synchronization, CLI operations for inspecting and updating diagram elements, connectors, and views, and Git-based comparison of revisions. These options can support a workflow in which an architecture edit is reviewed as structured change. Teams should still agree on which artifact is authoritative for a given model and avoid editing independent copies without a synchronization plan.
Prefer a small model people trust over a comprehensive model nobody maintains. Measure the usefulness of a diagram by the questions it helps the team answer, not by its element count.
Use automation as an assistant, not an authority
Codebase mapping can help surface source-grounded elements and give a team a faster starting point. The tld CLI documents an index workflow for repository mapping, and its README presents generated maps as a jump-start for diagramming. A map derived from source is still not a full architecture judgment: code relationships do not explain every deployment boundary, ownership rule, or design intent. Review names, scope, and connections with people who understand the system.
A useful team practice is to revisit a diagram during onboarding, incident review, or design review. Ask a reader who did not create it to narrate the main flow. Where they hesitate, improve the labels or add the missing context. When the system changes, update the relevant view and note what was verified. That small feedback loop turns a static drawing into a shared reference.
Architecture diagrams do not replace conversation or source code. They give a team a shared surface for asking better questions about boundaries, dependencies, and change. Keep each view focused, make assumptions visible, and place it where people already review the system. With those habits, a diagram can outlast its author and remain useful as the architecture evolves.
Learn more in the tld repository and the tlDiagram documentation.