architecture-patterns

Guide backend system design with Clean Architecture, Hexagonal Architecture, and Domain-Driven Design templates.

Updated Jan 20, 2026
One-click install
npx skills add https://github.com/ollieb89/ugro --skill architecture-patterns-ollieb89
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: architecture-patterns
Source: https://github.com/ollieb89/ugro/tree/main/.windsurf/skills/architecture-patterns
Command: npx skills add https://github.com/ollieb89/ugro --skill architecture-patterns-ollieb89

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) and assets (resource) components.

What problem does it solve?

Architecture patterns provide a structured blueprint to design maintainable, scalable backend systems, guiding teams away from ad-hoc coding.

Core Features & Use Cases

  • Clean Architecture, Hexagonal Architecture, and Domain-Driven Design patterns explained with actionable guidelines.
  • Provides directory templates and practical hints for structuring code, modules, and boundaries.
  • Use Case: When refactoring a monolith to modular services, apply the patterns to separate concerns, improve testability, and enable independent teams.

Quick Start

Review the references and templates in assets/ and guides to start applying these patterns in your project.

Frequently Asked Questions about architecture-patterns

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
What is clean architecture and why should I use it for backend systems?

Clean Architecture is a design pattern that organizes code into independent layers with clear separation of concerns, making backend systems more maintainable, testable, and scalable. It isolates business logic from frameworks and external dependencies, so changes to tools or databases don't cascade through your codebase.

How do I refactor a monolith into microservices using architecture patterns?

Apply Domain-Driven Design to identify bounded contexts and service boundaries, then use Hexagonal Architecture to decouple each service's core logic from infrastructure. This approach separates concerns, improves testability, and lets independent teams own specific services without tight coupling.

What's the difference between hexagonal architecture and clean architecture?

Hexagonal Architecture emphasizes ports and adapters—external interfaces connect to your core domain through well-defined boundaries. Clean Architecture organizes layers concentrically with dependency rules flowing inward. Both achieve isolation; hexagonal focuses on adapter flexibility, clean architecture on layered structure.

How do I structure my backend code to follow domain-driven design principles?

Domain-Driven Design organizes code around business domains, not technical layers. Group related entities, value objects, and services into bounded contexts with clear interfaces. Use directory structures that mirror business language, separating domain logic from infrastructure so teams reason about business concepts, not frameworks.

Can I apply these architecture patterns to an existing codebase?

Yes. Start by identifying architectural boundaries using these patterns, then incrementally refactor modules and dependencies to match the chosen pattern. Templates and example directory layouts guide structural changes without requiring a complete rewrite, allowing staged migration of monolithic systems.

What are the limits of applying architecture patterns to small projects?

Strict layering and bounded contexts add complexity overhead that may outweigh benefits in small codebases. Start simple and introduce patterns as your system grows, team size increases, or coupling becomes a problem. Patterns scale value as system scope expands.