2019/06/07 16:04
koemu
隣に座る同僚の渾身のエントリです
2019/06/07 16:12
escape_artist
大作なので読もう
2019/06/07 16:15
sotarok
これが公開されるのしゅごいとおもうの!!
2019/06/07 16:19
khigashigashi
この知見の公開はめっちゃすごいな
2019/06/07 16:19
hide-K
メルペイの決済基盤におけるマイクロサービスアーキテクチャ下でのトランザクション管理の話。超大作!
2019/06/07 16:35
u_tis
マイクロサービス間トランザクション管理の中でも最難関の知見じゃん...
2019/06/07 16:46
Nfm4yxnW8
いい
2019/06/07 17:05
y_uuki
おもしろい。UpperServiceからみて書き込みが非同期でいいなら,メッセージブローカーを挟んで一旦ジョブを永続化させて、冪等化された各決済処理を成功するまでリトライさせるだけで、ロールバック処理はいらなくなるか
2019/06/07 17:37
tsuwatch
知見だ…
2019/06/07 17:39
hirorinya
あれ、この前もこの記事なかった?
2019/06/07 17:41
SHARUL
冪等性とリトライで結果整合というのはやはり現時点でのベストプラクティスなのかな / Tryで仮押さえするところがポイントなのかな。ちゃんと勉強しよ。
2019/06/07 18:00
yuitang
この知見公開されるのすごい...!!
2019/06/07 18:04
kwhrtsk
分散トランザクションをアプリケーションレイヤーで実現するフレームワーク的なものは見た事がないなあ。
2019/06/07 18:09
w1234567
みんな結局同じこと考えるよね、ここまで考えずに迂闊にマイクロサービスやらシステム間連携に手を出して手動でロールバックするイケてないシステムが世の中には腐るほどあるので公開してくれたことに感謝
2019/06/07 18:09
send
これはいい記事
2019/06/07 18:33
shinagaki
決済サービスの設計は胃が痛くなりそ
2019/06/07 18:37
jnst
優秀な人材を大量投入して実装&テストできる企業規模じゃないと大変そうだ。TCCパターンじゃなくてSagaパターンの実例も見てみたい
2019/06/07 19:03
takatoshiono
あとでゆっくり読もう
2019/06/07 19:30
onefootinthegrave
やっぱマイクロサービス化は何処でもやるもんじゃないなあ。
2019/06/07 19:53
looondooon
よくわからんけどすごい
2019/06/07 20:01
p_tan
分散トランザクションの解説とメルペイでの解決実例まとめ。知見の塊。 補償トランザクションの話を見るたびに、その補償トランザクションがまた失敗したらどうなるのかいつも気になる。
2019/06/07 20:02
shoh8
決済トランザクションのマイクロサービス化、理解したいけど触りたくはない
2019/06/07 20:08
daishi_n
日経新聞で記事に上がったマイクロサービスだけど、ACIDトランザクションと相性が悪いので、トランザクションモニタの開発に手間がかかるんだよね。ステートマシンの話は多分アラン・チューリングじゃね?
2019/06/07 20:24
nyop
とても楽しいトランザクション管理のお話。IF関連の検討時は頭の中でいつもこんなこと考えてる。本質的には20年近く何も変わらない。
2019/06/07 20:48
GARAPON
めちゃためになる!
2019/06/07 21:10
naari_3
トランザクションの話、出来ればやりたくない、、、
2019/06/07 21:40
Bryntsalov
こりゃ大変だ
2019/06/07 21:50
sezemi
分散システム、とにかく強くないとできない
2019/06/07 22:08
gabill
うわー大変そう。仮にモノリシックで完結しようにも、外部連携が絡むと結局この問題はつきまとうし、ちゃんと実装しても「Try成功したって言ったじゃないですか〜」と泣く事態が起きそうで、とにかく大変そう。
2019/06/07 22:19
lizy
2相コミットを結果整合性に緩めて性能を優先したトランザクションモニタ?
2019/06/07 22:42
lambdalisue
力作だ。勉強になる。
2019/06/07 22:48
otihateten3510
難しいんだけど(我儘) /マイクロサービスとトランザクションって聞いたら頭痛くなるのは流石にわかる
2019/06/07 23:49
takezaki
“ロールバックするための補償トランザクション処理もステートマシンで管理して、必要に応じて実行して決済処理の整合性を担保しています”
2019/06/07 23:59
hirorock
決済処理 すごい
2019/06/08 00:05
a20130517
保存版
2019/06/08 00:11
kibitaki
メルカリは置いといて、メルペイさん偉いな、って思った。XAは検討では上げるけど採用事例に携わったことがないのでユーロファイター扱いした。そしてポイントなんて重視されない時代だった。
2019/06/08 00:52
pro_shunsuke
わかりみのかまたり
2019/06/08 00:58
wataru3878
良記事
2019/06/08 01:01
munioka303
ここまで大変でもマイクロサービスはこのさき流行る んだよね?「やっぱ辛い」つって結局大して続かないとかないよね?ブラックボックスがモリモリ出来上がってる感じするけど
2019/06/08 01:01
takamii228
トランザクション難しい
2019/06/08 01:06
abracadabra321
昔からある話。何も変わらず。
2019/06/08 01:06
nekoruri
どっかの偉い人が、世界のすべてはステートマシンだ見たいなこと言ってた気がするけど出典が思い出せない……
2019/06/08 01:11
tekimen
すごい
2019/06/08 01:16
masatomo-m
マイクロサービスに関係なくクリティカルなトランザクション処理に必要な要素がいい感じにシナリオベースで解説されててめっちゃ良い。社内勉強会で詳細解説とかしようかな
2019/06/08 01:46
tettekete37564
この辺大手はどうやってるのかすげー気になってた技術的課題。後で読んでおこう
2019/06/08 01:51
kksg
ありがたい…
2019/06/08 02:11
rti7743
課金で大切なのはログを消さずに追記だけにすることかなあ。与信->確信と課金ログを追記で記録する。失敗したらロールバックできないならアラートあげて人間が対応。この時ログが追記でなければ無理だからね。
2019/06/08 02:54
onesplat
Fault Injection Testingの具体的な手法が知りたかった
2019/06/08 03:24
rutebozu
全然読み切れてないけど、マイクロサービスのトランザクション処理は、実装もテストも大変そうなのは理解できた・・・。
2019/06/08 04:41
yomik
これはすごい資料
2019/06/08 05:29
digo
マイクロサービスってトランザクションどーすんだろってずっと思ってたので有難い
2019/06/08 09:14
jumpeim37
これはいい記事
2019/06/08 09:16
shifumin
マイクロサービスでトランザクション管理するのが大変なことだけわかった。
2019/06/08 10:10
kai_kou
参考になるー
2019/06/08 11:16
nghrk
マイクロサービスは人類には早すぎたんだよ。トランザクション管理は人ができないから永続化層に任せたのに、ビジネスロジックで意識しないといけないのは地獄。
2019/06/08 11:28
suzx
#メモ保存
2019/06/08 11:47
tkmkg8m
マイクロサービスにするならこのへんもちゃんと考えてやらないといかんよね
2019/06/08 11:47
stp7
そもそも決済トランザクションが複雑すぎるんだよなあ。
2019/06/08 12:14
t_f_m
あとで
2019/06/08 12:21
june29
自分のところのシステムが Microservices じゃないとしても、外部の決済サービスを利用していたりしたら考えることになる話。ありがたい知見。
2019/06/08 12:43
krrrr
うちもほとんど同じ
2019/06/08 13:56
t-cyrill
ホントこれ
2019/06/08 14:58
masatotoro
決済のトランザクション管理
2019/06/08 15:48
Chisei
これ見ておかないとな。
2019/06/08 16:40
nmcli
けっきょく根っこの所はマイクロサービスかどうかに関係なく結構ベーシックなこと説いている印象を持った
2019/06/08 16:52
yhanada00
専門分野じゃないけれども、実体験を細かく書いていくれているのはとても勉強になる。XAって1980年代からあるみたいだけど、実際に今でもメジャーなんだろうか。
2019/06/08 17:22
uzulla
リトライ周りの知見(間隔や、ギブアップ回数等)と、現実は厳しいので冪等性の工夫をもってしても成功が帰らない時とかの整合性を保ちつつオペレーションする(ために、検知や追いかけるログ等の)話も聞きたい…。
2019/06/08 18:08
NOV1975
こういうのわからなかったり無視したりして作られてる決済サービスがたくさんある予感はしてる。あと、この話の本題はパフォーマンスなんだよ?
2019/06/09 08:17
tikkss
めちゃめちゃ良い話
2019/06/09 22:03
masaru_b_cl
知見の塊だったので、紹介されているパターンなど含めてよく噛み締めたい
2019/06/09 22:03
efcl
決算トランザクション管理。 CAP定理とBASE、分散システムについて
2019/06/10 02:49
endok
マイクロサービスって整合性担保大変そうだなぁと思ったらほんとに大変だった。外部サービス連携するならどちらにせよ避けて通れないが。
2019/06/10 11:34
tacke_jp
Fault Injection Testingの実例の記事も是非。
2019/06/10 14:11
t-wada
XAトランザクションに頼れない状況下において分散トランザクション管理を行う際の知見が詰まっている。決済系をマイクロサービスに入れるということはこれを自前でやる覚悟が必要であるということ。
2019/06/10 17:09
ono_matope
いい
2019/06/10 21:15
dskst9
すごいいい記事
2019/06/11 13:05
igrep
ありがたや。こういうのの設計を検証するのにも形式手法が使えるんだろうなぁ。
2019/06/11 15:02
at_yasu
あとで読む。今読んでも脳みそが全然追いつかん。
2019/06/11 16:19
murashit
古式ゆかしい話だ