Characteristics of Microservices
Componentization and Service Orientation
When refactoring toward microservices, componentization and service orientation are among the usual approaches.
Pull common logic out and provide a shared SDK or API that encapsulates all the implementation logic and methods. Other services just use these components and services.
This is also a process of achieving cohesion.
Loose Coupling
Through continuous componentization and service orientation, each service becomes cohesive around the functionality it plans for.
Services are independent of one another with no hard dependencies. They can interact through APIs, RPC, databases, or message queues, which avoids one service crashing and triggering a chain reaction in others.
Decentralization
Different services provide different functionality, so the traffic of the whole system is distributed across the sub-services and there is no central node as in traditional architectures.
Services communicate directly with one another, and the whole topology appears as a mesh.
Fast, Agile Releases
Releasing one service takes far less time than releasing a whole application. A single service is easy to deploy and easy to roll back, with a low failure rate.
More Freedom in Technology
You can choose the implementation approach you need on your own terms.