In una precedente azienda, il responsabile dell'ingegneria e gli ingegneri principali decisero di suddividere la nostra applicazione Ruby on Rails in una rete di microservizi Go. Hanno creato documenti di design e diagrammi architetturali molto dettagliati. Hanno dato il massimo e hanno utilizzato Kubernetes, gRPC, modelli di servizio, tutto il necessario. Tutta la leadership ingegneristica senior proveniva da Amazon, dove erano abituati a ogni team che possedeva un servizio distinto. Hanno cercato di applicare direttamente quel modello. Ma i nostri problemi riguardavano la proprietà del codice e una scarsa modellazione del dominio. L'intera applicazione avrebbe potuto funzionare su solo un pugno di istanze EC2. Qual è stato il risultato? Cinque anni dopo, il 70% dell'applicazione è ancora in esecuzione sul monolite Ruby on Rails. La migrazione non è mai stata completata. Ma ora devono mantenere due sistemi. Nessuno dei leader originali lavora più lì.