BOOSTRY Tech Blog

株式会社BOOSTRY の技術ブログです

BOOSTRYのプロダクトを支える技術スタック

こんにちは、E-Wallet PdMの大澤です。

今回は、BOOSTRYのアプリケーションレイヤーにおける技術スタックとその選定基準についてご紹介します。

※ BOOSTRYの開発組織については、前回のCTO麻生の記事をご覧ください。

技術スタックの全体像

BOOSTRYのプロダクト群は、ブロックチェーン技術を基盤に、金融インフラとしての堅牢性と機能性を両立するように設計されています。今回は、アプリケーション層をブロックチェーン層、バックエンド層、フロントエンド層の3つに分け、それぞれの技術スタックと選定方針について詳しく解説します。

技術選定の大方針

BOOSTRYでは、現場のエンジニアが主体的に技術を選び、共有し、広げていく文化が根付いています。技術選定においては、以下の点を重視しています。

  • 業界のデファクトスタンダードであるか、またはその要素があるか
  • メンテナンスが健全に行われているか
  • 公開実装やドキュメントが充実しているか
  • 問題発生時に自社で対応できる技術スタックであるか
  • チームやプロダクトにフィットしているか
  • 事業的な観点で求められるパフォーマンスを発揮できるか
  • 使い心地が良いか(開発者体験)

情報収集、共有、意見交換、最終評価のサイクルが短いスパンで行われ、BOOSTRYのプロダクト・組織に適した技術がセキュリティ等も考慮の上で採用されます。情報共有は毎週開催される「技術勉強会」を通じて行われ、エンジニア同士のコミュニケーションを促進し、技術選定や改善が進められています。

ブロックチェーン層の技術スタック

BOOSTRYが事務局を務めるコンソーシアム型ブロックチェーンネットワーク「ibet」は、EVM(Ethereum Virtual Machine)互換のネットワークです。ibetのブロックチェーンノードは、OSSブロックチェーンプロダクトであるQuorumを基盤に、独自にカスタマイズ・メンテナンスされています。

ブロックチェーンのコンセンサスアルゴリズムには「QBFT」を採用しており、これにより高いトランザクションスループットと低レイテンシを実現しています。セキュリティと信頼性を確保するため、ノードの参加者は金融機関や関連事業者に限定され、ネットワーク運営はコンソーシアムの合意に基づいて行われます。

通常、BFTコンセンサスの弱点として、トランザクションが存在しない場合にも空のブロックが生成され、ネットワーク効率が低下する可能性がありますが、ibetではQuorumの「EmptyBlockPeriodSeconds」を採用し、空のブロック生成を防いで効率性を向上させています。

EVM互換のため、スマートコントラクトはSolidityで開発できます。現在、BOOSTRYでは以下の技術スタックを使用してコントラクトを開発しています。

  • コントラクト開発言語: Solidity
  • モックネットワーク: Hardhat
  • テストツール: Brownie + Pytest
  • その他ライブラリ: OpenZeppelin

BOOSTRYでは、スマートコントラクトおよびその規格をすべてOSSとして公開しています。

これにより、オープンな金融インフラを実現し、業界全体のイノベーションを促進しています。

バックエンド層の技術スタック

バックエンド層では、Pythonを基盤にした堅実な構成を採用しています。具体的な技術スタックは以下の通りです。

  • 言語: Python(型安全性を担保するためPydanticを多用)
  • API: FastAPI(ASGI対応)、Gunicorn + Uvicorn
  • ORM: SQLAlchemy, Alembic
  • テスト: Pytest
  • フォーマッター: Ruff
  • パッケージ管理: uv
  • その他: web3.py(ブロックチェーン連携)、schedule(ジョブ制御)

ibetプロジェクトは2017年に開発が始まり、技術選定は主に以下の観点から行われました。

  • 少人数での開発における生産性
  • エコシステムの成熟度
  • 周辺ライブラリやフレームワークの活発な開発

現在、BOOSTRYのバックエンドアプリケーションはブロックチェーンとの連携を含む多様な機能を担っていますが、技術選定の考え方は基本的に変わっていません。なお、BOOSTRYではクラウド基盤としてAWSを利用しており、SaaS型プロダクトにはAWSのマネージドサービスを多く活用しています。

バックエンド層の一部コンポーネントOSSとして公開されています。

フロントエンド層の技術スタック

フロントエンド層では、Reactを中心としたモダンな技術スタックを使用しています。具体的な技術スタックは以下の通りです。

  • 言語・環境: TypeScript + Node.js
  • フレームワーク: Next.js、React Native
  • テスト: Vitest / Playwright
  • ORM/API通信: Prisma、Blitz-RPC
  • 状態管理: Recoil、Jotai
  • UIコンポーネント: Chakra UI、Material UI、Panda CSS
  • 補助ライブラリ: blitz-auth(認証機能)、react-table(テーブル描画)、zod(バリデータ)
  • デザインツール: Figma

フロントエンドアプリケーションは、ユーザーからの要望やデザイン改善に迅速かつ高品質に対応できるよう、型チェックが可能なTypeScriptを基盤にしています。また、再利用可能なUIコンポーネント設計を行い、開発効率と品質を向上させています。

フロントエンドは、金融アプリケーションの「顔」として信頼性の高い体験を提供し、堅牢な認証と柔軟な認可機構を備えています。

まとめ

BOOSTRYのアプリケーションレイヤーにおける技術スタックをご紹介しました。設立から5年が経ち、プロダクトやチームの進化に合わせて採用する技術も進化してきましたが、「新しい技術への好奇心」と「それが組織の課題解決にどう貢献できるかを探究する姿勢」は変わっていません。

私たちと共に、新しい金融インフラを技術の力で創っていきませんか?以下の採用情報もぜひご覧ください!

採用ページ

〒101-0032 東京都千代田区岩本町3丁目9-2 PMO岩本町4F