Hi, all
I have faced some HA issue when implementing TCC workflow, this is our design
document [1].
HA issue is following.
1. Omega finished try logic, but sending participate event failed, how about
the retry mechanisms should we design?
2. Omega finished try logic, but sending participate event failed, should omega
invoke cancel method automatically?
3. Omega finished try logic, alpha received participate event and persistence
success, but sending ACK to omega failed,
should alpha do rollback automatically, when omega received failed
feedback, also invoke cancel method automatically?
4. When sending TCCEnd event to alpha failed, how about alpha do compensation
recovery?
Maybe event scanner is necessary for this scenario to do recovery, but we
need to do detail design for this.
5. If we introduce event scanner, how to handle concurrency from TCCEnd
command?
Please feel free to give some advices.
[1]
https://github.com/apache/incubator-servicecomb-saga/blob/master/docs/design.md#workflow-tcc
<https://github.com/apache/incubator-servicecomb-saga/blob/master/docs/design.md#workflow-tcc>
Best Wishes & Regards