MBC CQRS サーバーレス (mbc-cqrs-serverless)フレームワーク
エンタープライズシステムの開発基盤であるMBC CQRS サーバーレス フレームワークをオープンソースで開発しました。
MBC CQRS サーバーレス フレームワークはMBCで受託開発したシステムを円滑かつ柔軟にシステム開発をするためのノウハウを蓄積したフレームワークで創業当時から脈々と開発されてきたフレームワークをTypeScriptで再開発したバージョンです。
AWSのサーバーレスで運用し、極力運用コストの削減を行えるようにすること目指しております。
MBC CQRS サーバーレスは4つ大きな軸で構成されています。
Easy Developing (開発が容易)
MBC CQRS サーバーレスでは、Typescriptを開発言語として使用しております。複雑なCQRSパターンをMBC CQRS サーバーレス フレームワークが内包しており開発者はシンプルなコードで開発することが可能です。
また、フロントをNextJS、インフラ構築をCDKで行うとフロントエンド〜バックエンド〜インフラ構築を全て同じ言語で構築することも可能です。
MBC CQRS サーバーレスでは開発環境をDockerで用意しており、ローカルで開発が可能です。
Visual Studio CodeやJetBrainsのWebStorm等でステップバイステップの実行も可能でデバッグも容易に行なう事が出来ます。
MBC CQRS サーバーレスフレームワークで作成するAPIはSwaggerファイルとして自動さ生成することが可能なので、フロント開発とのやりとりも簡単に行なう事ができます。
Extensibility (拡張性)
MBC CQRS サーバーレスでは CQRSパターンを用いてイベントを取得することが出来ます。
イベント処理では Step Functions を使用していて、書き込み用DBから読み込み用DBにデータを反映します。
イベントに対して複数の処理方法を定義することが出来、インフラの設定を行なう事により拡張することも出来るため格段の拡張性を確保することが出来ます。
Step Functionsにデータを反映するステップを容易に追加することが可能です。また、外部システムとの連動ではSNSに通知し、外部システム連携用のキューをSQSに定義することにより、複数の外部システムとの連動も可能です。
Reliable and Scalable
MBC CQRS サーバーレスは信頼できるインフラに拡張性をもって構築することが出来ます。
運用に費やす工数や心労から解放されビジネスに集中することが可能です。
インフラのほとんどをサーバーレスで構成することも可能で初期段階ではコストを抑えつつビジネスの拡大と共にシステム構成をLambdaからECSへと言った変更も可能です。
システム構成図はCI/CDで自動的に作成することも出来るためシステム全体を把握することも可能です。
Japanese Friendly and Open Source
MBC CQRS サーバーレスは純日本産で日本の業務によりノウハウを積み重ねてきたフレームワークです。日本で実績を積んだ日本品質で、開発が始まったばかりで、追加機能等の要望をしやすいのが特徴です。
ソースはGitHubに完全公開されていて、他の使用者も開発やテストをしているため自社で囲い込みをするよりもコストを抑えられます。
いざとなったら自社でカスタマイズすることも可能です。
構成例
開発環境
MBC CQRS サーバーフレームワークの開発環境は以下の通りです。
- Windows/Mac/Linux
- Docker
- Node.js
- Aws cli
開発パートナー募集
MBCではmbc-cqrs-serverless の開発、mbc-cqrs-sererless を活用したシステムの開発、その他MBCと一緒に開発できるパートナーを募集しております。
詳しくは お問合せ よりご連絡をお待ちしております。
関連記事
- 設計
- サンプルアプリ
- MBC CQRS サーバーレス フレームワーク TO-DO システム作成 1 ー 環境構築
- MBC CQRS サーバーレス フレームワーク TO-DO システム作成 2 – 書き込み処理追加
- MBC CQRS サーバーレス フレームワーク TO-DO システム作成 3 – RDSヘデータを反映
- MBC CQRS サーバーレス フレームワーク TO-DO システム作成 4 – 特定のデータの読込
- MBC CQRS サーバーレス フレームワーク TO-DO システム作成 5 – データの検索
- MBC CQRS サーバーレス フレームワーク TO-DO システム作成 6 – データの更新・削除
- MBC CQRS サーバーレス フレームワーク TO-DO システム作成 7 – シーケンス(採番)の実装
- 環境構築
- 設計/仕様
- 採用技術
参考情報
- リポジトリ: https://github.com/mbc-net/mbc-cqrs-serverless
- NPM core: https://www.npmjs.com/package/@mbc-cqrs-serverless/core
- NPM cli: https://www.npmjs.com/package/@mbc-cqrs-serverless/cli
- NPM sequence: https://www.npmjs.com/package/@mbc-cqrs-serverless/sequence
- NPM task: https://www.npmjs.com/package/@mbc-cqrs-serverless/task
- ドキュメント: https://mbc-cqrs-serverless.mbc-net.com/ja/
- サンプル集: https://github.com/mbc-net/mbc-cqrs-serveless-samples