Cliff Berg
Oct 30, 2020

--

The coupling issue applies to any kind of component, even if it is linked in the same runtime.

The elephant in the room with microservices is abandonment of transactional integrity. Each microservice has its own database. Thus, if a service calls other services, and something goes wrong, there is no global transaction to abort. Instead, one must write code to clean up committed artifacts. If one uses events instead of calls, the same issue applies: one must broadcast a failure event and handle that.

The problem is, each service is designed as a self contained program, so there is no overall program code tying all this together. As a result, the design is fragmented - it is in the heads of the designers.

And by the way, unit tests help little with any of this, because the challenge is in the integration and time dependent behavior of many separate runtimes.

--

--

Cliff Berg
Cliff Berg

Written by Cliff Berg

Author and leadership consultant, IT entrepreneur, physicist — LinkedIn profile: https://www.linkedin.com/in/cliffberg/

No responses yet