architecture

Guide architecture decisions for multi-tenant, event-driven environments.

4|2|Updated Mar 6, 2026
One-click install
npx skills add https://github.com/hiimtrung/coder --skill architecture-hiimtrung
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: architecture
Source: https://github.com/hiimtrung/coder/tree/main/.agents/skills/architecture
Command: npx skills add https://github.com/hiimtrung/coder --skill architecture-hiimtrung

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Solves the challenge of designing scalable, maintainable, and secure software architectures.

Core Features & Use Cases

  • Guides layering and patterns to ensure maintainability and extensibility.
  • Enforces multi-tenant isolation and governance across services and repositories.
  • Supports event-driven design with domain events, outbox patterns, and idempotent handlers.

Quick Start

Draft an architectural blueprint for a new multi-tenant service and identify key layers, boundaries, and events.

Frequently Asked Questions about architecture

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

FAQPage Schema
How do I design a scalable multi-tenant software architecture?

Multi-tenant isolation in software architecture requires enforcing governance rules across services and repositories. It guides layering and applies dependency injection alongside tenant boundaries to maintain secure separation and prevent data leakage between tenants.

How does domain events and outbox pattern work in event-driven design?

Domain events and the outbox pattern in event-driven design support reliable asynchronous processing. They enable idempotent handlers and formal layering to ensure maintainable, resilient communication between services without tight coupling or data inconsistency.

What is the best way to structure clean architecture layers for a new service?

Clean architecture suits multi-tenant, event-driven, and multi-repo environments requiring formal layering and strict dependency rules. It applies domain-driven-design patterns to ensure maintainability, extensibility, and secure governance across diverse domains and scalable services.

Why do I need dependency injection and domain events for system extensibility?

Limitations of clean architecture include the overhead of enforcing formal layering, strict dependency rules, and domain events. When designing simple multi-tenant services, this governance and multi-repo structure may introduce unnecessary complexity and slow initial development.