SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Developers Summit 2025 Summer セッションレポート

巨大決済基盤の技術的負債にどう立ち向かうか──DMMが実践した段階的移行戦略

【17-B-5】DMMを支える決済基盤の技術的負債にどう立ち向かうか

複雑性を構造化し、堅牢なアーキテクチャへ刷新する

 巨大な決済基盤を止めることなく刷新するには、新技術の導入そのものよりも、まず複雑性を制御可能な構造へ落とし込むことが不可欠となる。藤井氏はこの前提を強調したうえで、レガシーシステムの段階的モダナイズに有効なアプローチとして「ストラングラーフィグパターン」を紹介した。

 ストラングラーフィグパターンは、旧システムをいきなり置き換えるのではなく、既存機能の周縁に新システムを段階的に生やし、最終的に置き換えていく手法だ。「気づけば全体がモダンシステムに切り替わっている」という表現が示すように、リスクの高いビッグバン移行を避けられ、事業継続性の観点でも極めて合理的な戦略だと言える。

 さらに藤井氏は、このパターンを実践する際に欠かせない要素としてADR(Architecture Decision Record:アーキテクチャに関わる判断とその理由を記録する手法)を挙げる。なぜその方式を採用したのか、どの領域をどの順番で移行するのかといった意思決定を文書化し、関係者間で合意を形成することこそが、大規模リプレースの混乱を抑える鍵になるという。

 実装技術の選定については、藤井氏は特に購入処理領域の刷新で採用したアーキテクチャについて語った。DMM決済基盤が抱える購入処理は、注文確保・在庫確認・課金・承認といった複数工程から成り、工程間で「成功」と「失敗」が段階的に積み重なる性質を持つ。そして実務では、後続システムの障害やネットワーク切断などによって途中状態が失われ、ロールバックも安全に実行できず、ワークフローが破綻するという問題が頻発していた。これが、決済基盤の堅牢性を蝕む代表的なボトルネックだったのである。

 この構造的課題に対し、藤井氏が選択したのがTemporalとCQRS&Event Sourcing(ES)を組み合わせたアーキテクチャだ。ESにより状態変化をイベントとして永続化し、CQRSで読み書きを分離して独立性を確保することで、障害時には処理の巻き戻しや部分的再実行を安全に行える。さらにTemporalのワークフロー管理は、長期実行処理の安定性を担保しつつ、購入処理に見られる段階的な成功・失敗という性質にも対応できる。「両者の相性は非常に良い」と藤井氏は説明する。

購入処理が持つ段階的な成功・失敗の性質に対し、TemporalとCQRS & Event Sourcingを組み合わせる判断に至ったという
購入処理が持つ段階的な成功・失敗の性質に対し、TemporalとCQRS & Event Sourcingを組み合わせる判断に至ったという

 検討過程ではアクターモデル(状態と振る舞いを持つアクター同士が非同期メッセージで協調する並行処理モデル)も候補に挙がったというが、理論的な理想だけでなく、現実的な採用可能性を含めて比較した結果、Temporalが最適解と判断された。巨大基盤の刷新では、技術選定そのものがアーキテクチャの思想を体現する。

次のページ
段階的移行とスモールチームが切り拓く未来

この記事は参考になりましたか?

Developers Summit 2025 Summer セッションレポート連載記事一覧

もっと読む

この記事の著者

水無瀬 あずさ(ミナセ アズサ)

 現役エンジニア兼フリーランスライター。PHPで社内開発を行う傍ら、オウンドメディアコンテンツを執筆しています。得意ジャンルはIT・転職・教育。個人ゲーム開発に興味があり、最近になってUnity(C#)の勉強を始めました。おでんのコンニャクが主役のゲームを作るのが目標です。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

丸毛 透(マルモ トオル)

インタビュー(人物)、ポートレート、商品撮影、料理写真をWeb雑誌中心に活動。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/22745 2026/01/27 11:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング