πŸ“ Volatility-Based Decomposition Diagrams

Visual reference for the VBD whitepaper by William Christopher Anderson

1. Component Roles & Communication Rules

may invoke
πŸ“‹ 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.