Eventarc と Datastore モードの Firestore を使用して、イベント ドリブン アーキテクチャを構築できます。Datastore モードの Firestore は、データベース内の特定のエンティティへの変更からイベントを生成する Eventarc をトリガーします。トリガーは、サポートされている宛先にイベントを転送できます。
Eventarc は、分離されたマイクロサービス間の状態変更(イベント)を管理する標準化されたソリューションを提供します。トリガーされると、Eventarc は配信、セキュリティ、承認、オブザーバビリティ、エラー処理を管理し、これらのイベントをさまざまな宛先に転送します。
サンプル ユースケース
イベント ドリブン アーキテクチャは、サービスがイベントと呼ばれる状態変化に対応するシステム設計パターンです。このパターンを Firestore のスケーラビリティとともに使用して、アプリに機能を追加できます。たとえば、次の機能を追加できます。
異なる技術スタック間の相互運用
データを複製して変換してから、分析システムに送信します。
並列処理
並列処理のためにオペレーションをファンアウトします。エンティティの変更に基づいて動作するシステムが複数ある場合は、各コンシューマーで push ベースのストリームを使用してイベントを複数のコンシューマーにルーティングできます。
push ベースのイベント ストリーム
push ベースのメッセージング設計を構築します。クライアントはリモート サービスをポーリングすることなく通知を受け取ることができます。ポーリング レイテンシがなければ、その場でのデータ処理やリアルタイム分析がより適切に行えます。
状態のモニタリングとアラート
イベント ドリブン アーキテクチャを使用して、カスタム指標をデータベース オペレーションに追加します。変更や更新の際にモニタリングし、アラートを受信します。異常を検出します。
制限事項
Eventarc の Datastore モードの Firestore トリガーには、次の制限事項があります。
- 順序は保証されません。短時間に複数の変更を行うと、予期しない順序でイベントがトリガーされることがあります。
- イベントは、少なくとも 1 回配信されます。
イベント ハンドラがべき等であることを確認し、イベントが複数回配信されるときに予期しない結果や副作用が発生しないようにします。詳細については、べき等関数の構築をご覧ください。
プレビューの制限
この機能のプレビューには、次の制限が適用されます。
Datastore モードの Eventarc と Firestore のロケーション
Eventarc は、Firestore イベント トリガーのマルチリージョンをサポートしていませんが、マルチリージョン ロケーションの Firestore データベースのトリガーは作成できます。Eventarc は、Firestore マルチリージョン ロケーションを次の Eventarc リージョンにマッピングします。
Firestore マルチリージョン | Eventarc リージョン |
---|---|
nam5 |
us-central1 |
eur3 |
europe-west4 |
Datastore モードとネイティブ モードのイベント相互運用性
Eventarc は、Datastore モードとネイティブ モードの両方のイベント トリガーをサポートしています。これらのイベント トリガーは、両方のデータベース タイプで相互運用できます。 ネイティブ モードの Firestore データベースは Datastore のイベントを受信し、Datastore モードの Firestore データベースはネイティブ モード イベントを受信できます。
イベントの相互運用性により、さまざまなタイプの Firestore データベース間で Eventarc コードを共有できます。
イベント コンバージョン
ネイティブ モードのイベント トリガーを Datastore モードのデータベースに適用すると、Eventarc は次のコンバージョンを行います。
- エンティティの名前空間がイベントの
PartitionId
属性に格納されます。 - 埋め込みエンティティはネイティブ モードの
map
型に変換されます。
次のステップ
- イベント ドリブン アーキテクチャについて確認する。