architecture-patterns

Architect backend systems using Clean Architecture, Hexagonal Architecture, and Domain-Driven Design.

Updated Mar 17, 2026
One-click install
npx skills add https://github.com/HemantSudarshan/Dhumichatbot --skill architecture-patterns-hemantsudarshan
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: architecture-patterns
Source: https://github.com/HemantSudarshan/Dhumichatbot/tree/main/skills/00-plan/architecture-patterns
Command: npx skills add https://github.com/HemantSudarshan/Dhumichatbot --skill architecture-patterns-hemantsudarshan

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Architecture patterns help teams structure backend systems for long-term maintainability, testability, and scalability by clearly defining boundaries, dependencies, and separation of concerns.

Core Features & Use Cases

  • Clean Architecture, Hexagonal Architecture, and Domain-Driven Design provide structured patterns to organize code, boundaries, and dependencies.
  • Use cases include building maintainable services, enabling testability, and supporting durable workflows across complex business processes.
  • Reference playbooks and templates to guide architecture decisions and migrations in large codebases.

Quick Start

Outline domain boundaries, select an architecture pattern, and define module interfaces with inward dependencies

Frequently Asked Questions about architecture-patterns

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

FAQPage Schema
How do I structure a large codebase using clean architecture?

Apply clean architecture to structure large codebases by enforcing the dependency rule and separating concerns. This provides reference playbooks and templates to define clear boundaries, ensuring maintainability and testable module interfaces.

What is the difference between hexagonal architecture and domain-driven design?

Hexagonal architecture uses ports-and-adapters to isolate business logic, while domain-driven design models complex business domains. Both enforce clear boundaries and inward dependencies to organize code and support durable workflows.

When do I need domain-driven design for my backend system?

Use domain-driven design for large or complex domains requiring clear boundaries, maintainability, and team coordination. It organizes code dependencies and supports durable workflows across complex business processes.

How do I enforce the dependency rule in layered architecture?

Enforce the dependency rule in layered architecture by defining module interfaces with inward dependencies. This maintains separation of concerns and testable boundaries by ensuring outer layers depend on inner layers.

Can I use hexagonal architecture for migrating legacy services?

Yes, hexagonal architecture supports migrations in large codebases using ports-and-adapters concepts. It provides guidelines and templates to isolate business logic and establish testable boundaries for maintainable service rewrites.

What are the limitations of clean architecture for small projects?

Clean architecture introduces structural overhead that may not suit small projects lacking complex domains. The dependency rule and layered separation are designed for maintainability and team coordination in large codebases, which are less critical in simpler applications.