CQRS & イベントソーシングアーキテクチャ

低レイテンシー取引システムのためのクラウドネイティブアーキテクチャへの道のり

詳しく見る

CQRS とイベントソーシングとは?

コマンドクエリ責務分離(CQRS)とイベントソーシングは、高度にスケーラブルで耐障害性が高く、高性能な金融システムを構築するために当社が採用したアーキテクチャパターンです。これらのパターンにより、システムの書き込み操作と読み取り操作を分離し、一貫性と信頼性を維持しながら、それぞれの経路をその固有の要件に合わせて最適化できます。

CQRS アーキテクチャ図

CQRS パターン

CQRS は、コマンド(書き込み)操作とクエリ(読み取り)操作を分離します。この分離により、それぞれの側を独立して最適化できます。コマンドは検証、一貫性、ビジネスロジックに集中でき、クエリは多くの場合、専用のデータストアやキャッシュを用いてパフォーマンスのために最適化できます。

イベントソーシング

イベントソーシングは、アプリケーションの状態に対するすべての変更を一連のイベントとして保存します。現在の状態だけを保存するのではなく、システムの状態を変えたあらゆるアクションを記録します。これにより、完全な監査証跡が得られ、複雑なイベント分析が可能になり、システムを任意の時点へ再構築できます。

イベントソーシング図

クラウドネイティブへの道のり

2017年、当社は低レイテンシーの HFT マッチングエンジンを完全な暗号資産取引所ソリューションの基盤として用いる際に、大きな課題に直面しました。これには、決済ゲートウェイ、KYC オンボーディング、紹介プログラムといったリテール向けコンポーネントが必要であり、口座開設リクエストは1時間あたり数千件に達する可能性がありました。

「日本の HFT クライアント向けに業界トップクラスのレイテンシーを維持しなければならないのは明らかでしたが、それを最良の『クラウドネイティブ』テクノロジーと組み合わせて、リテール市場にサービスを提供し、スケーラビリティと柔軟性の目標を達成する必要がありました。」

2019年から2022年にかけて、当社はアーキテクチャのアプローチを再定義・再構築し、重要な低レイテンシー能力を維持しつつ、どのクラウドネイティブ技術を採用するかについて緻密な判断を行いました。

主要なアーキテクチャコンポーネント

完全にイベントソース化されたストリーミングモデル上のコア処理エンジン — 任意の購読側コンポーネントを即座に置き換えることができ、信頼性を劇的に向上させます。 高速なマイクロサービス・アグリゲートが CQRS のクエリハンドラーとして機能し、スケールを支え、単一障害点を減らし、アグリゲートデータ要求に対して 5〜10ms のレイテンシーを実現します。 任意のサービスが他のあらゆるサービスを発見・監視・通信できます。サービスシャーシが、分散したリアルタイムデータ、トランザクションのルーティング、可観測性を提供します。 レイテンシーに敏感なサービス向けのインメモリ分散 DB、構成とアーカイブ向けの PostgreSQL、OHLC データと市場分析向けの InfluxDB 時系列データベース。
デジタルツインアーキテクチャ

デジタルツインによる可観測性

当社のシステム監視は、OpenTelemetry 標準、サービスメッシュ、自己登録を用いた、可観測性へのデジタルツインアプローチに基づいています。

  • 包括的な監視:アプリケーションサービスの制御と統合された Docker の制御を一つのコンソールで
  • 統一された管理:Logstash と Elastic の統合により、すべてのサポート業務を一箇所から管理
  • 即時フェイルオーバー:デジタルツインモデルがクラスター管理とステートフルサービスの即時フェイルオーバーを駆動
  • 将来への対応:自律的なシステム監視のために AI と統合できるよう設計されたフレームワーク

当社アーキテクチャのメリット

クリティカルパスでの超低レイテンシー、HFT 環境向けの最適化、5〜10ms のアグリゲートクエリ、そして持続的なスループットでの1日あたり数百万件のトランザクション。 単一障害点の削減、コンポーネントの即時置き換え、監査のための完全なイベント履歴、透過的な高可用性フェイルオーバー。 読み取りと書き込みの独立したスケーリング、弾力的なリテール向けコンポーネント、数千の同時購読者への効率的なリアルタイム価格配信。

開発とテスト

アーキテクチャの変更と並行して、コード品質と信頼性を確保するための最新の開発プラクティスを導入しました。

DevOps とテスト

  • シフトレフトテスト:すべてのコンポーネントを、開発者がモックサービスを用いて完全にテスト可能
  • ビヘイビア駆動設計:当社の TFCoverage フレームワークが複数プロトコルにわたるエンドツーエンドテストをサポート
  • 自動化されたセキュリティ:CI/CD パイプラインでの SAST・DAST 分析が、デプロイ前に問題を明らかに
  • バージョン管理:構造化された依存関係管理により、顧客向けリリースを特定の依存関係に整合
  • コンテナ化:一貫した環境のための自動コンテナデプロイ

これらのプラクティスにより、開発チームの当事者意識が高まり、テストカバレッジが劇的に向上し、自信を持ったデプロイサイクルが実現しました。

モノリスの解体

マイクロサービスデータベースアーキテクチャ

当社の道のりで重要だったのは、モノリシックなデータベースをマイクロサービスごとのデータベースへ解体したことです。これは、顧客のスケールと開発チームのスケールの両面でボトルネックとなっていました — 元の上級開発者以外には理解できないほど、単純に大きくなりすぎていたのです。

マイクロサービスへの移行の一環として、データベースアーキテクチャを以下を含むよう再構築しました。

  • インメモリ分散データベース:レイテンシーに敏感なサービスでメタデータをリアルタイムに更新し続けるため
  • PostgreSQL データベース:構成管理、トランザクション管理、帳票処理のため
  • InfluxDB 時系列データベース:リアルタイムの OHLC バーファクトリーと、任意のクラウドデータレイク連携のため

この一つの変更だけで、開発チームに大きなプラスの影響がありました。各データベースの全体像が突然はるかに理解しやすくなり、チームが改善を議論し、より迅速にイノベーションを起こせるようになったのです。

バッチ処理からストリーム処理へ

従来、金融システムは特に日次処理においてバッチ処理に大きく依存してきました。当社は常に極めて柔軟なバッチ処理エンジンを備えてきましたが、現在ではそれをストリーム処理エンジンへと置き換えつつあります。

バッチ処理

  • 日次処理
  • スケジュールされたインポート/エクスポート
  • 定期的な照合
  • 逐次処理

ストリーム処理

  • リアルタイム処理
  • 継続的なデータフロー
  • システム全体への即時イベント
  • 並列処理

この移行は、はるかに高いボリュームに対応し、証拠金警告やリミットのキルスイッチイベントといったシステム全体の口座ステータスイベントを可能にします。これらは、ポジションの変化やリスク違反の即時通知を必要とする高頻度トレーダーにとって不可欠です。

接続性とビジネスロジック

新しいアーキテクチャの導入により、複数のドメインにわたって重要な機能を統合しました。

マーケット接続

  • 複数のマーケットメーカー
  • 取引所 FIX ゲートウェイ
  • ITCH・Glimpse の取引所フィード
  • Tora 株式接続

コアエンジン

  • クロスカレンシー・マッチングエンジン
  • プライシングエンジン
  • ヘッジエンジン
  • リスク管理エンジン

デジタル資産

  • 7つの暗号資産取引所接続
  • ウォレット連携
  • マルチアセット対応

この包括的な接続フレームワークにより、当社のプラットフォームは、取引環境で期待されるパフォーマンスと信頼性を維持しながら、事実上あらゆる金融システムとインターフェースできます。

フロントエンドとユーザー体験

フロントエンドのアーキテクチャも同様の変革を遂げ、レガシーなフレームワークから最新のコンポーネントベースの設計へと移行しました。

マイクロフロントエンドアーキテクチャ

マイクロフロントエンドのアプローチ

Sencha ExtJS をベースとしたモノリシックなフロントエンドから、ReactJS と Web Components を用いた最新のマイクロフロントエンドアーキテクチャへ移行しました。このアプローチは以下を提供します。

  • フレームワーク非依存:互換性のために Web Components 標準で構築されたコアコンポーネント
  • FDC3 統合:Financial Desktop Connectivity and Collaboration Consortium 標準への対応
  • 多言語対応:組み込みの国際化
  • マルチタイムゾーン対応:グローバル取引向けの設定可能なタイムゾーン処理

新しいグリッドコンポーネントシステムは、リアルタイムの市場データや大きな取引ポジションの表示に不可欠な、はるかに高い負荷とボリュームに対応します。

当社のアーキテクチャがお客様の金融システムをどう支えられるか、ご検討の準備はできていますか?

当社の CQRS およびイベントソーシングアーキテクチャが、お客様のビジネスに必要なパフォーマンス、信頼性、スケーラビリティをどのように提供できるか、ぜひご相談ください。

詳しくはお問い合わせください