
What makes a good service?
Before microservices were conceptualized, whenever we thought of enterprise application integration, middleware looked like the most feasible option. Software vendors offered Enterprise Service Bus (ESB), and it was one of the options as middleware.
Besides considering these solutions, our main priority should be inclined toward the architectural features. When microservices arrived, middleware was no more a consideration. Rather, the focus shifted to contemplation on business problems and how to tackle those problems with the help of the architecture.
In order to make a service that can be used and maintained easily by developers and users, it would require the service to have the following features (we can also consider these as characteristics of good services):
- Standard data formats: Good services should follow standardized data formats while exchanging with other components, services, or systems. The most popular data formats, also mostly used, in the .NET stack are XML and JSON.
- Standard communication protocol: Good services should obey standard communication formats, such as SOAP and REST.
- Loose coupling: One of the most important characteristics of a good service is that it follows loose coupling. When services are loosely coupled, we don't have to worry about changes. Changes in one service would not impact other services.