Arbtr
Back to blog
Engineering9 min read

From Chaos to Graph: How Visual Decision Maps Prevent Drift

You can't prevent architectural drift with a list. You need a graph. Here's why relationships between decisions matter.

AM
Adam Marsh
Founder · December 30, 2025

Your architecture decisions live in a list. Maybe a folder of markdown files. Maybe a Confluence space. Maybe someone's head.

Lists don't prevent drift. Graphs do.

Here's why the relationships between decisions matter more than the decisions themselves.

Your decisions today
📄 ADR-001-database-choice.md
📄 ADR-002-auth-strategy.md
📄 ADR-003-api-versioning.md
📄 ADR-004-caching-layer.md
📄 ADR-005-messaging-queue.md

Relationships: invisible

With a graph
DBAuthAPICacheQueue

Dependencies & conflicts visible

The List Problem

Lists fail for architectural decisions in predictable ways

Hidden Dependencies

Decision A depends on Decision B. Change B, and A might break.

You only discover it when something fails

Invisible Conflicts

"Use microservices" + "minimize complexity" — these conflict.

In a list, you can't see where they clash

Unclear Impact

You want to change a decision. What else is affected?

Manual check of every other decision

Context Loss

Why did we make Decision A? Because B constrained us.

Decisions appear isolated when they're connected

What a Graph Reveals

A → B → C

Dependency Chains

Change C, and you know A and B need review

X ⚡ Y ⚡ Z

Conflict Clusters

You have a contradiction somewhere in your architecture

15 decisions → M

Foundation Nodes

This is foundational. Don't change it lightly.

Q (isolated)

Orphan Nodes

Either intentionally isolated or relationships weren't captured

The Decision Graph in Practice

Consider these decisions for an e-commerce platform

As a list: 5 independent statements
1.Use PostgreSQL for product data
2.Use Redis for shopping cart
3.Use event sourcing for orders
4.Shopping cart persists across sessions
5.Product changes don't affect existing orders
As a graph: relationships visible
Decision 4depends onDecision 2(cart persistence requires Redis durability)
Decision 5depends onDecision 3(event sourcing enables historical products)
Decision 3conflicts with"minimize operational complexity"

Now you can ask:

• "What if we change Redis to Memcached?" → Check Decision 4
• "Can we simplify the order system?" → Decision 5 depends on event sourcing
• "What's our data storage strategy?" → See nodes 1, 2, 3 cluster

Relationship Types

Different relationships have different implications

RelationshipMeaningChange Implication
Depends OnA requires BChanging B requires reviewing A
Conflicts WithA and B can't both be trueResolution needed
SupersedesA replaces BB is historical context
Related ToA is relevant context for BUseful for understanding
EnablesA makes B possibleFoundation relationship
ConstrainsA limits options for BMight need revision

Building the Graph

1

Extract decisions

Go through existing documentation, code, and conversations. Pull out decisions.

2

Initial relationships

What did this decision enable? What did it constrain? What informed it?

3

Conflict detection

Different teams, different philosophies. Standards that conflict with specific cases.

4

Hierarchy identification

Find decisions with many dependents. These are foundational—treat with extra care.

Visualization Approaches

Directed Graph

Nodes positioned by algorithm (force-directed, hierarchical)

Good for: Understanding overall structure

Domain-Clustered

Decisions grouped by domain (auth, data, API)

Good for: Team-specific views

Timeline

Decisions positioned by date, relationships as arrows

Good for: Understanding evolution

Impact View

Central node: decision you might change. Surrounding: dependents

Good for: Change assessment

Using the Graph

Before making a new decision: What existing decisions constrain options? What would this enable?

Before changing a decision: What depends on this? What would be affected? Is there a cascade?

During architecture review: Where are the dense clusters? Are there isolated decisions? Many conflicts?

For onboarding: Start with foundational nodes. Traverse outward. Follow relationship paths.

Preventing Drift

Drift happens when decisions diverge over time. Graphs help prevent it.

Visibility

When relationships are visible, violations are obvious

Impact Analysis

Before diverging, you see what would break

Pattern Detection

Clusters reveal when something's becoming inconsistent

Review Triggers

Alert dependent decision owners when foundations are at risk

Graphs require maintenance

On every new decision: What does it depend on? What does it enable or constrain?

On every changed decision: Update relationships. Notify dependent owners.

Periodically: Review orphans, conflict clusters, and dense areas.

Tooling Considerations

Manual
~50 decisions
Markdown with relationship sections, simple diagrams
Spreadsheet
~200 decisions
Decisions as rows, relationships as another sheet
Purpose-built
Any scale
Native graph storage, visual editing, query & traversal

The Graph Mindset

Thinking in graphs changes how you approach architecture

Before:
"What should we decide here?"
After:
"How does this connect to what we've already decided?"
Before:
"Let's document this decision."
After:
"Let's document this decision and its relationships."
Before:
"Our architecture is complex."
After:
"Our architecture has these specific complexity clusters."

The shift: from seeing decisions as isolated events to seeing them as nodes in a system

Starting Today

Even without fancy tooling:

For your next decision: Before documenting it as text, sketch its relationships to other decisions.
For an existing cluster: Pick 10 related decisions. Draw the relationships between them. What do you see?
For a proposed change: Before making it, map everything that depends on the decision you're changing.

Architectural decisions don't exist in isolation.
They form a graph of relationships—dependencies, conflicts, constraints.

See the graph, and you can prevent the drift.

Ready to document your decisions?

Stop letting architectural knowledge walk out the door. Start capturing decisions today with Arbtr.