Source
Book Review
The chapter material is based on a detailed analysis of the book on the blog
Software Architecture for Busy Developers
Authors: Stéphane Eyskens
Publisher: Packt Publishing
Length: 174 pages
ATAM for analyzing architectural trade-offs, quality attributes, cloud native approaches and API-driven architecture.
OriginalDefinition of Software Architecture
The author gives a compact definition of software architecture that is easy to remember and apply:
Software Architecture = Structural solutions + Quality Attributes + Design principles
Responsibilities of a Software Architect
1. Balance stakeholder expectations
Balancing stakeholder expectations
2. Address technical constraints
Working with technical limitations
3. Drive quality attributes
Manage system quality attributes
4. Manage technical risks
Manage technical risks
5. Ensure alignment with business goals
Ensure alignment with business goals
Related book
Fundamentals of Software Architecture
Learn more about architectural characteristics and their measurement
ATAM: Architecture Tradeoff Analysis Method
ATAM is an architectural decision analysis technique that helps systematically identify and document trade-offs. At the input of the method there are two types of system suitability:
Fit for Purpose
The system complies functional requirements and fit for purpose
Fit for Use
The system is working reliably and suitable for real use
Key idea: Trying to satisfy both needs usually requires making architectural compromises. ATAM helps you do this consciously by analyzing the impact of decisions on quality attributes systems.
ATAM Key Concepts
Sensitivity Points
Architectural decisions that influence just for one quality attribute.
Trade-off Points
Solutions where by sacrificing one attribute, we improve another.
Risks & Non-Risks
Risks - potentially problematic solutions. Non-Risks - solutions that are definitely safe.
Non-Risk: Eventual consistency for the like counter.
ATAM Scenarios and Utility Tree
For systematic analysis, ATAM uses quality scenarios And Utility Tree — hierarchical structure for prioritization.
Structure of a Quality Attribute Scenario
Example Scenario (Availability)
Source: Internal failure | Stimulus: Database primary node crashes | Artifact: Order Service | Environment: Peak load (Black Friday) | Response: Failover completes in <30 seconds, no data loss
Quality Attributes in the context of ATAM
Performance
Latency, Throughput, Resource utilization
Availability
Uptime, MTTR, Fault tolerance
Security
Confidentiality, Integrity, Authentication
Scalability
Horizontal/Vertical scaling, Elasticity
Modifiability
Extensibility, Maintainability, Cost of change
Testability
Observability, Controllability, Isolation
Related book
Building Microservices
Deep dive into microservice architecture
Evolution of architectural styles
Monolith
Easy to deploy, difficult to scale
SOA
Enterprise Service Bus, SOAP, contract approach
Microservices
Independent deployment, domain boundaries
Trade-off when choosing a style
Each transition increases operational complexity (observability, deployment, distributed transactions), but gives a gain in team independence And isolated scaling.
Related book
Cloud Native
Containers, Functions, Data - a practical guide
Cloud vs Cloud Native
The author emphasizes the difference between “being in the cloud” and “being cloud native”:
Cloud (Lift & Shift)
- VM instead of physical servers
- Same architecture, different infrastructure
- Manual scaling
- Minimal code changes
Cloud Native
- Containers, Serverless, Managed Services
- Architecture for the cloud from scratch
- Auto-scaling, self-healing
- 12-factor app principles
Impact on Quality Attributes
Cloud Native improves Scalability And Availability, but requires expertise in distributed systems and increases operational complexity.
Related case
API Gateway
Practical case of API Gateway design
API-Driven Architecture
The book highlights API Management as a key pattern of modern architecture:
Gateway Pattern
Single sign-on, routing, auth
BFF Pattern
Backend for Frontend, optimization for the client
API Versioning
Backward compatibility, deprecation
Using ATAM in System Design Interview
✓ What to use
- Sensitivity vs Trade-off points - clearly show the interviewer which decisions are isolated and which require compromise
- Quality Attribute Scenarios — formulate requirements through scenarios: “If the primary DB failover fails, it must complete in 30 seconds”
- Fit for Purpose / Fit for Use — separate functional requirements and quality attributes at the beginning of the discussion
- Risks documentation — clearly name the risks of the decisions made and ways to mitigate them
✗ Common mistakes
- Make decisions without analyzing their impact on other attributes
- Ignore trade-offs - “we’ll add a cache and everything will become faster” (and consistency?)
- Do not document the risks of decisions made
- Focus only on functional requirements, forgetting about NFR
Example of application in an interview
"Adding Redis cache is trade-off point: We improve Latency, but complicate Consistency. For this case, we choose TTL-based invalidation (sensitivity point - affects only freshness), because stale data within 5 minutes for a product catalog is non-risk."
Verdict
Advantages
- Practical approach without academic overload
- An excellent introduction to ATAM for practitioners
- Current cloud-native context
- Suitable for "busy developers"
Restrictions
- Lack of depth for senior architects
- Azure-centric examples
- Less practical exercises
Recommendation: The book is perfect first acquaintance with architectural methodologies. After that, it’s worth moving on to “Fundamentals of Software Architecture” for a deeper dive.
