Stripeの決済は見えないところで何度も試みている 〜リトライロジックの美学〜

配信ステータス:済 配信URLhttps://art19.com/shows/kkeethengineers/episodes/156c1da2-0a61-4bed-b375-1f72c7ef0e62

台本

オープニング

【ジングル】 はい、どうもこんにちは。「雨宿りとWEBの小噺」、始まりました。Keethこと桑原です。 この番組では、Webテクノロジーの歴史や裏側にある、ちょっとした小噺を紹介しています。 今回のお題はですね、「Stripeの決済は見えないところで何度も試みている〜リトライロジックの美学〜」。まぁ聞いてってください。

本題

  • つかみ

    • サブスク更新日に残高足りなかったのに、気づいたら継続してた経験ない?
    • あれ、Stripeがこっそりリトライしてる
  • 基本の仕組み

    • デフォルトで最大3回リトライ=合計4回試行
    • 「3回リトライ」は3回に聞こえるが初回失敗を含めると4回、これ意外と知られてない
    • 失敗するとwebhookで通知が飛ぶ(開発者向けの話)
  • Smart Retries(ここが面白い)

    • ただ一定間隔で再試行してるわけじゃない
    • 数十億件のトランザクションで学習したMLモデルがタイミングを判断
    • 深夜2時の失敗→翌朝10時に再試行する方が成功率高い(残高が回復してる)
    • 考慮してる要素:時間帯・曜日・月のどの週・顧客とビジネスの地域・カードの過去の成功率
    • デフォルトは2週間以内に最大8回
  • 開発者目線のリトライ設計の話(小噺)

    • リトライの基本思想はExponential Backoff(指数バックオフ)
    • 100ms→200ms→400ms→と間隔を伸ばす
    • さらにJitter(ランダムな揺らぎ)を加えてリクエストの集中を防ぐ
    • Stripeはこれを決済というシビアな文脈でMLと組み合わせてる
  • 美学の話(締め)

    • このリトライ、ユーザーには完全に見えない
    • 失敗してる、でも諦めない、静かに試み続ける
    • 「失敗しないように作る」じゃなくて「失敗しても回復できるように作る」という設計思想
    • Stripeの調査:リトライで回収した顧客はその後平均7ヶ月継続=新規顧客獲得と同じ価値

エンディング

【ジングル】 さて、そろそろ今回もお時間です。 面白かったよーという方は、ぜひチャンネル登録もお願いします。話してほしいトピックや感想は、概要欄のフォームか 𝕏 で「WEB 小噺」でつぶやいてください。web はアルファベット、「小噺」は漢字でもひらがなでも大丈夫です! それでは、また雨宿りしに来てください。お相手は Keeth でした。さようなら! 【ジングル】

📚 参考情報

🎙️ 収録メモ

  • トーン
    • 冒頭:あるあるネタで共感を誘う
    • 仕組みの説明:軽快に、豆知識として
    • 美学の話:しみじみ、少し詩的に
  • 強調ポイント
    • 「3回リトライ=合計4回試行」という意外と知られていない事実
    • MLモデルがタイミングを判断する「Smart Retries」
    • 「失敗しても回復できるように作る」という設計思想
    • 合計:約6〜8分
    • オープニング:30秒
    • 本編:5〜7分
    • クロージング:30秒
  • タグ
    • Stripe #決済 #リトライ #ExponentialBackoff #MLモデル #Web歴史 #エンジニア雑学

results matching ""

    No results matching ""