Microservicios
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.
seed#microservices#architecture#distributed-systems#api#decoupling
¿Qué es?
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.
Características
- Independencia de despliegue: cada servicio se despliega por separado
- Ownership de datos: cada servicio tiene su propia base de datos
- Tecnología heterogénea: cada servicio puede usar diferente stack
- Equipos autónomos: un equipo por servicio (o grupo de servicios)
Microservicios vs Monolito
| 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 |
Cuándo NO usar microservicios
- Equipos pequeños (menos de 5 personas)
- Producto en fase temprana (dominio no definido)
- Sin experiencia en sistemas distribuidos
- Cuando un monolito modular es suficiente
Patrones asociados
¿Por qué importa?
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.
Referencias
- Microservices — Martin Fowler, 2014.
- Building Microservices — Sam Newman, 2021.
- Microservice Patterns — Chris Richardson, 2024. Catálogo de patrones de microservicios.