# 📐 Volatility-Based Decomposition Diagrams

Visual reference for the VBD whitepaper by William Christopher Anderson

## 1. Component Roles & Communication Rules

📋 MANAGER
Orchestration & Intent
invokes
⚙️ ENGINE
Business Rules & Logic
may call
🔌 RESOURCE ACCESSOR
Data, Services & Infrastructure
🔧 UTILITIES
Logging, Monitoring, Security
Cross-cutting • Used by all layers

#### 📋 Managers

- MUST NOT compute
- MUST NOT share state
- MAY invoke Engines
- MAY invoke Resource Accessors
- MAY queue to Managers

#### ⚙️ Engines

- MUST NOT call Engines
- MUST NOT use queues
- MAY call Resource Accessors
- Unaware of workflow

#### 🔌 Resource Accessors

- MUST NOT call Engines
- MUST NOT call Resource Accessors
- MUST NOT use queues
- No business logic

#### 🔧 Utilities

- MUST NOT coordinate
- MUST NOT enforce policy
- Domain-agnostic
- Shared capabilities

Manager (Stable)
Engine (High Volatility)
Resource Accessor (Resources & Integration)
Utility (Cross-cutting)

## 2. Core Use Case Flow Example

Example: Order Processing Core Use Case

Order Manager
Pricing Engine
Order Resource Accessor
Logging Utility
① Request
RECEIVE
Receives order request, begins orchestration
LOG
Correlation ID assigned
② Price
INVOKE
Calls Pricing Engine
CALCULATE
Applies rules, tiers, promotions
③ Persist
INVOKE
Calls Repository
STORE
Persists order to database
④ Complete
RETURN
Returns confirmation
LOG
Completion logged

Note: Manager coordinates but never computes. Engine calculates but is unaware of workflow. Accessor persists but has no business logic. Utilities are invoked orthogonally by all layers.

## 3. The Four Volatility Axes

### 📊 Functional Volatility

Changes to system behavior driven by business needs, user feedback, or regulations.

Examples: New features, modified workflows, removed functionality, policy changes
📋 Managers ⚙️ Engines 🔌 Resource Accessors

### ⚡ Non-Functional Volatility

Changes to system qualities like performance, scalability, reliability, security.

Examples: Infrastructure upgrades, scaling requirements, SLA changes
✨ Systemic benefit of VBD

### 🔗 Cross-Cutting Volatility

Changes to concerns that span multiple components: logging, auth, monitoring.

Examples: New observability requirements, auth protocol changes, audit logging
🔧 Utilities

### 🌍 Environmental & Infrastructure Volatility

Changes to databases, external systems, vendors, deployment platforms, and third-party integrations.

Examples: Database migrations, vendor swaps, API versioning, cloud platform changes, protocol updates
🔌 Resource Accessors ✨ Systemic benefit of VBD

By aligning component boundaries with these volatility axes, changes are localized and predictable. The Manager layer remains stable because it only expresses intent—it doesn't implement volatile logic.