Core Idea
Architecture characteristics don’t always apply uniformly across an entire system. They have granularity—some span the whole system while others apply only to specific components or services—and understanding this scope prevents overengineering and enables targeted optimization.
The Concept
Architecture characteristics have varying levels of granularity:
- They can operate at different scopes within a system
- Not every characteristic needs to apply to every part of an application
- This fundamental insight challenges the assumption that all parts of a system must meet the same non-functional requirements
In traditional monolithic architectures, characteristics typically apply system-wide:
- If any component requires high availability, the entire monolith must support high availability
- If one module needs extreme performance, the whole application bears the cost of performance optimization
- This “one size fits all” approach often leads to overengineering—applying expensive architectural solutions universally when they’re only needed locally
The concept of granularity becomes critical when choosing between monolithic and distributed architectures:
- A distributed architecture enables different granularity by allowing each service or component to have its own characteristic profile
- One microservice might optimize for performance and scalability
- Another prioritizes security and auditability
- Yet another focuses on deployability and experimentation
This architectural decision fundamentally shapes system structure:
- Whether to treat characteristics uniformly or allow different granularities
- The Architecture-Quantum concept formalizes this: it’s the smallest independently deployable unit with its own set of characteristics
- In a monolith, the quantum is typically the entire application
- In microservices, each service is its own quantum
However, enabling characteristic granularity comes with trade-offs:
- Distributed systems introduce operational complexity, network latency, deployment orchestration challenges, and monitoring overhead
- The architectural decision isn’t “which is better?” but rather “do different parts of our system genuinely need different characteristics enough to justify distribution’s costs?”
Why This Matters
Understanding characteristic granularity prevents two common architectural mistakes:
Over-distribution:
- Adopting microservices or distributed architectures when all components actually need similar characteristics
- This adds unnecessary complexity without delivering the benefit of targeted optimization
Under-distribution:
- Forcing the entire system to meet the highest bar for every characteristic when only specific components require it
- This increases costs and slows development across the board
By explicitly analyzing which characteristics apply where:
- Architects can make informed decisions about system boundaries, deployment units, and architectural style
- This granularity-aware thinking enables “right-sizing” architecture to actual needs
- Rather than following trends or applying one-size-fits-all patterns
Related Concepts
- Architecture-Quantum — The smallest deployable unit with its own characteristics
- Monolithic-vs-Distributed-Architecture-Characteristics — How characteristic scope differs between styles
- Architecture-Characteristics-Categories — The types of characteristics that can vary in scope
- Component-Granularity — How component boundaries relate to characteristic scope
- Trade-Offs-and-Least-Worst-Architecture — How granularity decisions involve trade-offs
- Fallacies-of-Distributed-Computing — Challenges of enabling characteristic granularity through distribution
- Fundamentals of Software Architecture - Richards & Ford — Source literature note
Sources
- Richards, Mark and Neal Ford (2020). Fundamentals of Software Architecture: An Engineering Approach. O’Reilly Media. ISBN: 978-1-492-04345-4.
- Chapter 7: Scope of Architecture Characteristics
- Available: https://www.oreilly.com/library/view/fundamentals-of-software/9781492043447/
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.