En una empresa anterior, el jefe de ingeniería y los ingenieros principales decidieron dividir nuestra aplicación de Ruby on Rails en una malla de microservicios en Go. Crearon documentos de diseño y diagramas de arquitectura muy detallados. Se esforzaron al máximo y utilizaron Kubernetes, gRPC, plantillas de servicio, todo el paquete. Todo el liderazgo senior de ingeniería provenía de Amazon, donde estaban acostumbrados a que cada equipo fuera dueño de un servicio distinto. Intentaron aplicar ese modelo directamente. Pero nuestros problemas estaban relacionados con la propiedad del código y un mal modelado de dominio. Toda la aplicación podría haber funcionado en solo un puñado de instancias de EC2. ¿Cuál fue el resultado? Cinco años después, el 70% de la aplicación sigue funcionando en el monolito de Ruby on Rails. Nunca se completó la migración. Pero ahora tienen que mantener dos sistemas. Ninguno de los líderes originales trabaja allí ya.