Hi, Pack Team
Currently, Alpha compensation mechanism has some defects [1], I plan to
solve this problem step by step [2]
Step1: Modify the OnConnected method to bidirectional streaming RPC
This will be needed for the Step2
Step2: Custom compensation exception rules to distinguish between business
compensation exceptions and framework compensation exceptions for FSM.
After calling the compensation method, Alpha needs to wait for
Omega to send a compensation result message. The message type is as follows:
Successful compensation:
Business compensation failure:business code throws an exception,
Do not switch Omega instance and retry(Retry rule is implemented in the
Step3)
Omega compensation failure: omega code throws an exception,
switch other Omega instance and retry(Retry rule is implemented in the
Step3)
Step3. Added retry and timeout rule to compensate for failures
Exceeded the number of retries or timeout will change state to
suspended
Any Suggestion?
[1] https://github.com/apache/servicecomb-pack/issues/590
[2] https://github.com/apache/servicecomb-pack/pull/607
Best regards,
Lei Zhang