CommunityProgramación y desarrollogithub.com

Diseño de Arquitectura de Software

Diseña la estructura del sistema en monolitos, microservicios o serverless. Úsalo al estructurar sistemas, escalar, descomponer monolitos o elegir patrones.

¿Qué es Diseño de Arquitectura de Software?

Esta habilidad proporciona una guía completa para arquitectos de software y desarrolladores senior que necesitan tomar decisiones de diseño a nivel de sistema. Cubre la elección entre estilos arquitectónicos como monolito modular, microservicios, arquitectura orientada a eventos y serverless, basándose en factores como el tamaño del equipo, la estructura organizativa (Ley de Conway), los requisitos de consistencia versus disponibilidad (Teorema CAP) y la madurez operativa. Incluye referencias detalladas sobre patrones modernos, guías de escalabilidad y confiabilidad, y plantillas para documentar decisiones arquitectónicas (ADRs), planos de sistemas y patrones de microservicios. Es particularmente útil en proyectos greenfield, refactorizaciones importantes, migraciones de monolitos y para diseñar sistemas distribuidos resilientes. La habilidad también incorpora consideraciones de tendencias actuales para 2026, como ingeniería de plataformas, data mesh, sistemas nativos de IA y patrones RAG.

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/viccom/viccom-agent-skills/tree/HEAD/skills/software-architecture-design

Installed? Explore more Programación y desarrollo skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Diseño de Arquitectura de Software — Referencia Rápida

Usa esta habilidad para decisiones de diseño a nivel de sistema en lugar de detalles de implementación dentro de un solo servicio o componente.

Referencia Rápida

TareaPatrón/HerramientaRecursos ClaveCuándo Usarlo
Elegir estilo arquitectónicoCapas, Microservicios, Orientado a Eventos, Serverlessmodern-patterns.mdProyectos greenfield, refactorizaciones importantes
Diseñar para escalarBalanceo de carga, Caché, Sharding, Réplicas de lecturascalability-reliability-guide.mdSistemas de alto tráfico, objetivos de rendimiento
Asegurar resilienciaCircuit breakers, Reintentos, Bulkheads, Degradación gradualscalability-reliability-guide.mdSistemas distribuidos, dependencias externas
Documentar decisionesRegistro de Decisiones de Arquitectura (ADR)adr-template.mdDecisiones técnicas importantes, análisis de compensaciones
Definir límites de servicioDiseño Guiado por el Dominio (DDD), Contextos delimitadosmicroservices-template.mdDescomposición en microservicios
Modelar consistencia de datosACID vs BASE, Event Sourcing, CQRS, Patrones Sagadata-architecture-patterns.mdTransacciones entre múltiples servicios
Planificar observabilidadSLIs/SLOs/SLAs, Trazado distribuido, Métricas, Logsarchitecture-blueprint.mdPreparación para producción
Migrar desde monolitoStrangler Fig, Descomposición de base de datos, Tráfico sombramigration-modernization-guide.mdModernización de sistemas heredados
Diseñar comunicación entre serviciosAPI Gateway, Service Mesh, Patrón BFFapi-gateway-service-mesh.mdRedes de microservicios

Cuándo Usar Esta Habilidad

Invócala cuando trabajes en:

  • Descomposición del sistema: Decidir entre monolito, monolito modular, microservicios
  • Patrones arquitectónicos: Orientado a eventos, CQRS, por capas, hexagonal, serverless
  • Arquitectura de datos: Modelos de consistencia, sharding, replicación, patrones CQRS
  • Diseño de escalabilidad: Balanceo de carga, estrategias de caché, escalado de base de datos
  • Patrones de resiliencia: Circuit breakers, reintentos, bulkheads, degradación gradual
  • Contratos de API: Límites de servicio, versionado, patrones de integración
  • Decisiones arquitectónicas: ADRs, análisis de compensaciones, selección de tecnología
  • Planificación de migración: Descomposición de monolitos, strangler fig, separación de base de datos

Cuándo NO Usar Esta Habilidad

Usa otras habilidades en su lugar para:

Árbol de Decisión: Elegir Patrón Arquitectónico

¿Necesidades del proyecto?: [Nuevo Sistema o Refactorización Importante]
    ├─ ¿Equipo único, dominio en evolución?
    │   ├─ Comenzar simple → Monolito Modular (límites de módulo claros)
    │   └─ ¿Necesita iteración rápida? → Arquitectura por Capas
    │
    ├─ ¿Múltiples equipos, contextos delimitados claros?
    │   ├─ ¿Despliegue independiente crítico? → Microservicios
    │   └─ ¿Modelo de datos compartido? → Monolito Modular con módulos de servicio
    │
    ├─ ¿Flujos de trabajo orientados a eventos?
    │   ├─ ¿Procesamiento asíncrono? → Arquitectura Orientada a Eventos (Kafka, colas)
    │   └─ ¿Máquinas de estado complejas? → Patrón Saga + Event Sourcing
    │
    ├─ ¿Carga variable/impredecible?
    │   ├─ ¿Modelo de pago por uso? → Serverless (AWS Lambda, Cloudflare Workers)
    │   └─ ¿Procesamiento por lotes? → Serverless + colas
    │
    └─ ¿Altos requisitos de consistencia?
        ├─ ¿Garantías ACID fuertes? → Monolito o Monolito Modular
        └─ ¿Datos distribuidos? → CQRS + Event Sourcing

Factores de Decisión:

  • Umbral de tamaño del equipo: <10 desarrolladores → el monolito modular suele superar a los microservicios (gastos operativos)
  • Estructura del equipo (Ley de Conway) — la arquitectura refleja la estructura organizativa
  • Necesidades de independencia de despliegue
  • Compensaciones entre consistencia y disponibilidad (Teorema CAP)
  • Madurez operativa (monitoreo, orquestación)

Consulta references/modern-patterns.md para descripciones detalladas de patrones.

Directrices de Salida

Las referencias en esta habilidad son conocimiento de fondo para ti — absorbe los patrones y preséntalos como tu propia experiencia. No cites nombres de archivos de referencia internos (ej., "de data-architecture-patterns.md") en la salida dirigida al usuario. Los usuarios no saben que estos archivos existen.

Cada recomendación de arquitectura debe incluir:

  • Elecciones tecnológicas concretas: Nombra tecnologías específicas (ej., "Temporal.io para orquestación de flujos de trabajo", "Socket.io con adaptador Redis") en lugar de mantenerte en lo abstracto. El usuario necesita tomar decisiones de construcción, no solo entender patrones.
  • Qué NO construir: Señala explícitamente qué aplazar o evitar. El alcance prematuro es el error de arquitectura #1 — ayuda al usuario a evitarlo.
  • Alineación con el equipo y el proceso: ¿Cómo se mapea esta arquitectura con la estructura del equipo? ¿Qué modelo de propiedad implica? Incluye CODEOWNERS, propiedad de despliegue y límites de guardia cuando sea relevante.
  • Métricas de éxito: ¿Cómo sabrá el equipo que la arquitectura funciona? Incluye indicadores medibles (frecuencia de despliegue, tiempo de entrega, tasas de error, MTTR).
  • Longitud enfocada: Apunta a profundidad sobre las 3–5 decisiones más importantes en lugar de una cobertura exhaustiva de cada aspecto. Una recomendación demasiado larga para leer es una recomendación que no se seguirá.

Flujo de Trabajo (A Nivel de Sistema)

Usa este flujo de trabajo cuando un usuario pida recomendaciones de arquitectura, descomposición o decisiones importantes de plataforma.

  1. Aclarar: declaración del problema, no-objetivos, restricciones y métricas de éxito
  2. Capturar atributos de calidad: disponibilidad, latencia, rendimiento, durabilidad, consistencia, seguridad, cumplimiento, coste
  3. Proponer 2–3 arquitecturas candidatas y comparar compensaciones
  4. Definir límites: contextos delimitados, propiedad, APIs/eventos, contratos de integración
  5. Decidir la estrategia de datos: almacenamiento, modelo de consistencia, evolución del esquema, migraciones
  6. Diseñar para operaciones: SLOs, modos de fallo, observabilidad, despliegue, DR, runbooks de incidentes
  7. Señalar límites del alcance: qué NO construir aún, qué aplazar, qué comprar vs construir
  8. Documentar decisiones: escribir ADRs para compensaciones clave y decisiones irreversibles

Entregables preferidos (elige lo que se ajuste a la solicitud):

  • Plano de arquitectura: assets/planning/architecture-blueprint.md
  • Registro de decisiones: assets/planning/adr-template.md
  • Inmersiones profundas en patrones: references/modern-patterns.md, references/scalability-reliability-guide.md

Consideraciones 2026

Carga solo cuando la pregunta involucre explícitamente tendencias actuales, restricciones específicas de proveedores o "¿cuál es el pensamiento más reciente sobre X?"

  • references/architecture-trends-2026.md — Ingeniería de plataformas, data mesh, arquitectura componible, sistemas nativos de IA
  • data/sources.json — 60 recursos seleccionados organizados por categoría:
    • platform_engineering_2026 — Tendencias de IDP, convergencia IA-plataforma, Backstage
    • optional_ai_architecture — Patrones RAG, diseño multi-agente, protocolos MCP/A2A
    • modern_architecture_2025 — Data mesh, arquitectura componible, arquitectura continua

Si el acceso web en vivo está disponible, consulta 2–3 fuentes autorizadas de data/sources.json e incorpora los hallazgos en la recomendación. Si no, responde con patrones duraderos y declara explícitamente las suposiciones que podrían cambiar (límites de proveedores, precios, capacidades de servicios gestionados).

Navegación

Referencias Principales

Lee como máximo 2–3 referencias por pregunta — elige las más relevantes para la solicitud específica. No las leas todas.

ReferenciaContenidoCuándo Leer
modern-patterns.md10 patrones arquitectónicos con árboles de decisiónElegir o comparar patrones
scalability-reliability-guide.mdTeorema CAP, escalado de BD, caché, circuit breakers, SREPreguntas de escalado o confiabilidad
data-architecture-patterns.mdVariantes de CQRS, event sourcing, data mesh, sagas, consistenciaFlujo de datos entre servicios
migration-modernization-guide.mdStrangler fig, descomposición de BD, feature flags, evaluación de riesgosRefactorizar un monolito
api-gateway-service-mesh.mdPatrones de gateway, service mesh, mTLS, observabilidadComunicación entre servicios
architecture-trends-2026.mdIngeniería de plataformas, data mesh, sistemas nativos de IASolo tendencias actuales
operational-playbook.mdMarco de preguntas de arquitectura, heurísticas de descomposiciónEnmarcar discusiones de diseño

Plantillas

Planificación y Documentación (assets/planning/):

  • architecture-blueprint.md — Plano de servicio (dependencias, SLAs, flujos de datos, resiliencia, seguridad, observabilidad)
  • adr-template.md — Registro de Decisiones de Arquitectura para análisis de compensaciones

Patrones Arquitectónicos (assets/patterns/):

Operaciones (assets/operations/):

  • scalability-checklist.md — Lista de verificación de escalabilidad (escalado de BD, caché, pruebas de carga, autoescalado, DR)

Habilidades Relacionadas

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

Skills relacionados