athola/architecture-paradigms
Selects and routes to the right architecture paradigm. Use when choosing patterns for a new system or comparing trade-offs before making architecture decisions.
npx skills add https://github.com/athola/claude-night-market --skill architecture-paradigms
pensive:architecture-review)
This skill helps you select the right architecture paradigm(s) for your system, then routes you to the specific paradigm skill for implementation details.
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 and Event Sourcing | architecture-paradigm-cqrs-es |
| Rich business rules to model | Domain-Driven Design | architecture-paradigm-domain-driven |
One of these is not like the others. Domain-Driven Design answers
"what are the concepts and what do we call them." The rest answer "where
does the code go." DDD composes with a structural paradigm (commonly
layered, hexagonal, or modular monolith) rather than competing with it, so
selecting it does not mean deselecting one of the others.
Primary Concerns (select all that apply):
functional-core or hexagonalmicroservices or modular-monolithhexagonalevent-driven or space-basedlayered or modular-monolithhexagonal or microkernelSystem Context:
< 5 → Layered/Functional Core | 5-15 → Modular Monolith | 15-50 → Microservices | 50+ → Microservices/Space-BasedSimple → Layered | Moderate → Hexagonal/Modular Monolith | Complex → Functional Core/CQRS | Highly Complex → Microservices/Event-DrivenBased on your needs from Step 1, review these options:
For Testability & Business Logic
architecture-paradigm-functional-core - Isolates business logic from infrastructurearchitecture-paradigm-hexagonal - Clear domain/infrastructure boundariesFor Team Autonomy
architecture-paradigm-microservices - Independent deployment and scalingarchitecture-paradigm-modular-monolith - Team autonomy without distributed complexityFor Infrastructure Flexibility
architecture-paradigm-hexagonal - Swap infrastructure without domain changesFor Simplicity & Maintainability
architecture-paradigm-layered - Simple, well-understood separationFor Rich Business Rules
architecture-paradigm-domain-driven - Models the business in itsown language. Pair it with whichever structural paradigm you picked
above; it does not replace one. Skip it when the domain is CRUD over a
form, where the model would just be the schema under a new name.
For Real-time Event Processing
architecture-paradigm-event-driven - Scalable, decoupled processingarchitecture-paradigm-space-based - In-memory data grids for linear scalabilityFor Legacy Integration
architecture-paradigm-microkernel - Plugin architecture for extensible platformsarchitecture-paradigm-hexagonal - Adapters for external systemsOnce 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:
| 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 and 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 |
| Domain-Driven Design | Medium | Small-Large | Rich business rules (composes with the above) | architecture-paradigm-domain-driven |
/architecture-review for evaluation/writing-plans for detailed task breakdownSkill(archetypes:architecture-paradigm-NAME)Take athola/architecture-paradigms from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.