architecture-pattern-selector
$
npx mdskill add alirezarezvani/claude-cto-team/architecture-pattern-selectorSelect optimal architecture patterns by analyzing scale and constraints.
- Helps CTOs choose between monolith, microservices, or serverless approaches.
- Evaluates team size, user count, and operational maturity factors.
- Matches architectural style to specific business and technical requirements.
- Delivers clear recommendations with pros, cons, and suitability criteria.
SKILL.md
.github/skills/architecture-pattern-selectorView on GitHub ↗
--- name: architecture-pattern-selector description: Recommend architecture patterns (monolith, microservices, serverless, modular monolith) based on scale, team size, and constraints. Use when cto-architect needs to select the right architectural approach for a new system or migration. --- # Architecture Pattern Selector Provides systematic framework for selecting the right architecture pattern based on real-world constraints rather than hype or resume-driven development. ## When to Use - Designing a new system from scratch - Evaluating whether to migrate from monolith to microservices - Choosing between serverless vs container-based architecture - Assessing if current architecture matches actual needs ## Architecture Patterns ### 1. Monolith **Best for**: Early-stage products, small teams, rapid iteration **Characteristics**: - Single deployable unit - Shared database - Simple deployment and debugging - Fastest time to market **Choose when**: - Team < 10 engineers - < 100K users - Product-market fit not yet proven - Need to iterate quickly on features - Limited DevOps expertise **Avoid when**: - Different components need independent scaling - Multiple teams need to deploy independently - Parts of system have very different reliability requirements ### 2. Modular Monolith **Best for**: Growing products that need structure without microservices complexity **Characteristics**: - Single deployable unit with clear module boundaries - Modules communicate through defined interfaces - Can evolve to microservices later - Best of both worlds for mid-size teams **Choose when**: - Team 10-30 engineers - 100K-1M users - Need better code organization - Want microservices benefits without operational overhead - Planning future extraction to services **Avoid when**: - Need independent deployment per module - Modules have fundamentally different scaling requirements - Already have microservices expertise and infrastructure ### 3. Microservices **Best for**: Large organizations with mature DevOps practices **Characteristics**: - Independent deployable services - Service-specific databases - Complex operational requirements - High organizational overhead **Choose when**: - Team > 30 engineers with multiple squads - > 1M users with varying load patterns - Different services need different scaling strategies - Strong DevOps/Platform team - Clear bounded contexts **Avoid when**: - Team lacks Kubernetes/container orchestration experience - No dedicated platform/DevOps team - Bounded contexts are unclear - Chasing microservices for resume value ### 4. Serverless **Best for**: Event-driven workloads, variable traffic, cost optimization **Characteristics**: - Pay-per-execution pricing - Auto-scaling to zero - Vendor lock-in concerns - Cold start latency **Choose when**: - Highly variable or spiky traffic - Event-driven processing (webhooks, queues) - Cost-sensitive with unpredictable load - Simple request-response patterns - Limited DevOps capacity **Avoid when**: - Consistent high-volume traffic (cost inefficient) - Low-latency requirements (< 100ms consistently) - Long-running processes - Complex stateful workflows ### 5. Hybrid **Best for**: Complex systems with varied requirements **Characteristics**: - Mix of patterns for different components - Monolith core with serverless functions - Microservices for specific bounded contexts **Choose when**: - Different parts of system have different characteristics - Migrating incrementally from monolith - Some components need independent scaling - Event-driven workflows alongside synchronous APIs --- ## Selection Framework ### Step 1: Assess Current State ``` Team Size: [ ] < 10 [ ] 10-30 [ ] 30-100 [ ] > 100 User Scale: [ ] < 100K [ ] 100K-1M [ ] 1M-10M [ ] > 10M DevOps Maturity: [ ] None [ ] Basic [ ] Intermediate [ ] Advanced Deployment Freq: [ ] Monthly [ ] Weekly [ ] Daily [ ] Multiple/day ``` ### Step 2: Evaluate Constraints | Constraint | Impact on Pattern Choice | |------------|-------------------------| | Time to market | Favors monolith | | Team autonomy | Favors microservices | | Cost sensitivity | Favors serverless or monolith | | Latency requirements | Disfavors serverless | | Compliance/security | May require isolation (microservices) | ### Step 3: Apply Decision Matrix See [decision-matrix.md](decision-matrix.md) for the scoring framework. ### Step 4: Consider Migration Path Every architecture should have a migration path: - Monolith → Modular Monolith → Microservices - Monolith → Hybrid (extract specific services) - Serverless → Containers (when scale justifies) --- ## Output Format When recommending an architecture pattern, provide: ```markdown ## Architecture Recommendation ### Recommended Pattern: [Pattern Name] **Confidence**: High / Medium / Low ### Why This Pattern [2-3 specific reasons based on constraints] ### Trade-offs Accepted - [Trade-off 1 and why it's acceptable] - [Trade-off 2 and why it's acceptable] ### Migration Path - **Current**: [Current state] - **Phase 1**: [Near-term architecture] - **Phase 2**: [If/when to evolve] - **Trigger**: [What would cause migration to next phase] ### Patterns Rejected | Pattern | Reason Not Selected | |---------|---------------------| | [Pattern] | [Specific reason] | ### Implementation Considerations - [Key consideration 1] - [Key consideration 2] - [Key consideration 3] ``` --- ## Anti-Patterns to Avoid ### Resume-Driven Architecture Choosing microservices because it looks good on resumes, not because the problem requires it. **Red flag**: "We should use microservices because that's what Netflix uses." **Reality check**: You're not Netflix. What's your actual scale and team size? ### Premature Distribution Distributing a system before understanding the domain boundaries. **Red flag**: "Let's start with microservices from day one." **Reality check**: You'll draw the wrong boundaries. Start monolith, extract when clear. ### Complexity Worship Equating complexity with sophistication. **Red flag**: "Our architecture needs to be enterprise-grade." **Reality check**: Simple architectures that work beat complex ones that don't. --- ## References - [Decision Matrix](decision-matrix.md) - Scoring framework for pattern selection - [Pattern Comparison](pattern-comparison.md) - Detailed comparison of patterns
More from alirezarezvani/claude-cto-team
- antipattern-detectorDetect common technical and organizational anti-patterns in proposals, architectures, and plans. Use when strategic-cto-mentor needs to identify red flags before they become problems.
- assumption-challengerIdentify and challenge implicit assumptions in plans, proposals, and technical decisions. Use when strategic-cto-mentor needs to surface hidden assumptions and wishful thinking before they become costly mistakes.
- clarification-protocolGenerate targeted clarifying questions (2-3 max) that challenge vague requirements and extract missing context. Use after request-analyzer identifies clarification needs, before routing to specialist agents. Helps cto-orchestrator avoid delegating unclear requirements.
- cost-estimatorInfrastructure and development cost estimation for technical projects. Use when planning budgets, evaluating build vs buy decisions, or projecting TCO for architecture choices.
- delegation-prompt-crafterTransform clarified user requests into structured delegation prompts optimized for specialist agents (cto-architect, strategic-cto-mentor, cv-ml-architect). Use after clarification is complete, before routing to specialist agents. Ensures agents receive complete context for effective work.
- ml-cv-specialistDeep expertise in ML/CV model selection, training pipelines, and inference architecture. Use when designing machine learning systems, computer vision pipelines, or AI-powered features.
- request-analyzerAnalyze incoming user requests to detect intent, request type (design/validate/debug/document), complexity level, and identify vague requirements or buzzwords that need clarification. Use when cto-orchestrator receives new requests that need classification before routing to specialist agents.
- roadmap-generatorGenerate phased implementation roadmaps with Epic/Story/Task breakdown, effort estimates, and validation checkpoints. Use when cto-architect needs to create actionable technical roadmaps from architecture designs.
- scalability-advisorGuidance for scaling systems from startup to enterprise scale. Use when planning for growth, diagnosing bottlenecks, or designing systems that need to handle 10x-1000x current load.
- tech-stack-recommenderRecommend technology stacks based on project requirements, team expertise, and constraints. Use when selecting frameworks, languages, databases, and infrastructure for new projects.