Service実装パターン
このガイドでは、MBC CQRS ServerlessでCRUD操作を処理するサービスクラスの実装方法を説明します。サービスはビジネスロジックの中核であり、コントローラー、コマンド、データアクセスを調整します。
このガイドを使用するタイミング
以下が必要な場合にこのガイドを使用してください:
- 新しいドメインエンティティのサービスレイヤーを構築する
- 作成、読み取り、更新、削除(CRUD)操作を実装する
- マルチテナントデータの分離を処理する
- 並行更新のための楽観的ロックを使用する
- 大量データ処理のためのバッチ操作を実装する
このパターンが解決する問題
| 問題 | 解決策 |
|---|---|
| データベースへの直接アクセスはCQRSパターンをバイパスする | 書き込みにはCommandService、読み取りにはDataServiceを使用する |
| データ変更の監査証跡がない | ユーザーとタイムスタンプを記録するためにinvokeContextを渡す |
| 並行更新が互いを上書きする | 楽観的ロックのためにversionフィールドを使用する |
| 同期処理による遅いレスポンス | 非ブロッキングコマンド発行のためにpublishAsyncを使用する |