Systematic evaluation of software architecture across scalability, maintainability, security, performance, reliability, and cost dimensions. Use when designing systems, reviewing technical approaches, evaluating patterns, making architectural decisions, or assessing technical debt.
Instalação
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Systematic evaluation of software architecture across scalability, maintainability, security, performance, reliability, and cost dimensions. Use when designing systems, reviewing technical approaches, evaluating patterns, making architectural decisions, or assessing technical debt.
Architecture Review Skill
Core Principle
Architecture serves the future. Review for change, not just current needs.
Software architecture is about making decisions that enable the system to evolve over time while meeting functional and non-functional requirements. A good architecture review doesn't just validate today's implementation—it evaluates how well the system will adapt to tomorrow's needs, scale with growth, and remain maintainable as requirements change.
Effective architecture reviews are:
Multi-dimensional (technical, business, and team considerations)
Trade-off aware (no perfect solutions, only informed choices)
Context-driven (right architecture depends on constraints)
Future-focused (optimizing for change and evolution)
When to Use
Use this skill when:
Designing new systems or major features
Evaluating technical approaches before implementation
Conducting design reviews or architecture board meetings
Assessing technical debt and planning refactoring
Making technology or pattern selection decisions
Reviewing third-party integrations or vendor solutions
Preparing for significant scaling events
Investigating production issues with architectural root causes
Onboarding to understand an existing system's design
Architecture Review Dimensions
Evaluate architecture across six critical dimensions:
1. Scalability
Definition: The system's ability to handle increased load by adding resources.
Key Questions:
Can the system scale horizontally (add more instances)?
Can it scale vertically (increase instance size)?
What are the bottlenecks at 10x, 100x, 1000x current load?
How does the system handle traffic spikes?
Are there single points of failure preventing scaling?
Scalability Patterns:
Horizontal Scaling (Scale Out):
Stateless services that can be replicated
Load balancing across multiple instances
Database read replicas for read-heavy workloads
Partitioning/sharding for write-heavy workloads
Vertical Scaling (Scale Up):
Increasing CPU, memory, or storage on existing instances
Simpler but has physical limits
Often used for databases or memory-intensive workloads
Auto-Scaling:
Dynamic resource allocation based on metrics
CPU, memory, request rate, or custom metrics
Scale-in policies to reduce costs during low traffic
Review Checklist:
Services are stateless or state is externalized
Database can scale (read replicas, sharding strategy)
Caching layer for frequently accessed data
Asynchronous processing for long-running tasks
Rate limiting to protect against overload
Connection pooling for database and external services
No hardcoded capacity limits
Performance testing validates scaling assumptions
Red Flags:
Shared mutable state across instances
Synchronous processing of batch operations
Unbounded queues or buffers
Hardcoded instance counts or capacity
No caching strategy for expensive operations
2. Maintainability
Definition: The ease with which the system can be understood, modified, tested, and extended.
Key Questions:
Can new developers understand the system quickly?
How long does it take to implement common changes?
Are components loosely coupled and highly cohesive?
Is the code testable at all levels?
Are there clear boundaries and interfaces?
Maintainability Principles:
Low Coupling:
Components depend on abstractions, not concrete implementations
Changes in one component don't cascade to others
Clear, minimal interfaces between components
High Cohesion:
Related functionality grouped together
Single Responsibility Principle at all levels
Clear purpose for each component
Testability:
Unit tests for business logic
Integration tests for component interactions
Contract tests for external interfaces
Dependency injection for test isolation
Review Checklist:
Clear separation of concerns (presentation, business logic, data)
For each dimension (scalability, maintainability, security, performance, reliability, cost):
Review current implementation
Identify strengths
Identify weaknesses and risks
Assess alignment with requirements
Document findings with severity (critical, major, minor)
Use the checklists provided in each dimension section above.
Step 4: Identify Trade-offs
Every architectural decision involves trade-offs:
Example Trade-offs:
Consistency vs Availability: Strong consistency reduces availability (CAP theorem)
Performance vs Cost: Caching improves performance but increases infrastructure costs
Flexibility vs Simplicity: Microservices offer flexibility but add operational complexity
Security vs Usability: Stricter security can impact user experience
Time to Market vs Technical Debt: Quick implementation may incur debt
Document:
Trade-offs made in current design
Whether trade-offs align with priorities
Alternative approaches and their trade-offs
Step 5: Assess Technical Debt
Identify Technical Debt:
Quick fixes or workarounds
Outdated dependencies or technology
Missing tests or documentation
Known performance issues
Security vulnerabilities
Scalability bottlenecks
Prioritize Debt:
Critical: Blocks future work or significant risk
High: Slows development or moderate risk
Medium: Manageable but should be addressed
Low: Nice to fix but not urgent
Step 6: Document Findings and Recommendations
Structure:
# Architecture Review: [System Name]## Executive Summary- Overall assessment (Green/Yellow/Red)
- Key findings
- Critical recommendations
## Review Context- System purpose
- Scope of review
- Reviewers and date
## Findings by Dimension### Scalability- Strengths: [...]
- Concerns: [...]
- Recommendations: [...]
### Maintainability
[...]
### Security
[...]
### Performance
[...]
### Reliability
[...]
### Cost
[...]
## Architecture Patterns Evaluation- Current patterns used
- Alignment with requirements
- Alternative patterns considered
## Technical Debt Assessment- High priority items
- Medium priority items
- Long-term improvements
## Risk Assessment- Critical risks
- Mitigation strategies
## Recommendations Summary1. [Priority 1 recommendation]
2. [Priority 2 recommendation]
...
## Action Items- [ ] Owner: Task description (Due date)
Step 7: Follow Up and Track Progress
After the review:
Share findings with stakeholders
Create tasks for recommendations
Schedule follow-up review if needed
Document decisions in ADRs (Architecture Decision Records)
Update architecture documentation
Common Anti-Patterns
Architecture smells to watch for:
The Big Ball of Mud
Symptom: No discernible architecture, everything tightly coupled, spaghetti code.
Impact: Difficult to maintain, test, or extend. High risk of breaking changes.
Remedy: Identify bounded contexts, refactor into modules with clear interfaces.
Premature Optimization
Symptom: Complex performance optimizations before understanding actual bottlenecks.
Impact: Increased complexity without proven benefit. Wastes development time.
Remedy: Measure first, optimize second. Focus on architectural scalability.
Analysis Paralysis
Symptom: Over-engineering for hypothetical future requirements.
Impact: Delayed delivery, unnecessary complexity, wasted effort.
Remedy: Build for current requirements plus one level of known future growth. Use evolutionary architecture.
Resume-Driven Development
Symptom: Technology choices based on trends rather than requirements.
Impact: Poor fit for problem, team unfamiliarity, unnecessary complexity.
Remedy: Choose technology based on requirements, team skills, and ecosystem maturity.
Distributed Monolith
Symptom: Microservices that are tightly coupled and must be deployed together.
Impact: Complexity of microservices without the benefits. Worst of both worlds.
Remedy: Define proper service boundaries (bounded contexts), ensure independent deployability.
God Service/Module
Symptom: Single service or module with too many responsibilities.
Impact: Difficult to understand, test, maintain. Becomes a bottleneck.
Remedy: Apply Single Responsibility Principle, split into cohesive components.
Chatty Interfaces
Symptom: Excessive fine-grained communication between services or layers.
Impact: Poor performance, high latency, network congestion.
Remedy: Coarser-grained APIs, batch operations, caching, event-driven communication.
Leaky Abstractions
Symptom: Implementation details exposed through interfaces, tight coupling to underlying technology.
Impact: Changes cascade across system, difficult to swap implementations.
Remedy: Design interfaces that hide implementation details, depend on abstractions not concretions.
Not Invented Here (NIH) Syndrome
Symptom: Building everything from scratch instead of using proven libraries/services.
Impact: Wasted effort, more bugs, maintenance burden.
Remedy: Evaluate build vs buy, leverage ecosystem, focus on core business value.
Golden Hammer
Symptom: Using the same solution for every problem regardless of fit.
Impact: Suboptimal solutions, forced fit leading to workarounds.
Remedy: Evaluate multiple approaches, choose technology based on problem characteristics.
Integration with Other Skills
Architecture review connects with several other skills:
Technical Lead Role
Architecture review is a core responsibility of technical leads. Use this skill when:
Providing technical direction for the team
Evaluating proposed designs from team members
Making technology decisions
Planning major initiatives
ADR (Architecture Decision Records)
Document significant architectural decisions from reviews:
Record the context and problem
Explain the decision made
Document alternatives considered
Capture trade-offs and consequences
Refactoring
Architecture review identifies technical debt:
Prioritize refactoring efforts based on review findings
Plan incremental improvements
Balance refactoring with feature development
Testing Strategy
Architecture impacts testing approach:
Testability is a key maintainability factor
Different patterns require different testing strategies
Review should assess test coverage and approach
Performance Optimization
Performance dimension of architecture review:
Identify architectural performance issues
Distinguish between architectural and implementation optimizations
Guide profiling and optimization efforts
Code Review
Architecture review complements code review:
Code review validates implementation of architecture
Architecture review validates the overall design
Both ensure quality at different levels
Quick Reference
Pre-Review Checklist
Understand business requirements and constraints
Review existing documentation and diagrams
Identify stakeholders and subject matter experts
Define scope of review (full system vs specific component)
Allocate sufficient time (4-8 hours for thorough review)
Assess architecture patterns alignment with requirements
Identify technical debt and prioritize
Document trade-offs made
Assess risks and mitigation strategies
Post-Review Checklist
Document findings and recommendations
Share with stakeholders
Create action items with owners and deadlines
Document decisions in ADRs
Update architecture documentation
Schedule follow-up review if needed
Red Flags Summary
Single points of failure
No monitoring or observability
Secrets in code or version control
No error handling for failures
Tight coupling between components
Over-provisioned or under-utilized resources
No scalability strategy
Missing or outdated documentation
No testing strategy
Undefined security model
Remember: Architecture is about making informed trade-offs. There is no perfect architecture—only architecture that fits the current requirements and constraints while enabling future evolution. A good architecture review identifies these trade-offs explicitly, ensures alignment with priorities, and provides a roadmap for continuous improvement.