決済周りの状態管理、恐怖心の方が強くて無意識に忌避してたきらいがあるけど、こうして丁寧に設計・実装してその例を共有してもらえると「おもしろそう!自分も挑戦してみようかな☺️」の気持ちになれますね💪 #kaigionrails
2022-10-21 14:19:47@sugi511 B/43の場合は入金する口座のレコードをロックしつつ、外部サービス側のIDで重複チェックしてます。高速で送られてもロックで排他制御できるので守りきれないことは今の所ないですね。
2022-10-21 14:30:25webhookで送られてきたもので、高速で2回送られてくると冪等性を守りきれなくなったりするんだけど、そこらへんはどうしてるんだろうか(うちは、防ぎきれないから検知できるように送られてきたリクエストをガンガン保存して外部サービス側のIDとかで検知している) #kaigionrails
2022-10-21 14:18:30Kaigi on Rails2022のスポンサーブース(Room2)を出しています。 本日休憩時間の 14:40 〜 15:10 16:50 〜 17:20 に弊社開発チームの「ここがスゴイ!」というテーマで LTをしたいと思います! ぜひお気軽にお立ち寄りください #kaigionrails
2022-10-21 14:18:15DBのトランザクション内でDBにアクセスする以外のことをやるのはやめようねという普通の話ではあるのよね。 #kaigionrails
2022-10-21 14:18:13実際には決済プロバイダによって細かい違いが入ってきているはずなので、逆にここまで処理を共通化・抽象化して分類した上で実装までノウハウ共有してくれるのは貴重だな #kaigionrails
2022-10-21 14:17:51決済周りのフローメルペイさんの事例もすごい参考になった記憶 engineering.mercari.com/blog/entry/201… #kaigionrails
2022-10-21 14:16:24テーブル設計もかなり具体的に共有してくれるの、すごくありがたい( ˘ω˘) 実務やらないとなかなか目にすることができない情報なので( ˘ω˘) #kaigionrails
2022-10-21 14:12:32deposit_requestsのように非同期処理を挟む一連のライフサイクルにstatus持たせるのは、Stripeのpayment_intentsに代表されるように僕もよくやるパターン stripe.com/docs/api/payme… #kaigionrails
2022-10-21 14:11:45