
2026/06/16 7:36
アメリカン・エキスプレス:回復性決済システムのためのセルベースアーキテクチャ
RSS: https://news.ycombinator.com/rss
要約▶
日本語訳:
American Express は、2018 年以来、その決済エコシステムを、アーキテクチャに直接リゼリアンス(回復力)を組み込むことで強化し、取引の失敗がシステム全体に影響を与えることを極めて稀にするようにしています。核心となる革新は、「セルベース」設計であり、これはマイクロサービスとデータベースを特定の地域内で複数エリアにまたがることなく、それぞれが一つの障害ドメインとして機能するように、孤立した単位である「セル」にグループ化したものです。このアプローチは、不安定なモノリシック構造を、数百万件の日次ライブ取引を確実に処理する堅牢で自律的なインスタンスに置き換えます。速度の向上と隔離の確保のため、同期的ルックアップを避けるために静的データは事前に複製され、動的データについては Global Transaction Router が決定論的ルーティングを使用して、権威のあるデータを保持するセルへのトラフィックを誘導します。ログ記録などのクリティカルパス依存関係は非同期に保たれ、ブロッキングを防ぎます。また、安全な再試行のために一意の識別子を通じて冪等性を維持しています。システムには、不安定になっているセルを漸次的にドレインして健康なセルへトラフィックをシフトさせるインテリジェントなトラフィックシフティングのメカニズムが含まれており、これにより急激な障害なしに処理が行われます。ただし、このリゼリアンスには限界があり、取引が外部システム(例:カード発行会社)に到達した時点で、「戻れない点」に達し、それ以降はルーティングの変更が不可能となります。最終的に、この戦略はエラーを局所的境界内に収容することで安定したユーザー体験を保証し、要求の厳しい金融環境でハイアベイラビリティシステムを拡張するための実証済みブループリントを提供します。
本文
アメリカン・エキスプレス コアペイメントズエコシステム:アーキテクチャと設計原則
アメリカン・エキスプレスのコアペイメントズエコシステムに関する概要とアーキテクチャを以下に整理しました。グローバルプラットフォームとして、世界中の会員およびパートナー企業が依存する決済インフラであり、日常処理されるリアルタイム取引には高可用性、低レイテンシー、そして予測可能なパフォーマンスが要求されます。
本ドキュメントでは、このシステムで採用されているセルベース型アーキテクチャの原理と実装詳細について解説します。
エコシステムの概要と歴史的背景
システムの要件と目的
- ミッション: リアルタイムのカード取引および決済処理をグローバル規模で実施。
- 主要な要件:
- 高可用性: システム全体が常に稼働していること。
- 低レイテンシー: 取引の即応性が高いこと。
- 予測可能なパフォーマンス: ワークロード変動に強く、遅延が発生しないこと。
- 故障へのアプローチ:
- 耐障害性は事後追加の要素ではなく、システムの設計最初心臓部より埋め込まれている。
- 故障は定義された境界内に厳密に隔離され、復旧は迅速かつ予測可能に設計されている。
アーキテクチャ進化の歩み
- 2018 年: コアペイメントズエコシステムの近代化プロジェクト開始。
- 課題: 従来のクラウドネイティブ技術を導入する中で、根本的に**「耐障害性」と「スケーラビリティ」**へのアプローチを見直す必要性に直面。
- 設計要件: 個々のコンポーネントが故障しても信頼性を保ち続けられる、セルベース型アーキテクチャを採用。
- マイクロサービス等の故障を抑制する。
- 影響範囲の拡大(ブラスト半径)を防ぐ。
- キャパシーのスケーリングを容易にする。
注: 「セルベース型アーキテクチャ」は、システム全体の安定性を確保するために不可欠であり、追加の複雑性をもたらすものの、決済のようなミッションクリティカルなシステムにおいてその利点が上回ります。
セルベース型アーキテクチャとは
基本概念
- 定義: 関連するマイクロサービス、データベース、およびコンポーネントを独立した単位である**「セル(Cell)」**にグループ化する設計パターン。
- 特性:
- 各セルは他のセルへの依存を持たず、独立して機能可能。
- セルごとに独自のサービスとデータを含む。
メリットとトレードオフ
| 項目 | 内容 |
|---|---|
| 利点 | ブラスト半径の縮小: あるセルでの故障が他のセルに波及するのを防ぐ。 レイテンシー削減: 外部依存関係やネットワークホップを削減。 スケーリング改善: セル単位の追加で柔軟にキャパシティを拡大。 |
| 課題 | 管理オーバーヘッドの増加: 複雑性の増大: セル間の完全な独立性とデータのローカル化を確保するための慎重な設計が必要。 |
採用戦略:具体的な実装と原則
1. データと処理の Locality(近接性)をデフォルトとする
-
方針: ペイメント処理に必要なデータは、各セル内で利用できるように管理する。
-
静的・準静的データの複製 (プリポップアップ):
- 為替レートや業種コードなど、変更の少ないデータを各セルへ事前にコピー(プッシュ)。
- 利点: 取引時に中央システムへの同期ルックアップが不要となり、キャッシュミスによるレイテンシを回避。
- 実装: 複製はトランザクションパスの外で行うことで、同期されたセル間依存関係を防ぐ。
-
ダイナミックデータのルーティング:
- 常に最新のデータを持たないセルへ取引を送ることは避ける(レイテンシー増大・処理失敗のリスク)。
- グローバルトランザクションルーター (Global Transaction Router):
- 取引データを基に、権威的なデータを既に保持しているセルへ確実にルーティング。
- 確定的なルーティングにより、適切なデータが存在する場所へのみ送信を実現。
-
マイクロサービス通信のローカライズ:
- 通信を Kubernetes ネットワーク内での Pod 間限定にし、すべての処理をセル境界内に留める。
- 非同期のメッセージベースの複製を用いることで、フェイルオーバー時のデータ同期もトランザクションパス外で行う。
2. 入出(Ingress/Egress)に対する強制された境界
-
グローバルトランザクションルーターの役割:
- セル間通信を厳密に制御し、「ローカルのみ」処理を強制する実行者。
- すべてのセル間トラフィックを経由させることで、セル同士の直接的な依存関係を防止。
-
設計上の意義:
- システム拡張に伴う複雑化を防ぎ、共有実装やネットワークホップを削減。
- レイテンシー改善と独立性維持のトレードオフを意図的に選択。
-
可観測性(Observability)への適用:
- ロギング・メトリクスも各セルでローカルに収集し、グローバルダッシュボードへは非同期で集約する。
- セルの一部が落ちても、プラットフォーム全体の可視性は保たれるように設計。
3. セルが孤立停止した場合の代替処理(故障転送)
-
自動再ルーティング:
- 特定のセルで故障が発生すると、グローバルトランザクションルーターが取引を自動的に健全な別のセルへ再ルーティング。
- オーケストレーターマイクロサービス: データ下流サービスの失敗を検知し、処理を停止して別のセルへ返送。
-
再開ポリシーと「戻れないポイント」:
- 完全な再開ではなく再実行: 部分的に処理された履歴を残さず、元の取引データを用いて別のセルでトランザクションを再開。
- 戻れないポイント(No-Return Point)の概念:
- コアペイメントズエコシステム内部であれば安全に再ルーティング可能。
- 外部システム(例:カード発行者)へ送信した時点で「戻れないポイント」とし、以後は再ルーティングを禁止。
-
安全性の担保(Idempotency):
- カード承認などの重要アクションで、重複処理を防ぐため、全プロセスを通じて不変な一意のトランザクション識別子を使用。
- 下流システムはこの ID を用いて重複リクエストを検出・抑制し、データ一貫性を維持。
-
疎結合設計とメンテナンス:
- セルは独自のデータベースクラスタを持ち、他のセルとの共有状態を避ける(疎結合)。
- グローバルトランザクションルーターにより、トラフィックのシフト(排水・段階的移行)が可能で、メンテナンス時のダウンタイムを最小化。
4. エッジにおける最小限の依存関係
-
目標: エッジに近いほど依存関係を減らし、それを臨界パスから排除する。
-
非同期ローガーの採用:
- ロギングインフラが不可用でも取引処理をブロックしないよう、バッファがいっぱいならログを棄却するポリシーを採用。
-
非同期構成管理:
- 構成サービスへの依存を減らし、**最後の既知構成(Last Known Good Configuration)**を維持して継続稼働させる。
設計思想: 臨界パスから依存関係を除去することで故障点を削減しますが、その代償としてログやメトリクスなどの機能劣化を受け入れるという意図的なトレードオフを取ります。これが高耐障害性を生み出しています。
まとめ
分散型決済システムにおける耐障害性は、監視や再試行 Alone ではなく、明確な失敗境界の定義と設計による強制によって達成されます。
コアペイメントズエコシステムの成功要因
- 組織化: システムを隔離され、独立して回復可能な「セル」に分割。
- 制御: 大きな故障を、ルーティング決定による制御された転換へと変換。
- 協調する原則:
- Locality(近接性): データと処理の locality を確保。
- Deterministic Routing(確定的なルーティング): 正しいデータを持つセルへ導く。
- Idempotent Processing(イデムポテントな処理): リトライ時の一貫性を保証。
- Strict Boundary Enforcement(厳格な境界強制): セル間依存関係を排除。
この規律ある設計が、成長や変化を伴うリスク増大を防ぎつつ、低レイテンシーで高耐障害性のグローバル決済プラットフォームの運営を可能にしています。