Developers are beginning to embrace a new approach to developing applications and web apps: microservices architectures. Their applications are made up of many small components/services that communicate with each other via Rest APIs. This is yet another attempt to decompose application complexity. In past we had solutions such as Service Oriented Architecture, CORBA Architecture and so on.
Leveraging microservices is definitely a good approach to bring order and simplicity to complex solutions. Be careful, however. Examples such as Netflix using this approach and ending up with over 1,600 microservices are plentiful.
Decompose the problem to the level that make sense and provide a benefit to the company in areas of faster and simpler deployments, maintainability of the solutions, extensibility and frequency of production updates, which at the end of the day helps enable continuous delivery and agile development methodologies.
Lastly, it is worth mentioning that building reusable service components enables us to build our technology ecosystem that serves the needs of business or our clients.