株式会社ジェイテックジャパン、C#によるイベントソーシングフレームワーク「Sekiban」をオープンソースソフトウェアとして公開
Azure Cosmos DBなどのドキュメントデータベースをイベントストアとしたイベントソーシング・CQRSフレームワーク「Sekiban」を、OSSとして公開いたしました。
イベントソーシングがもたらすビジネス上のインパクト
イベントソーシングは、国内ではCQRSと共に比較的最近注目されるようになってきた技術ですが、欧米ではその価値が認識されており多業種でのシステム構築のために幅広く採用されています。
以下は、イベントソーシングがもたらす代表的なビジネス上のメリットです。
1. データ価値の向上
・全てのデータをイベント形式で記録する:様々な用途に応じたデータの利活用がしやすい
2. データ信頼性の向上
・記録済みのデータは変更・削除できない:トレーサビリティ(追跡可能性)を提供。情報改ざんリスクの低減。
3. システム品質・保守性の向上
・過去のどの状態も再現できる:問題発生時の状況や原因を特定しやすい
近年のクラウド技術の加速度的な発展(コンピューティング能力の向上、ストレージの大容量化、料金の低価格化など)により、従来のイベントソーシングで指摘されていたデメリットの多くが解消されてきているため、今後は国内においても採用がさらに拡大していくと予想しています。
「Sekiban」の開発経緯
当社ジェイテックジャパンは、創業以来一貫して、C#やMicrosoft AzureといったMicrosoft社製テクノロジーを主に採用する形でWebサービスやアプリケーションの企画、開発、運用、コンサルティングを行なってまいりました。
近年ではDDD(ドメイン駆動設計)を積極的に採用し、より効率的で高品質なアプリケーション開発を行う方法について社内で何度も議論してきました。その過程で、データをイベントとしてドキュメントデータベースに追記するイベントソーシングに注目するようになり、社内向けフレームワークとして「Sekiban」の開発をスタートしました。
現在2023年においては、C#かつAzure Cosmos DBをメインとするイベントソーシングのソリューションは、オープンソースにおいて多くは存在しません。「Sekiban」ではイベントソーシングを可能な限り関数型的で宣言的にモダンに表現できるよう苦心しながら、これまで品質と速度の向上に努めてきました。
「Sekiban」は既に複数の社内システムと4社のクライアント向けアプリケーション開発のために実際に使用されています。
このような経緯で開発を進めてきた「Sekiban」ですが、さらに多くの開発者に使っていただき、そして世界中の開発者からのフィードバックによってさらにより良いものとしたいと考え、この度オープンソースソフトウェア(OSS)とリリースすることに致しました。
現時点ではプロジェクションに関してはメモリ内で行うライブプロジェクションを採用し、中小規模のシステムに対応したものとなっていますが、これからさらに大きなシステムに対応するための機能を追加していきます。
イベントソーシングフレームワーク「Sekiban」の主な機能
以下は、イベントソーシングフレームワーク「Sekiban」の主な機能です。
これらの機能を利用して、開発者はアプリケーション開発の体験を向上させることができます。
シンプルなコマンドとイベント:
アプリケーションで効率的に機能を作成することに集中するためのコマンド実行機能を提供します。
パブリッシュ専用のコマンドとイベント:
集約のプロジェクションを取得せずにイベントを保存する方法を提供します。
楽観的な集約バージョンチェック:
同時環境での効率的な競合検出を可能にします。
シングル / マルチ集約プロジェクション:
個々の集約レベルと複数の集約レベルの両方でのプロジェクションをサポートします。
ページング機能を含むクエリシステム:
プロジェクションから効率的にデータを取得するクエリを開発できます。
プロジェクションスナップショット:
特定の時点でのプロジェクションの状態をキャプチャして読み込みを効率化します。
大規模なスナップショットストレージ:
Azure Blob StorageやAmazon S3を使用して大きなスナップショットを収容します。
Azure Cosmos DB / Amazon DynamoDB データストアに対応:
スケーラブルでグローバルに分散したデータストレージソリューションを提供します。
組み込みのテストフレームワーク:
統合されたスイートを使用してテストを簡素化します。
SwaggerをサポートしたコマンドとクエリWeb APIジェネレーター:
API設計、構築、文書化を効率化します。
「Sekiban」を利用することにより、開発者はコマンド、イベント、プロジェクション、テスト、クエリを容易に実装できるため、重要なビジネスロジックに集中することが可能となります。
OSSリリースについて
イベントソーシングフレームワーク「Sekiban」は、Apache 2.0ライセンスの形でリリースしています。
「Sekiban」に興味を持たれる開発者、企業は、上記ライセンスに基づき無償で使用することができます。
今後、当社はオープンソースの運営を行い、イベントソーシングや「Sekiban」についての教育やサポートを有償で提供いたします。OSS開発を継続するためのスポンサーも随時募集しています。
現在、株式会社ジャパンテクニカルソフトウェア様が特別スポンサーとして「Sekiban」を支援しています。
「Sekiban」関連リンク
「Sekiban」サービスサイト(日本語):https://www.sekiban.dev/jp
「Sekiban」Githubページ:https://github.com/J-Tech-Japan/Sekiban
株式会社ジェイテックジャパンについて
2008年創業。クライアントから「聴き」「共に創り支える」ことをモットーに、今と将来のクライアントのビジネスにとって必要なものが何かを一緒に考え、しっかりとした技術力で、創り上げ、カイゼンし、クライアントのビジネスの成長を支えるITソリューションを提供することに注力しています。現在、東京とNew Yorkの2拠点にオフィスを構え、世界各地のエンジニアやデザイナーが結集してリモートチームとして働いています。2020年に創業50年を迎えた、総合IT企業・株式会社ジャパンテクニカルソフトウエア(JTS)のグループ会社です。
お問い合わせ先
社名:株式会社ジェイテックジャパン
本社:108-0075 東京都港区港南2丁目13番31号 品川NSSビル4F
代表取締役社長:山口正貴
外部CTO:高丘知央
URL:https://www.jtechs.com/japan
お問い合わせフォーム:https://www.jtechs.com/japan/contact
お問い合わせメールアドレス:sales@jtechs.com
すべての画像