Arquitectura donde una aplicación está dividida en pequeños servicios independientes.
Pueden desarrollarse, desplegarse y escalarse de manera autónoma. Cada servicio tiene su propia base de datos y responsabilidad.
// Arquitectura de microservicios // Monolito vs Microservicios // Monolito: una app grande con todo junto // Microservicios: múltiples apps pequeñas // Ejemplo: E-commerce // ┌─────────────────┐ // │ API Gateway │ // └────────┬────────┘ // │ // ┌──────┼──────┐ // │ │ │ // ▼ ▼ ▼ // Users Orders Products // │ │ │ // ▼ ▼ ▼ // [DB] [DB] [DB] // docker-compose.yml version: '3.8' services: api-gateway: build: ./gateway ports: ["80:80"] users-service: build: ./services/users environment: DATABASE_URL: postgres://users-db:5432/users orders-service: build: ./services/orders environment: DATABASE_URL: postgres://orders-db:5432/orders products-service: build: ./services/products // Comunicación entre servicios // - HTTP/REST // - gRPC // - Mensajería (RabbitMQ, Kafka)