architecture-patterns

Guide architecture decisions with patterns for Go, TypeScript/React, Java, and general design.

9|2|Updated Dec 5, 2025
One-click install
npx skills add https://github.com/Zate/cc-plugins --skill architecture-patterns-zate
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: architecture-patterns
Source: https://github.com/Zate/cc-plugins/tree/main/plugins/devloop/skills/architecture-patterns
Command: npx skills add https://github.com/Zate/cc-plugins --skill architecture-patterns-zate

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Making sound architectural decisions is critical for scalable, maintainable, and performant software, but choosing the right pattern can be daunting and lead to over-engineering or technical debt.

Core Features & Use Cases

  • Architectural Styles: Guidance on Layered, Hexagonal (Ports & Adapters), and Microservices architectures.
  • Language-Specific Patterns: Best practices for Go (interface-first, functional options), TypeScript/React (component composition, custom hooks), and Java/Spring (DI, Builder).
  • SOLID Principles: Reinforce fundamental design principles for flexible and maintainable code.
  • Decision Framework: A structured approach to choosing architecture based on requirements, constraints, and simplicity.
  • Use Case: Design the architecture for a new microservice, apply Go's interface-first design, or refactor a monolithic application into a layered structure.

Quick Start

Suggest suitable architectural patterns for a new Go microservice that needs high testability and independent deployment.

Frequently Asked Questions about architecture-patterns

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

FAQPage Schema
How do I choose the right architecture pattern for my system design?

Architecture patterns provide proven structures for different requirements. Use a decision framework based on your constraints: layered architecture for traditional monoliths, hexagonal for testability and independence, microservices for independent deployment and scaling. Evaluate simplicity first to avoid over-engineering.

What are SOLID principles and why do they matter for design patterns?

SOLID principles—Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion—are fundamental guidelines for maintainable, flexible code. They underpin sound architectural decisions across Go, Java, TypeScript, and reduce technical debt when applied consistently.

How do I apply Go's interface-first design in microservice architecture?

Go's interface-first approach emphasizes defining contracts before implementation. Use interfaces with functional options patterns for configuration, enabling high testability and loose coupling. This pattern aligns well with microservice boundaries and independent deployment requirements.

Can I refactor a monolithic application into a layered or hexagonal structure?

Yes. Layered architecture organizes code into horizontal tiers (presentation, business logic, data access) for incremental refactoring. Hexagonal architecture isolates core logic behind ports and adapters, improving testability. Both support gradual migration from monoliths without complete rewrites.

What design patterns work best in TypeScript/React component architectures?

Composition patterns and custom hooks provide reusable, testable component logic in React. Combine with dependency injection and factory patterns for flexible, maintainable component hierarchies. These patterns reduce prop drilling and separate concerns between presentation and business logic.

When should I use microservices versus a layered monolith?

Choose microservices for independent scaling, team autonomy, and technology diversity across services. Use layered architecture for simpler domains, smaller teams, or when deployment complexity outweighs benefits. Microservices introduce operational overhead; evaluate organizational readiness and actual requirements first.