Core Idea

Architecture characteristics (also called “-ilities”) organize into three distinct categories: Operational (how systems run), Structural (how systems are built), and Cross-Cutting (characteristics that span both runtime and design-time concerns). Understanding these categories helps architects systematically evaluate what their systems must prioritize.

The Three Categories

Operational Characteristics define how the system behaves at runtime:

  • Availability (uptime guarantees), performance (response times and throughput), scalability (handling growing load), reliability (consistency of behavior), security (protecting resources and data)
  • Typically visible to end users and stakeholders—when performance degrades or availability drops, it’s immediately noticeable
  • Drive infrastructure and deployment decisions

Structural Characteristics define how the codebase and development process work:

  • Modularity (separating concerns cleanly), maintainability (ease of changing code), testability (ability to verify behavior), deployability (frequency and ease of releasing changes)
  • Typically invisible to end users but crucial for development velocity and long-term sustainability
  • Poor structural characteristics create technical debt that compounds, making systems harder and more expensive to evolve

Cross-Cutting Characteristics span both operational and structural concerns:

  • Security affects both runtime behavior (preventing unauthorized access) and code structure (how authentication is implemented)
  • Other examples: compliance (regulatory requirements), data integrity (consistency across distributed components), localization, privacy
  • Require coordination across multiple architectural layers
  • Often become non-negotiable constraints rather than trade-offs

Why It Matters

Understanding these three categories prevents architects from overlooking critical characteristics:

  • Purely operational focus → fast, available systems impossible to maintain
  • Purely structural focus → beautifully modular code that can’t handle production load
  • Cross-cutting characteristics often represent constraints that limit the solution space—knowing they exist early prevents pursuing architectures that violate mandatory requirements

The category framework also helps with stakeholder communication:

  • Business stakeholders care most about operational characteristics (performance, availability, cost)
  • Development teams care most about structural characteristics (maintainability, testability, deployability)
  • Legal and compliance teams care most about cross-cutting characteristics (security, privacy, regulatory compliance)

Categorizing characteristics ensures all perspectives are represented in architectural decisions.

Sources

  • Richards, Mark and Neal Ford (2020). Fundamentals of Software Architecture: An Engineering Approach. O’Reilly Media. ISBN: 978-1-492-04345-4.

Note

This content was drafted with assistance from AI tools for research, organization, and initial content generation. All final content has been reviewed, fact-checked, and edited by the author to ensure accuracy and alignment with the author’s intentions and perspective.