Quality attributes are the non-functional characteristics that define how well a system performs its intended functions. Combined with the constraints around the system, they shape every architectural decision worth talking about.
This lesson is the working vocabulary: the named quality attributes youβll see referenced throughout the course, and the constraints that bound how far you can push them.
Performance
Definition. How efficiently the system uses resources to meet timing requirements.
β‘
Latency
Time to process a single request.
π
Throughput
Requests handled per unit of time.
βοΈ
Resource utilization
CPU, memory, network, I/O efficiency.
Common levers: caching frequently used data, async processing for long ops, connection pooling, query optimization, CDN for static assets.
Availability
Definition. Percentage of time the system is operational and serving requests.
99%
baseline
~3.65 days/yr down
99.9%
standard
~8.76 hours/yr
99.99%
critical
~52.6 minutes/yr
99.999%
carrier
~5.26 minutes/yr
Each level dramatically more expensive than the last.
High availability requires redundancy, fault detection, graceful degradation, reliable monitoring.
Scalability
Definition. Ability to handle increased load without architectural surgery.
Horizontal scaling
More machines
Best fit for stateless services. Distributes load, improves fault tolerance, gives elastic capacity.
Vertical scaling
Bigger machines
Best fit for stateful services with moderate growth. Simpler to implement, eventually hits hard limits.
Scaling problems to plan for:
π€
Data consistency
Keeping information correct across nodes during concurrent reads/writes.
π€
Session management
Preserving UX in stateless architectures behind load balancers.
π
Coordination complexity
Making multiple components and services behave coherently.
Security
Five principles cover most architecture-level security thinking:
01
Step 01
Least privilege
Grant the minimum permissions necessary.
02
Step 02
Security by design
Build it in from the start, not bolted on later.
03
Step 03
Defense in depth
Multiple independent layers of protection.
04
Step 04
Fail secure
When something goes wrong, default to safe.
05
Step 05
Zero trust
Verify everything β even inside your own network.
The architectural toolkit:
π
Authentication & Authorization
OAuth/OIDC, JWT, mTLS. RBAC or ABAC.
π‘οΈ
Input validation
Validate and sanitize all incoming data.
π
Encryption
AES-GCM at rest, TLS 1.3 in transit, properly rotated keys.
π
Audit logging
Comprehensive logs for monitoring and incident response.
Reliability
Definition. Probability the system operates correctly over a specified time period.
Tend to produce layered architectures with clear technology boundaries. Deep technical expertise; slower cross-functional features.
Product teams
Full-stack, organized by business capability
Tend to produce service-oriented architectures with full ownership. Faster feature delivery; can duplicate work between teams.
A Systems View
Quality attributes and constraints together form the foundation of all architectural decisions. The skill is understanding that they work as a system β push one and others move.
Both qualities and constraints change over time. Anticipate the changes. Design systems that can adapt their priorities and creatively work within shifting limits.
Recap
Quality attributes describe how well the system works: performance, availability, scalability, security, reliability, modifiability, testability, usability, interoperability, portability.
Each has named techniques and common levers. Knowing the vocabulary helps you have precise conversations.
Quality attributes pull against each other. Optimize for the right ones for this system.
Constraints β infrastructure, regulatory, organizational β are the context inside which architecture has to live.
Constraints arenβt obstacles; theyβre inputs to good design.
Both qualities and constraints change over time. Build systems that can re-prioritize as the business evolves.