前面老师讲到券商系统难点就是面试官可能会challenge每一步失败/超时了怎么办,比如reserve 账户的钱后提交一个order到orderservice超时
后面讲了saga pattern都是说失败了就compensate (undo),不太懂如果超时了saga会帮忙重试还是算失败,还是说这个saga实际上是一个框架,具体实现我们根据use case定?
Saga 是一个 Pattern。我们当然可以根据实际情况调整。根据课上提的做法,在向外部交易所发出请求前失败就 undo。在这里重试是不好的,因为可能会重复发送 order,重试了就不能保证 exact once 了。