🌳 Avanzado · Módulo 1 de 3

Módulo 1: Arquitecturas de Software Avanzadas

Domina los patrones, principios y paradigmas que utilizan las empresas más grandes del mundo para construir sistemas que escalan a millones de usuarios con alta disponibilidad.

Microservicios DDD Event Sourcing CQRS
Diseño de arquitecturas de software
📅 12 semanas de duración
📚 28 temas en profundidad
🔨 8 proyectos avanzados
🎯 Nivel: Avanzado
🏆 Certificado al completar

6 bloques de aprendizaje intensivo

Cada bloque profundiza en conceptos fundamentales con ejemplos reales, código comentado y un proyecto práctico que integra lo aprendido.

  • 1

    Patrones de Diseño: GoF y Más Allá

    Los 23 patrones clásicos en contexto moderno, más patrones empresariales como Repository, Unit of Work, Specification y patrones de resiliencia (Circuit Breaker, Bulkhead, Retry).

  • 2

    Arquitecturas de Microservicios

    Decomposición por dominio, comunicación síncrona y asíncrona, API Gateway, service mesh con Istio, service discovery y estrategias de despliegue (blue/green, canary).

  • 3

    Domain-Driven Design (DDD)

    Ubiquitous Language, Bounded Contexts, Aggregates, Value Objects, Domain Events y Context Mapping. Tácticas y estrategias de DDD aplicadas a proyectos reales.

  • 4

    Event-Driven Architecture

    Diseño con Apache Kafka y RabbitMQ. Event streaming, choreography vs. orchestration, saga pattern, mensajería garantizada y gestión de errores en sistemas event-driven.

  • 5

    CQRS y Event Sourcing

    Separación de responsabilidades de lectura y escritura. Event store, projections, snapshots, read models optimizados y reconstrucción del estado desde eventos.

  • 6

    Proyecto: Sistema Distribuido Completo

    Construye una plataforma e-commerce con microservicios, DDD, Event Sourcing y CQRS. Incluye 8 servicios independientes, Kafka, API Gateway y monitorización completa.

Experto en programación avanzada
🎯

Objetivos del Módulo

Al completar este módulo serás capaz de diseñar, implementar y operar sistemas distribuidos de alto rendimiento usando las mejores prácticas de la industria.

Progreso total28/28 temas
Continuar al Módulo 2 →

Conceptos y su nivel de profundidad

Una guía orientativa sobre la complejidad de cada concepto para que puedas planificar tu ritmo de estudio.

Concepto Bloque Complejidad Tiempo estimado Proyecto asociado
Patrones GoF (Creacionales, Estructurales) Bloque 1 Media 1 semana Refactoring de legacy code
Patrones de Resiliencia Bloque 1 Alta 1 semana Circuit breaker en API
Microservicios: decomposición y comunicación Bloque 2 Muy Alta 2 semanas Plataforma de pedidos
Domain-Driven Design táctico Bloque 3 Muy Alta 2 semanas Bounded context modeling
Event-Driven con Apache Kafka Bloque 4 Muy Alta 2 semanas Pipeline de eventos en tiempo real
CQRS + Event Sourcing Bloque 5 Muy Alta 2 semanas Sistema de auditoría completo
Proyecto Final: Sistema distribuido Bloque 6 Muy Alta 2 semanas E-commerce con 8 microservicios

Preguntas frecuentes sobre arquitecturas avanzadas

Respondemos las dudas más habituales de estudiantes que llegan a este módulo.

Los microservicios no son siempre la solución correcta. Un monolito modular (también llamado "modular monolith") suele ser la mejor opción para equipos pequeños o proyectos en fase temprana. Los microservicios se justifican cuando tienes equipos independientes que necesitan desplegar de forma autónoma, diferentes requisitos de escalabilidad por componente, o cuando el dominio está suficientemente maduro como para que los bounded contexts sean estables. La complejidad operacional de los microservicios (service discovery, distributed tracing, eventual consistency) requiere una infraestructura y madurez organizacional significativas. En el módulo analizamos el patrón "Strangler Fig" para migrar progresivamente de monolito a microservicios.

Son conceptos relacionados pero distintos. Event-Driven Architecture (EDA) es un estilo arquitectónico donde los componentes se comunican mediante la producción, detección y consumo de eventos. Puedes tener EDA sin Event Sourcing. Event Sourcing, por su parte, es un patrón de persistencia donde el estado de una entidad se deriva de una secuencia inmutable de eventos históricos, en lugar de almacenar solo el estado actual. Event Sourcing naturalmente produce eventos que pueden alimentar una arquitectura event-driven, pero su propósito principal es la persistencia y la capacidad de reconstruir el estado en cualquier punto del tiempo. En el módulo implementamos ambos de forma complementaria.

Aunque DDD brilla en sistemas complejos, sus principios son valiosos a cualquier escala. El "ubiquitous language" (lenguaje ubicuo) mejora la comunicación entre desarrolladores y stakeholders en cualquier proyecto. Los Value Objects y Aggregates producen código más expresivo y con invariantes más robustas. Los Bounded Contexts son esenciales para gestionar la complejidad en cualquier sistema que crezca. Dicho esto, aplicar DDD completo (con Context Maps, Anti-Corruption Layers, etc.) en un proyecto pequeño puede ser overkill. En el módulo aprendemos a aplicar "DDD estratégico ligero" para proyectos de tamaño medio y DDD completo para sistemas enterprise.

Los conceptos arquitectónicos son agnósticos al lenguaje, y el módulo incluye ejemplos en varios. Para patrones de diseño y DDD usamos principalmente Java (Spring Boot) y Python. Para los microservicios y el proyecto final, el stack principal es Go para los servicios de alta performance y Python para los servicios de ML. Los ejemplos de Kafka y mensajería están en Java y Node.js. Toda la infraestructura se gestiona con Docker, Kubernetes y Terraform. Si dominas un lenguaje diferente, los conceptos se aplican directamente: el código es secundario a los principios.

El proyecto final es revisado por al menos dos mentores expertos usando una rúbrica de evaluación que cubre: corrección de la implementación de los patrones (30%), calidad del código y adherencia a los principios (20%), documentación arquitectónica con ADRs (20%), cobertura de tests (15%) y presentación del sistema en funcionamiento (15%). También realizamos una sesión de "architecture review" donde defendes tus decisiones de diseño, similar a lo que ocurre en empresas reales. El feedback es escrito y detallado, y tienes la oportunidad de iterar sobre el proyecto antes de la calificación final.

← Volver al Nivel Avanzado Módulo 2: IA y Cloud →