イベント駆動を採用した注文をキャンセルのフロー
Order
Y!shopping
link
Merchant
link
Delivery
Y!shopping
Actor
User
cancel
Merchant
Delivery
Slide 39
Slide 39 text
REST APIによる同期的なアーキテクチャを採用した場合、リクエストする側が主体となって処理を
進めなければいけない。
Order
Y!shopping
link
Merchant
link
Delivery
Y!shopping
Actor
User
cancel
Merchant
Delivery
API call
API call
API call
- Apiを呼び出す順番
- Api callのエラーハンドリング
Slide 40
Slide 40 text
Event Sourcingを採用にすることでサービスの依存関係を逆転し疎結合にすることができた。
Order
Y!shopping
link
Merchant
link
Delivery
Y!shopping
Actor
User
cancel
Merchant
Delivery
produce
consume
Queue
consume
consume
protobufでIF定義
Slide 41
Slide 41 text
決済失敗による結果整合性も補償トランザクションでシンプルに実装できた。
Order
Y!shopping
link
Merchant
link
Delivery
Y!shopping
User
Merchant
Delivery
error
consume
Queue
consume
決済失敗
consume
produce