Over the years, applications can keep growing, as features get added, to the point that they become quite difficult to manage, and any new change requires a lot of resources both time and people to make that change.
The standard design pattern of choice seems to be a monolithic architecture where the components are all one deployable unit for example with Enterprise Java you could have a single war or ear file. There is good tooling support, it is easy to code, build and deploy. However, if you need to make even a small change you build/deploy entire application. It’s harder to scale and maintain, particularly as technologies evolve.
So here is where Microservice architecture comes in, which by definition is a method for developing smaller, modular, light weight, independently deployable services, which provide communication through a well defined API. They can be developed and deployed independently, and the technology can updated easily as they are smaller. One of the issue with having multiple services make up an application means synchronizing and managing the flow of data, and configuration/deployment is more complicated.
Azure Service Fabric is a distributed systems platform that makes it easy to package, deploy, and manage scalable and reliable microservices. RESTful services with JSON data-interchange format, allow the development of the services.