Estilo arquitectónico que estructura una aplicación como colección de servicios pequeños, independientes y desplegables, cada uno con su propia lógica de negocio y datos.
Los microservicios son un estilo arquitectónico donde una aplicación se compone de servicios pequeños e independientes que se comunican por red (HTTP, mensajes, eventos). Cada servicio es dueño de su dominio, datos y ciclo de despliegue.
| Aspecto | Monolito | Microservicios |
|---|---|---|
| Despliegue | Todo junto | Independiente |
| Escalado | Vertical | Horizontal por servicio |
| Complejidad | En el código | En la infraestructura |
| Consistencia | Transacciones ACID | Consistencia eventual |
Los microservicios permiten que equipos independientes desarrollen, desplieguen y escalen servicios de forma autónoma. Pero su complejidad operacional es significativa — requieren observabilidad, service mesh, gestión de datos distribuidos y una cultura de ownership. No son la respuesta por defecto.
Estrategia de organización de código donde múltiples proyectos coexisten en un único repositorio, compartiendo dependencias, configuración y herramientas de build.
Patrón arquitectónico donde los componentes se comunican mediante eventos asíncronos, permitiendo sistemas desacoplados, escalables y reactivos.
Enfoque de desarrollo que aprovecha las ventajas de la nube: contenedores, microservicios, infraestructura inmutable y automatización declarativa para sistemas escalables y resilientes.
Arquitectura de seguridad que verifica rigurosamente cada solicitud independientemente de su origen, eliminando la confianza implícita en redes internas.
Estrategia de migración incremental que reemplaza gradualmente un sistema legacy con componentes nuevos, enrutando tráfico progresivamente hasta que el sistema antiguo se puede retirar.
Capa de infraestructura dedicada a gestionar la comunicación entre microservicios, proporcionando observabilidad, seguridad y control de tráfico de forma transparente.
Patrón para gestionar transacciones distribuidas en microservicios mediante una secuencia de transacciones locales con acciones de compensación para manejar fallos.
Patrón arquitectónico que extiende los microservicios al frontend, permitiendo que equipos independientes desarrollen y desplieguen partes de una aplicación web de forma autónoma.
Patrón arquitectónico que aísla la lógica de negocio del mundo exterior mediante puertos y adaptadores, facilitando testing y cambio de tecnologías.
Enfoque de diseño de software que centra el desarrollo en el dominio del negocio, usando un lenguaje ubicuo compartido entre desarrolladores y expertos de dominio.
Técnica de observabilidad que rastrea requests a través de múltiples servicios en sistemas distribuidos, permitiendo identificar cuellos de botella y diagnosticar fallos.
Patrón arquitectónico donde cada tipo de cliente tiene su propio backend dedicado que adapta las APIs de microservicios a las necesidades específicas de ese cliente.
Servicio de orquestación serverless de AWS que coordina múltiples servicios en workflows visuales usando Amazon States Language (ASL), con manejo de errores, reintentos y ejecución paralela integrados.
Bus de eventos serverless de AWS que conecta aplicaciones usando eventos, permitiendo arquitecturas desacopladas y event-driven con enrutamiento basado en reglas.
Servicio de orquestación de contenedores de AWS que ejecuta y escala aplicaciones Docker sin gestionar la infraestructura de cluster subyacente.
Patrón que proporciona un punto de entrada único para múltiples microservicios, manejando routing, autenticación, rate limiting y agregación de respuestas.
Principios y prácticas para diseñar interfaces de programación claras, consistentes y evolucionables que faciliten la integración entre sistemas.