Microservices is an architectural pattern that enables teams to work independently and in parallel, on delivering capabilities that are functionally distinct. Reduced dependency among teams enables higher velocity in rolling out features, thereby leading to faster time-to-market.
Each team makes technology choices based on what suits them depending upon factors like fitment for the purpose, the team’s skill set, and several others. Thus, multiple technology stacks are fairly common in a microservices architecture. This brings challenges in intercommunication among services.