architecture-paradigms
npx machina-cli add skill athola/claude-night-market/architecture-paradigms --openclawTable of Contents
- Quick Scenario Router
- 3-Step Selection Workflow
- Available Paradigm Skills
- Integration with Other Skills
- Exit Criteria
Architecture Paradigm Router
This skill helps you select the right architecture paradigm(s) for your system, then routes you to the specific paradigm skill for implementation details.
Quick Scenario Router
Match your needs to the recommended paradigm:
| Your Scenario | Primary Paradigm | Load Skill |
|---|---|---|
| Enterprise app with multiple teams | Microservices or Modular Monolith | architecture-paradigm-microservices or architecture-paradigm-modular-monolith |
| Complex business rules & testing | Functional Core, Imperative Shell | architecture-paradigm-functional-core |
| Real-time/event processing | Event-Driven Architecture | architecture-paradigm-event-driven |
| Legacy system modernization | Hexagonal (Ports & Adapters) | architecture-paradigm-hexagonal |
| Cloud-native/bursty workloads | Serverless | architecture-paradigm-serverless |
| ETL/data processing pipeline | Pipeline Architecture | architecture-paradigm-pipeline |
| Simple CRUD app | Layered Architecture | architecture-paradigm-layered |
| Command/query separation | CQRS + Event Sourcing | architecture-paradigm-cqrs-es |
3-Step Selection Workflow
Step 1: Define Your Needs
Primary Concerns (select all that apply):
- Testability: Isolate business logic →
functional-coreorhexagonal - Team Autonomy: Independent deployment →
microservicesormodular-monolith - Infrastructure Flexibility: Swap databases/frameworks →
hexagonal - Real-time Scaling: Variable loads with events →
event-drivenorspace-based - Simplicity: Maintainable without complexity →
layeredormodular-monolith - Legacy Integration: Work with existing systems →
hexagonalormicrokernel
System Context:
- Team Size:
< 5→ Layered/Functional Core |5-15→ Modular Monolith |15-50→ Microservices |50+→ Microservices/Space-Based - Domain Complexity:
Simple→ Layered |Moderate→ Hexagonal/Modular Monolith |Complex→ Functional Core/CQRS |Highly Complex→ Microservices/Event-Driven
Step 2: Evaluate Paradigms
Based on your needs from Step 1, review these options:
For Testability & Business Logic
- Load
architecture-paradigm-functional-core- Isolates business logic from infrastructure - Load
architecture-paradigm-hexagonal- Clear domain/infrastructure boundaries
For Team Autonomy
- Load
architecture-paradigm-microservices- Independent deployment and scaling - Load
architecture-paradigm-modular-monolith- Team autonomy without distributed complexity
For Infrastructure Flexibility
- Load
architecture-paradigm-hexagonal- Swap infrastructure without domain changes
For Simplicity & Maintainability
- Load
architecture-paradigm-layered- Simple, well-understood separation
For Real-time Event Processing
- Load
architecture-paradigm-event-driven- Scalable, decoupled processing - Load
architecture-paradigm-space-based- In-memory data grids for linear scalability
For Legacy Integration
- Load
architecture-paradigm-microkernel- Plugin architecture for extensible platforms - Load
architecture-paradigm-hexagonal- Adapters for external systems
Step 3: Load Paradigm Skill for Implementation
Once you've selected your paradigm(s), load the specific skill for detailed guidance:
# Example: You selected Hexagonal Architecture
Skill(archetypes:architecture-paradigm-hexagonal)
The individual paradigm skill provides:
- ✅ Complete implementation guide
- ✅ ADR templates
- ✅ Migration checklist
- ✅ Code examples
- ✅ Testing strategies
- ✅ Risk assessments
Available Paradigm Skills
| Paradigm | Complexity | Team Size | Best For | Skill Name |
|---|---|---|---|---|
| Functional Core | Medium | Small-Large | Complex business logic | architecture-paradigm-functional-core |
| Hexagonal | Medium | Small-Large | Infrastructure changes | architecture-paradigm-hexagonal |
| Layered | Low | Small-Medium | Simple domains | architecture-paradigm-layered |
| Modular Monolith | Medium | Medium-Large | Evolving systems | architecture-paradigm-modular-monolith |
| Microservices | High | Large | Complex domains | architecture-paradigm-microservices |
| Event-Driven | High | Medium-Large | Real-time processing | architecture-paradigm-event-driven |
| CQRS + ES | High | Medium-Large | Audit trails | architecture-paradigm-cqrs-es |
| Service-Based | Medium | Medium | Coarse-grained services | architecture-paradigm-service-based |
| Serverless | Medium | Small-Medium | Cloud-native/bursty | architecture-paradigm-serverless |
| Microkernel | Medium | Small-Medium | Plugin systems | architecture-paradigm-microkernel |
| Space-Based | High | Large | Linear scalability | architecture-paradigm-space-based |
| Pipeline | Low | Small-Medium | ETL workflows | architecture-paradigm-pipeline |
| Client-Server | Low | Small | Traditional apps | architecture-paradigm-client-server |
Integration with Other Skills
- Architecture Review: Use this skill first to select paradigms, then
/architecture-reviewfor evaluation - Implementation Planning: Select paradigms here, then
/writing-plansfor detailed task breakdown - Refactoring: Identify target paradigms here, then use paradigm-specific skills for migration strategies
Exit Criteria
- At least one paradigm is selected with clear rationale
- Specific paradigm skill has been loaded for detailed guidance
- Ready to create ADR or implementation plan
Next Steps
- Load the specific paradigm skill - Use
Skill(archetypes:architecture-paradigm-NAME) - Generate an ADR - Use the paradigm's ADR templates
- Create implementation plan - Use paradigm's migration checklist
- Set up monitoring - Track success metrics from paradigm guidance
Source
git clone https://github.com/athola/claude-night-market/blob/master/plugins/archetypes/skills/architecture-paradigms/SKILL.mdView on GitHub Overview
The architecture-paradigms skill is an interactive selector and router that helps you pick architecture patterns for new systems, compare trade-offs, create architecture decision records (ADRs), and assess fit for team size and domain complexity. It guides you before making architecture decisions and routes you to the specific architecture-paradigm-* skills for implementation details. Do not use it to implement a specific known paradigm; use the corresponding paradigm skill instead.
How This Skill Works
It provides a guided 3-step workflow and a Quick Scenario Router to map your needs to recommended architecture paradigms. Once a paradigm is identified, it routes you to the corresponding architecture-paradigm-* skill for implementation details and integrates with tools like paradigm-selector, implementation-planner, and compatibility-checker to plan next steps.
When to Use It
- Enterprise app with multiple teams
- Complex business rules & testing
- Real-time/event processing
- Legacy system modernization
- Cloud-native/bursty workloads
Quick Start
- Step 1: Define your needs and context (primary concerns and system context).
- Step 2: Evaluate paradigms based on Step 1 using the guided workflow.
- Step 3: Load the recommended architecture-paradigm-* skill from the router.
Best Practices
- Define needs and context up front using the 3-step workflow
- Map each concern to a paradigm candidate (e.g., testability, autonomy, scalability)
- Use the Quick Scenario Router to identify recommended paradigms
- Document decisions with ADRs and implementation plans
- Revisit and adjust decisions when team size or domain complexity changes
Example Use Cases
- Enterprise app with multiple teams → Microservices or Modular Monolith
- Complex business rules & testing → Functional Core with Imperative Shell
- Real-time/event processing → Event-Driven Architecture
- Legacy system modernization → Hexagonal (Ports & Adapters)
- Cloud-native/bursty workloads → Serverless