MBC CQRS サーバーレス (mbc-cqrs-serverless)フレームワーク

TypeScript x AWS サーバーレスで、エンタープライズシステムをシンプルに。
MBC CQRS サーバーレス フレームワークは、AWSサーバーレス環境でエンタープライズシステムを効率的に構築するためのオープンソース開発基盤です。
NestJSをベースに、CQRS(コマンドクエリ責任分離)パターンを採用。「データの更新」と「データの取得」を分離することで、大規模システムでも高いパフォーマンスと保守性を実現します。創業当時から脈々と開発されてきたフレームワークをTypeScriptで再開発し、AWSのサーバーレスで運用コストの削減を目指しています。

こんな課題を解決します
- サーバーの運用管理に時間とコストがかかっている
- システムの拡張時に大規模な改修が必要になる
- フロントエンドとバックエンドで異なる言語を使い、開発効率が悪い
- 複雑なビジネスロジックの変更履歴を追跡したい
- 初期コストを抑えつつ、将来の成長にも対応したい
MBC CQRS サーバーレスが選ばれる理由
数あるフレームワークの中で、なぜMBC CQRS サーバーレスなのか。他のフレームワークとの違いを紹介します。

エンタープライズ向けに設計
一般的なCRUDフレームワークとは異なり、MBC CQRS サーバーレスは最初からエンタープライズシステムを想定して設計されています。マルチテナント、採番管理、長時間タスク処理など、業務システムに必要な機能がパッケージとして用意されているため、車輪の再発明をする必要がありません。
イベントソーシングで「いつ・誰が・何を」を完全記録
データの変更履歴をすべてイベントとして保存するため、監査対応やトラブルシューティングが容易です。「この注文はいつ誰が承認したのか」「なぜこの値に変わったのか」といった問いに、すぐに答えられます。

AWSネイティブで運用負荷を最小化
Lambda、DynamoDB、Step Functions、API GatewayなどAWSマネージドサービスを活用し、サーバー管理から解放されます。スケーリングやパッチ適用はAWSに任せ、開発チームはビジネスロジックに集中できます。

実務から生まれた日本品質
海外製フレームワークの翻訳ではなく、日本のシステム開発現場で培われたノウハウを元に開発されています。日本語ドキュメント、日本語でのサポート対応が可能で、導入時の不安を軽減します。
AI駆動開発への対応
MCP(Model Context Protocol)サーバーパッケージにより、Claude等のAIツールとフレームワークを連携させることができます。AIを活用した開発効率化を見据えた、次世代の開発体験を提供します。
フレームワークの4つの特徴
MBC CQRS サーバーレスは4つの大きな軸で構成されています。

1. 開発のしやすさ
フロントエンド(Next.js)、バックエンド(NestJS)、インフラ(AWS CDK)まで、すべてTypeScriptで構築できます。Docker環境でAWSに依存しないローカル開発が可能で、Visual Studio CodeやWebStormでのデバッグにも対応しています。

作成したAPIからSwaggerドキュメントを自動生成。フロントエンド開発チームとのAPI仕様の共有がスムーズに行えます。

2. 柔軟な拡張性
CQRSパターンにより、データの変更はすべてイベントとして記録されます。後から「メール通知を追加したい」「外部システムと連携したい」といった要件にも、既存コードを変更せずに対応できます。
イベント処理にはStep Functionsを使用し、書き込み用DBから読み込み用DBへのデータ反映を行います。複雑な業務フローも視覚的に管理でき、処理の流れが見える化されるため、エラー発生時の原因特定も容易です。

3. 信頼性とスケーラビリティ
サーバーレス構成により、リクエストがない時間帯は課金ゼロ。スタートアップから大企業まで、ビジネス規模に応じた最適なコストで運用できます。ビジネスの拡大に伴うトラフィック増加時には、LambdaからECS/EKSへの移行もスムーズに対応できます。

CI/CDパイプラインでシステム構成図を自動生成。デプロイごとに最新のアーキテクチャドキュメントを維持し、システム全体を常に把握できます。

4. 日本発のオープンソース
MBC CQRS サーバーレスは純日本産のフレームワークです。日本企業特有の業務フローや帳票処理など、実際のプロジェクトで培ったノウハウを反映しています。GitHubで全ソースコードを公開しており、いざとなったら自社でカスタマイズすることも可能です。

提供パッケージ
MBC CQRS サーバーレス フレームワークは、用途に応じた複数のNPMパッケージで構成されています。必要な機能だけを選んで利用できます。

| パッケージ | 説明 | リンク |
|---|---|---|
| @mbc-cqrs-serverless/core | CQRS・イベントソーシングの基盤機能(コアパッケージ) | ドキュメント | npm |
| @mbc-cqrs-serverless/cli | プロジェクト生成・コード生成CLIツール | ドキュメント | npm |
| @mbc-cqrs-serverless/sequence | 連番生成・採番管理機能 | ドキュメント | npm |
| @mbc-cqrs-serverless/task | 長時間タスク・非同期処理管理 | ドキュメント | npm |
| @mbc-cqrs-serverless/master | マスタデータ管理機能 | ドキュメント | npm |
| @mbc-cqrs-serverless/import | CSV/Excelデータインポート機能 | ドキュメント | npm |
| @mbc-cqrs-serverless/tenant | マルチテナント対応機能 | ドキュメント | npm |
| @mbc-cqrs-serverless/mcp-server | AI連携(Claude MCP対応) | ドキュメント | npm |
構成例

3ステップではじめる
MBC CQRS サーバーレスは、わずか3ステップで開発を始められます。

クイックスタート デモ
CLIを使ったプロジェクト作成からローカル起動までの流れをご覧ください。
必要な環境
- Windows / macOS / Linux
- Docker
- Node.js 18以上
- AWS CLI v2
Step 1: CLIをインストール
npm install -g @mbc-cqrs-serverless/cli
Step 2: プロジェクトを作成
mbc new my-project
cd my-project
cp .env.local .env
Step 3: ローカル環境で起動
# ビルド
npm run build
# ターミナル1: Docker環境を起動(DynamoDB、RDS、LocalStack等)
npm run offline:docker
# ターミナル2: サーバーレス環境を起動
npm run offline:sls
# ターミナル3: マイグレーション実行(初回のみ)
npm run migrate
これで http://localhost:3000 でAPIが動作します。DynamoDB管理画面は http://localhost:8001 でアクセスできます。
詳しいセットアップ手順は公式ドキュメントをご覧ください
開発者リソース
チュートリアル・関連記事
TO-DOアプリを作ってみる(ステップバイステップ)
実際に手を動かしながらフレームワークを学べる、7回シリーズのチュートリアルです。
- 環境構築 – 開発環境のセットアップ
- 書き込み処理追加 – Command側の実装
- RDSへデータを反映 – イベント処理
- 特定のデータの読込 – Query側の実装
- データの検索 – 検索機能の実装
- データの更新・削除 – CRUD操作
- シーケンス(採番)の実装 – 業務機能の追加
AWS環境構築ガイド
設計・技術情報
最新リリース
過去のリリース:
よくある質問(FAQ)
CQRSとは何ですか?従来のCRUDと何が違いますか?
CQRS(Command Query Responsibility Segregation)は、データの「書き込み」と「読み取り」を分離するアーキテクチャパターンです。従来のCRUDでは同じモデルで読み書きを行いますが、CQRSでは書き込み用(Command)と読み取り用(Query)で別々のモデルを使います。これにより、複雑なビジネスロジックを持つエンタープライズシステムでも、高いパフォーマンスと保守性を実現できます。
ライセンスは何ですか?商用利用は可能ですか?
MITライセンスで公開しています。商用利用、改変、再配布が可能です。詳細はGitHubのLICENSEファイルをご確認ください。
AWSアカウントがなくても開発できますか?
はい、ローカル開発環境ではDockerを使ってAWSサービスをエミュレートするため、AWSアカウントなしで開発を始められます。本番環境へのデプロイ時にはAWSアカウントが必要です。
既存のNestJSアプリケーションに組み込めますか?
MBC CQRS サーバーレスはNestJSモジュールとして提供されているため、既存のNestJSアプリケーションに組み込むことが可能です。ただし、CQRSパターンに合わせた設計変更が必要になる場合があります。
サポートやコミュニティはありますか?
GitHubのIssueで質問や不具合報告を受け付けています。また、導入支援や技術サポートが必要な場合は、お問い合わせフォームからご連絡ください。
開発パートナー募集
MBCではmbc-cqrs-serverless の開発、mbc-cqrs-serverless を活用したシステムの開発、その他MBCと一緒に開発できるパートナーを募集しております。
