Transactions becomes complex in Microservices based system. This is because data owned by each Microservice is private to that Microservice and can only be accessed by the API exposed by the service. There is added complexity in Microservice based systems due to their polyglot persistence approach.
Although a partitioned and polyglot-persistent architecture has several benefits, this makes implementing transactions difficult:
Compensating transaction (Problem)