In an earlier blog, I spoke about how the microservices style for building software architecture adopts a distributed approach.
This allows for each service (or function) of the software to be highly independent, to have a specific business boundary or a defined context, be capable of managing its own data, and leverage different storing mechanisms.
Microservices architecture allows the software to be authored in different programming languages and maintained by disparate teams, building on a decentralizing approach much inspired by nature.
Over the past few years, microservices have become a popular choice for building large enterprise systems for its obvious benefits including flexibility and rapid scalability.