W poprzedniej firmie szef inżynierii i główni inżynierowie postanowili podzielić naszą aplikację Ruby on Rails na siatkę mikroserwisów w Go.
Stworzyli bardzo szczegółowe dokumenty projektowe i diagramy architektury. Poszli na całość i użyli Kubernetes, gRPC, szablonów usług, całego zestawu.
Całe kierownictwo inżynieryjne pochodziło z Amazona, gdzie przyzwyczajeni byli do tego, że każdy zespół posiadał odrębną usługę. Próbowali zastosować ten model bezpośrednio. Ale nasze problemy dotyczyły własności kodu i słabego modelowania domeny.
Cała aplikacja mogła działać na zaledwie kilku instancjach EC2.
Jaki był wynik?
Pięć lat później 70% aplikacji nadal działa na monolicie Ruby on Rails. Nigdy nie zakończono migracji. Ale teraz muszą utrzymywać dwa systemy.
Żaden z pierwotnych liderów już tam nie pracuje.