マッチングエンジンに関する勉強会メモ

ビットバンク株式会社の勉強会にお邪魔してきました。
何気にディスコードでの勉強会参加したの初めてかも!
bitbank.connpass.com

登壇者

エンジニア
尾島さん

営業(進行役)
鈴木さん

ビットバンクのマッチングエンジン

  • 秒間処理件数
    • 2500件/s

ある程度処理が増えてきたらシステムがビジー状態をユーザーに返すことで一定時間注文を受け付けなくするそう
これによって基本的に秒間処理件数をオーバーする事はない見込み

  • 注文日数
    • 最大2000万件弱
    • 直近1000万弱

ちなみにアローヘッドは1日で2億件も捌いてるらしい
すごいスケールだぁ

マッチングエンジンは内製

フロント:

TypeScript

DB:

MySQL
Aurora
(AWSの東京リージョン)

注文を捌くための工夫

  • 性能面
    • オンメモリ処理
    • I/Oの削減、局所
    • パフォーマンスチューニング

特にI/O削減の効果は大きいとのこと

工夫

  • 拡張性を意識した設計
    • CQRS × Event Sourcing
  • 拡張性を意識した管理機能
    • 動的な手数料変更
    • 動的なペア追加

つまりキャンペーンの開始/終了とかをノーメンテでできる。
この管理機能めっちゃ欲しい!

最後に

今後の課題として信用取引やIFD/OCDの実装も考えているとのこと。
仮想通貨の信用取引は株とかよりもまた複雑な処理になりそうなイメージなので、実装のあかつきにはまた勉強会で苦労話とかの裏側を聞いてみたい!