designing-architecture

Reference architectural patterns and design principles for software architecture design.

1|Updated Jul 22, 2025
One-click install
npx skills add https://github.com/drewdresser/aws-solutions-architect-bench --skill designing-architecture-drewdresser
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: designing-architecture
Source: https://github.com/drewdresser/aws-solutions-architect-bench/tree/main/.claude/skills/designing-architecture
Command: npx skills add https://github.com/drewdresser/aws-solutions-architect-bench --skill designing-architecture-drewdresser

SYSTEM DOCUMENTATION & REQUIREMENTS

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

What problem does it solve?

This Skill assists in the design and optimization of software architectures, providing patterns and principles to enhance system robustness and scalability.

Core Features & Use Cases

  • Pattern Reference: Offers a comprehensive guide to various architecture patterns like Layered, Hexagonal, Microservices, and Event-Driven.
  • Design Principles: Delivers insights on SOLID, DRY, KISS, YAGNI, and other crucial design principles.
  • Common Patterns: Explains patterns like Repository, Service Layer, Factory, and Strategy.
  • Non-Functional Requirements: Discusses scalability, reliability, security, and performance considerations.
  • Architecture Decision Records (ADR): Provides a framework for documenting architectural decisions.

Quick Start

Use the designing-architecture skill to learn about the Layered architecture pattern and its implementation in software design.

Frequently Asked Questions about designing-architecture

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

FAQPage Schema
What are the core software architecture patterns for designing scalable systems?

Layered, Hexagonal, Microservices, and Event-Driven are core software architecture patterns. They provide structural templates to enhance system reliability, performance, and overall scalability through proper architectural decisions.

How do I decide between microservices and layered architecture patterns?

Choosing between microservices and layered architecture depends on your non-functional requirements. Microservices optimize scalability and independent deployment, while layered architecture prioritizes structural simplicity and maintainability within a single application.

What software design principles improve system robustness and scalability?

Software design principles like SOLID, DRY, KISS, and YAGNI improve system robustness and scalability. Applying these principles ensures proper architectural decisions, leading to highly maintainable and reliable software structures.

How do I document architectural decisions for a software project?

You document architectural decisions using Architecture Decision Records (ADR). ADRs provide a standardized framework to capture the context, decision, and consequences of your software architecture choices for future reference.

When should I use repository and service layer patterns in software design?

Use repository and service layer patterns in software design to separate data access logic from business logic. These common patterns promote clean architecture, enhancing maintainability and testability across your system.

Does software architecture design require specific frameworks to implement design patterns?

Software architecture design does not require specific frameworks to implement design patterns. Principles like SOLID and patterns like Factory or Strategy are conceptual guidelines applicable across any programming language or technology stack.