En una empresa anterior, el jefe de ingeniería y los ingenieros principales decidieron dividir nuestra aplicación Ruby on Rails en una malla de microservicios Go.
Crearon documentos de diseño y diagramas de arquitectura muy detallados. Hicieron todo lo posible y usaron Kubernetes, gRPC, plantillas de servicio, todo el asunto.
Todo el liderazgo senior de ingeniería provenía de Amazon, donde estaban acostumbrados a que cada equipo poseyera un servicio distinto. Intentaron aplicar ese modelo directamente. Pero nuestros problemas eran con la propiedad del código y el modelado de dominio deficiente.
Toda la aplicación podría haberse ejecutado en solo un puñado de instancias EC2.
¿Cuál fue el resultado?
Cinco años después, el 70% de la aplicación todavía se ejecuta en el monolito Ruby on Rails. Nunca completó la migración. Pero ahora tienen que mantener dos sistemas.
Ninguno de los líderes originales trabaja allí.