I have 2 microservices `S1` and `S2`. `S1` invokes `S2` to update a data and then `S1` inserts another data,But let's consider `S1` fails,Then we need to rollback the data updated by `S2` or else we'll be in inconsistent state.

I also gone through Saga patterns.will it satisfy this inconsistency

Can anyone suggest any better solutions for this?