はじめに
本稿では、Couchbaseをイベントドリブン・ビジネスロジック・プラットフォームとして利用するための機能について解説します。
Couchbase Eventingサービス
Couchbase Eventingサービスとは
Couchbase Eventingサービスは、Couchbase内のデータに変更が生じたときに、ユーザー定義のビジネスロジックをトリガーするための機能です。
QueryやIndexなど、その他のサービス同様、クラスターを構成する特定のノードをEventingサービスに割り当てることができます。要件に応じて、複数台の専用ノードを用いたり、他のサービスとノードを共有することができます(マルチディメンショナルスケーリング)。つまり、Couchbaseの他のサービス同様、Eventingサービスは、高可用性を持ち、高パフォーマンス、かつスケーラブルです。
Couchbaseとネイティブに統合されているため、サードパーティソリューションを必要とせず、シングルプラットフォームで、イベント駆動型のビジネスロジックを簡単に開発、展開、保守できます。
技術的には、JavaScriptを用いて、処理を実装します。
なお、Eventingサービスは、Couchbase Serverのコミュニティエディションでは提供されておらず、Enterprise Editionにのみ存在する機能です。
Eventingサービス利用例
RDBのトリガーの様に、データベース内のデータに対して作用することもできますし、外部システムへのコールを実装することも可能です。
データベース内の変更
- データ更新に際して、サーバサイドでリアルタイムに情報を付与する
- データ更新によって生じた不整合な状態を回避するためにデータを削除する
外部システムとの連携
- データ変更を他のシステムに伝達する
- 特定の情報を監視し、閾値に達した際にアクションを実行する
その他の特徴
- ビルトイン・デバッガーを備えており、デバッグが容易
最後に
Couchbase Eventingサービスを活用するための、多くのブログ記事が書かれているので、参考情報として紹介します。
参考情報
Couchbase Blog
Introducing Couchbase Eventing Service
Using N1QL with Couchbase Eventing Functions
Couchbase Eventing: small scripts that solve big problems
Eventing: Notification with Couchbase Functions
Eventing Service Best Practices
Eventing Service Improvements in Couchbase Server 6.5
Eventing Improvements (Timers, Handlers, and Statistics)
Using cURL with the Eventing Service
Real Time User Deduplication with Couchbase Eventing