Microservices: Is It Worth the Trouble? | HackerNoon
Briefly

Microservices represent a software development approach that breaks functionality into independent components, each with its own API, potentially using different programming languages and databases. This architecture increases overhead for network, memory, and CPU as serialization and data transmission are necessary for each service call. Issues arise with debugging and transaction management, as traditional transactions cannot be applied, leading to distributed transactions that are costly and slow, or eventual consistency that results in temporary data inconsistencies. Proper logging and tracing systems are critical for effective debugging in microservice architecture.
Microservices are an approach to software development where functionality is broken down into the smallest possible components, each of which operates independently with its own API.
The use of microservices introduces significant overhead in terms of network, memory, and CPU, with each call requiring serialization and data transfer over the network.
Distributed transactions are slow and expensive, while eventual consistency means operations' results may not appear immediately, leading to temporary data inconsistency.
Debugging becomes much more difficult with microservices since a standard debugger is almost useless; without a proper logging, tracing, and metrics setup, localization of problems is nearly impossible.
Read at Hackernoon
[
|
]