Recently I was trying to understand how a micro-services based system was designed by looking at the source code. The code was developed more or less recently in a company for an application that provided web access for customers.
It was a service in Kotlin calling a service in Scala, which in turn was calling a service in Groovy, which was calling a service in Java…. At that point I lost the will to go any further.
On each step one needed to figure out which other service is called (this is not easy if you have a lot of different services and very limited documentation) and then to try to switch to a different language and a different frameworks with different conventions (e.g. where a controller to be found etc.).
Unfortunately I have a very strong suspicion that this madness is there to stay. The problem is that micro-service architecture gives developers a chance to write software from scratch (something many people, who have never done it before, would love to do and who usually do it awfully due to lack of previous experience) and it gives an excuse to learn a new programming language while been paid by the employer to do it.