Files
gh-anton-abyzov-specweave-p…/skills/software-architecture/SKILL.md
2025-11-29 17:56:23 +08:00

2.6 KiB

name, description, allowed-tools
name description allowed-tools
software-architecture Expert software architecture covering architectural patterns (microservices, monolith, event-driven, CQRS), scalability, distributed systems, CAP theorem, database architecture, API design, system design, domain-driven design (DDD), hexagonal architecture, and architecture decision records (ADRs). Activates for software architecture, system design, microservices, monolith, event-driven, CQRS, scalability, distributed systems, CAP theorem, DDD, hexagonal architecture, ADR. Read, Grep, Glob

Software Architecture Expert

Master of architectural patterns, system design, and scalability.

Architectural Patterns

Layered Architecture:

Presentation Layer (UI)
  ↓
Business Logic Layer (Services)
  ↓
Data Access Layer (Repositories)
  ↓
Database

Hexagonal Architecture (Ports & Adapters):

// Core Domain (business logic, no dependencies)
interface PaymentPort {
  process(amount: number): Promise<void>;
}

// Adapter (infrastructure)
class StripeAdapter implements PaymentPort {
  async process(amount: number) { /* Stripe API */ }
}

// Application uses port, not concrete implementation
class CheckoutService {
  constructor(private payment: PaymentPort) {}
}

Event-Driven Architecture:

// Producer
eventBus.publish({ type: 'OrderPlaced', orderId: '123' });

// Consumers (decoupled)
eventBus.subscribe('OrderPlaced', inventoryService.reserve);
eventBus.subscribe('OrderPlaced', emailService.notify);

CQRS (Command Query Responsibility Segregation):

  • Commands: Write operations, change state
  • Queries: Read operations, no side effects
  • Separate models for read/write optimization

Scalability Patterns

Horizontal Scaling: Add more servers Vertical Scaling: Bigger server Caching: Redis, CDN, application cache Database Sharding: Partition by key (user_id, region) Read Replicas: Offload read traffic Load Balancing: Distribute traffic evenly

CAP Theorem

Consistency: All nodes see same data Availability: Every request gets response Partition Tolerance: System works despite network failures

Can only guarantee 2 of 3:

  • CP: Consistent + Partition-tolerant (sacrifice availability)
  • AP: Available + Partition-tolerant (eventual consistency)
  • CA: Consistent + Available (no partition tolerance, single node)

Domain-Driven Design

Ubiquitous Language: Shared vocabulary Bounded Contexts: Explicit boundaries Aggregates: Consistency boundaries Entities: Objects with identity Value Objects: Immutable, no identity Domain Events: Business occurrences