It gives us immense pleasure in announcing the launch of Couchbase Eventing Service as part of the Couchbase Data Platform 5.5. This new offering brings compute closer to data and lets customers process changes (create/ update/ delete/ expiry) to data stored in Couchbase Cluster as they happen in near real-time. It provides an interface to consume the changes that are exposed with the Database Change Protocol (DCP). DCP glues together many different services in the Couchbase Data Platform. Index, Full Text Search and XDCR consume DCP for their efficient operations.
Couchbase Functions does away with the problems of multiple-writes from the application tier for managing changes and also is much more efficient as it offers an alternative to polling from middle-tier. Couchbase Functions offers to solve some of the following requirements that was not possible earlier by providing developers with a clean and simple interface.
- Notifications Before Expiry
- Threshold Based Monitoring & Alerting
- Propagate Changes to Other Systems
- Enrich Content in Near-Real Time
- Trigger a routine on a Document at Specified Intervals
- Cascade Deletes
Also, it offers these capabilities by performing at scale – an important characteristic, and a requirement for most distributed compute operations.
Couchbase Functions essentially targets asynchronous, stateless, low-latency (time-bracketed) workloads that often see inconsistent traffic. By emphasising on business logic than configuration or infrastructure, developers have a very powerful tool in their arsenal which leads to high dev velocity. By lowering the barriers to experiment with data, the Functions service offers developers a fast and pleasant experience, which in turn lets businesses be much more agile.
For example, one can send a promotional email when a shopping cart is about to expire, trigger an alert when a value monitored exceeds certain threshold, or propagate changes in Couchbase to other adjacent systems.
As Couchbase Functions is essentially a platform to write snippets of server-side code that get triggered in response to events, it brings the serverless (the FaaS aspects) computing infrastructure closer to the datastore, and thereby helping in layer consolidation as well.
World Class Diagnosability Features!!
An often cited issue with event based systems is the complete lack of diagnosability options. Couchbase Functions integrates with the Chrome Debugger to debug updates to data in real-time. We block only a single mutation at a time and hand it over the debugger session, in such a way that processing of the rest of the mutations are not blocked. This capability is probably the first of it’s kind in either the world of databases or in streaming software.
Developers can also specify log statements that are captured in application specific log files on the file-system. The diagnosability features being offered, both on a file and using the debugger, truly differentiate this offering and also offer developers and administrators a powerful tool which was missing earlier.
And yes, it is a Multidimensional Scaling (MDS) enabled service. Hence, Couchbase Eventing Service can run on it’s own set of nodes providing the much needed workload isolation and also independent scalability for compute workloads.
We truly hope that you find this offering compelling and implement it to solve use-cases that truly revolutionises your workflows and leads to better customer engagement and delight. We are excited to hear more from you.
“A successful [software] tool is one that was used to do something undreamed of by its author”. – Stephen Johnson
- Learn more about this new Couchbase Eventing Service and what Couchbase Functions has to offer by referring to our Couchbase Eventing documentation here.
- Do leave your comments on this new service down below or on our Forum dedicated for Couchbase Eventing Service.
- Download the Couchbase Server 5.5 here.
- Read blog “Detect Sensitive Information In Your NoSQL Documents Automatically With Couchbase Functions“.
have a question about your new Evening system.
Tried to use CURL function inside of event function, but always get “CURL is not defined” error (in google chrome debuger).
curl_whitelist.jsonset properly, as when I do make query (Workbench -> Query) “SELECT CURL(“http://127.0.0.1:5000/”);” (my local test server) I get response back.
Do I need to change any additional configuration to be able to use CURL function in eventing functions?
Got it! :)
Can you share an example for a ‘Notification before expiry’ function?
The first image has a add_timer. Can’t find approriate documentation for creating such a function.
Please have a look at our documentation : https://docs.couchbase.com/server/6.0/eventing/eventing-examples-docexpiry.html
Thanks for quick response. Is this supported even in 5.5?
Timers were introduced in 6.0
Question 1 – I am using couchbase elastic connector 4.2 , and trying to configure the TOML file . My source document has docType as “EBA::CP” . How do model it in the connector TOML file , i tried using below snippet
regex = ‘(?.+?)::.*’
however its mapping the index to “EBA” only . I want index to map to “EBA::CP”
Any help is greatly apreciated ?
Question 2 – Using couchbase eventing , can i pick only a subset of fields in source document and send them to elastic search via couchbase elastic connector ?