architect
SKILL.md
System Architecture
Design scalable, maintainable system architectures.
When to Use
- Major architectural decisions
- System design discussions
- Evaluating trade-offs
- Planning large refactors
- Reviewing system structure
Design Process
- Understand - Clarify requirements and constraints
- Identify - Define components and boundaries
- Design - Create architecture with trade-offs
- Validate - Check against requirements
- Document - Record decisions and rationale
Architecture Patterns
Layered Architecture
┌─────────────────────────────┐
│ Presentation Layer │ UI, API endpoints
├─────────────────────────────┤
│ Business Layer │ Domain logic, services
├─────────────────────────────┤
│ Persistence Layer │ Repositories, DAOs
├─────────────────────────────┤
│ Data Layer │ Database, cache
└─────────────────────────────┘
Microservices
┌─────────┐ ┌─────────┐ ┌─────────┐
│ User │ │ Order │ │ Payment │
│ Service │ │ Service │ │ Service │
└────┬────┘ └────┬────┘ └────┬────┘
│ │ │
└────────────┼────────────┘
│
┌──────┴──────┐
│ Message Bus │
└─────────────┘
Event-Driven
Producer → Event Bus → Consumer(s)
│
├→ Service A
├→ Service B
└→ Analytics
Decision Framework
Trade-off Analysis
| Aspect | Option A | Option B |
|---|---|---|
| Complexity | Low | High |
| Scalability | Limited | Horizontal |
| Cost | $ | $$$ |
| Time to market | Fast | Slow |
| Maintenance | Easy | Complex |
ADR Template
# ADR-001: [Decision Title]
## Status
Accepted | Proposed | Deprecated
## Context
[Why we need to make this decision]
## Decision
[What we decided]
## Consequences
### Positive
- [Benefit 1]
### Negative
- [Trade-off 1]
### Risks
- [Risk 1]
Key Principles
- Separation of Concerns - Each component has one responsibility
- Loose Coupling - Minimize dependencies between components
- High Cohesion - Related functionality grouped together
- YAGNI - Don't build for hypothetical requirements
- Fail Fast - Detect and report errors immediately
Scalability Checklist
- Stateless services (session in Redis/DB)
- Horizontal scaling capability
- Database read replicas
- Caching layer (Redis, CDN)
- Async processing for heavy tasks
- Rate limiting and circuit breakers
Examples
Input: "Design a notification system" Action: Define channels, queue architecture, delivery guarantees, scaling strategy
Input: "Should we use microservices?" Action: Analyze team size, complexity, scaling needs, recommend with trade-offs
Weekly Installs
5
Repository
htlin222/dotfilesInstalled on
claude-code4
gemini-cli3
windsurf2
antigravity2
trae1
opencode1