The most popular and comprehensive Open Source ECM platform
Traditionally applications have been developed as monoliths. The code is a single code base running on a single server. But as the code base grows, apps designed as monoliths typically become difficult to maintain and develop new features for.
Microservices offers an alternative to the monolithic approach. Large apps are decomposed into many smaller services, and each service is much smaller which makes it easier to understand, to develop for, and to maintain. Advantages are that it makes it possible to scale parts of the app that are more frequently stressed and makes continuous deployment of complex applications easier to do.
Some of the largest Internet businesses have moved their operations to microservices with great success. These include Netflix, eBay, Amazon, Uber, and Etsy.
But there are drawbacks to microservices, and before jumping in, you really need to understand when microservices make sense and alternatively you need to understand when they can actually make development and maintenance more challenging.
Gaurang Torvekar, CEO of Indorse, wrote that “ultimately, microservices are an architectural pattern to reduce complexity. It does this, but it also adds complexity elsewhere. If used in isolation, then you’ll fix your complexity in one dimension and have it proliferate elsewhere. So, it is vital that you use the many other tools out there to minimize complexity across the entire organization.”