Microservicios
DistributedArchitecture where the application is divided into small, independent services
Principles
Single responsibility per serviceIndependent deploymentData decentralizationDesign for failure
When to use
Large teams, need to scale independently, tolerance for operational complexity
When not to use
Small teams, MVPs, simple applications, lack of DevOps experience
Pros and Cons
Ventajas
- + Independent scalability per service
- + Teams can work autonomously
- + Technological flexibility (polyglot)
- + Smaller and more frequent deployments
- + Fault isolation
Desventajas
- - High operational complexity
- - Network latency between services
- - More difficult debugging and tracing
- - Eventual consistency vs transactional
- - Requires mature DevOps