Patrones

Patrones de Arquitectura

Patrones clave para diseñar sistemas distribuidos robustos y escalables.

Los patrones de arquitectura son soluciones probadas a problemas recurrentes en el diseño de sistemas. No son recetas mágicas — son herramientas que, bien aplicadas, te ayudan a tomar mejores decisiones y evitar errores comunes.

Esta sección cubre 14 patrones organizados en cuatro categorías, desde modelado de dominio hasta integración con sistemas externos. Cada artículo explica el problema, la solución, los trade-offs y cuándo aplicarlo.

On video

Patrones de Diseño Explicados FÁCIL

Qué encontrarás aquí

Estructural

Dominio y modelado — DDD, Microservices, API Gateway, BFF y Anti-patrones.

Resiliencia

Tolerancia a fallos — Circuit Breaker, Retry, Timeout y Saga.

Datos

Consistencia y procesos distribuidos — Outbox e Idempotency/Inbox.

Integración

Integración externa — Event-Driven Architecture, ACL y Shared Kernel.

Cómo usar esta sección

🟢 Básico

Empezá por DDD, API Gateway y Circuit Breaker para entender los fundamentos del diseño distribuido.

🟡 Intermedio

Avanzá con Saga, Outbox, Retry/Timeout y Event-Driven Architecture para manejar complejidad real.

🔴 Avanzado

Profundizá en ACL, Shared Kernel, Idempotency/Inbox y Anti-patrones para dominar los edge cases.

Explorar patrones

structural

Domain-Driven Design (DDD)

Cómo aplicar DDD para modelar dominios complejos, definir bounded contexts y construir software alineado con el negocio.

resilience

Saga Pattern

Cómo manejar transacciones distribuidas entre microservicios usando coreografía u orquestación con compensaciones.

data

Outbox Pattern

Cómo garantizar la publicación confiable de eventos en sistemas distribuidos usando transactional outbox.

resilience

Circuit Breaker

Cómo proteger tus servicios de fallos en cascada usando el patrón Circuit Breaker con estados, fallbacks y recuperación automática.

structural

Anti-patrones en Arquitectura de Software

Errores comunes en arquitectura de software distribuida: cómo identificarlos, su impacto real y las estrategias para corregirlos.

structural

API Gateway

Cómo centralizar el acceso a tus microservicios con un punto de entrada único que gestiona enrutamiento, autenticación, rate limiting y transformación de respuestas.

structural

Backend for Frontend (BFF)

Cómo crear backends especializados por tipo de cliente para optimizar la experiencia de cada plataforma sin acoplar los servicios internos.

structural

Microservicios

Cómo descomponer un sistema en servicios pequeños, autónomos y desplegables de forma independiente, alineados con dominios de negocio.

integration

Event-Driven Architecture

Cómo diseñar sistemas reactivos donde los componentes se comunican mediante eventos, logrando desacoplamiento, escalabilidad y procesamiento asíncrono.

integration

Anti-Corruption Layer (ACL)

Cómo proteger tu dominio de la contaminación de sistemas externos, legacy o de terceros mediante una capa de traducción que aísla modelos incompatibles.

resilience

Retry Pattern

Cómo manejar fallos transitorios en sistemas distribuidos reintentando operaciones con estrategias de backoff para mejorar la resiliencia.

resilience

Timeout Pattern

Cómo proteger tus servicios de esperas indefinidas estableciendo límites de tiempo en las llamadas a dependencias externas.

data

Idempotencia

Cómo diseñar operaciones que pueden ejecutarse múltiples veces sin efectos secundarios duplicados, esencial para reintentos seguros y procesamiento confiable de eventos.

integration

Shared Kernel

Cómo compartir un subconjunto controlado de modelo de dominio entre bounded contexts para reducir duplicación sin sacrificar la autonomía de los equipos.