{"id":1468,"date":"2019-08-09T10:00:40","date_gmt":"2019-08-09T17:00:40","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/eventing-service-improvements-in-couchbase-server-6-5\/"},"modified":"2019-08-09T10:00:40","modified_gmt":"2019-08-09T17:00:40","slug":"eventing-service-improvements-in-couchbase-server-6-5","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/ko\/eventing-service-improvements-in-couchbase-server-6-5\/","title":{"rendered":"Eventing Service Improvements in Couchbase Server 6.5"},"content":{"rendered":"\n<p><a href=\"https:\/\/www.couchbase.com\/products\/eventing\/\">Couchbase Eventing Service<\/a> provides a framework for writing your own functions to process data change events (create, update, delete\/expiry). Couchbase Server 6.5 introduces a set of important improvements to the Eventing Service that enable a lot of new use cases and simplify maintenance of Evening Functions.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Source Bucket Mutations<\/h2>\n\n\n\n<p>An Eventing function is defined to listen to the changes of one bucket, known as the source bucket of the function. Previous versions of Couchbase did not allow a function to mutate documents in its source bucket, because if these mutations are being fed back to the function it can potentially create an infinite recursion. This limitation is removed in Couchbase 6.5: an Eventing function can now change the documents on the source bucket, even the document of the change event. Couchbase makes such changes safe by suppressing their recursive propagation to the same Eventing function.<\/p>\n\n\n\n<p>The possibility to change documents on the source bucket opens a lot of interesting use cases: enriching the changed documents with new attributes, performing cascade updates or deletes of dependent documents, generating new documents on the same bucket.<\/p>\n\n\n\n<p>The example below uses Eventing to automatically generate document attributes containing the creation time of the document and the time of its last update. We are going to listen to the changes in the <strong>travel-sample<\/strong> bucket, and generate or update the time attributes every time a document is changed. Eventing functions access buckets over so-called bucket bindings. We create a read-write bucket binding on the <strong>travel-sample<\/strong> bucket, i.e. the source bucket, and give it an alias <strong>bucket<\/strong>:<\/p>\n\n\n\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-7046 size-medium_large\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/Eventing-UpdateTime-768x756-1.png\" alt=\"\" width=\"768\" height=\"756\"><\/p>\n\n\n\n<p>In the next step provide the code of the function:<\/p>\n\n\n<p>[crayon toolbar-delay=&#8221;false&#8221; lang=&#8221;js&#8221; decode=&#8221;true&#8221;]function OnUpdate(doc, meta) {<br \/>\n    log(&#8216;docId&#8217;, meta.id);<br \/>\n    var time = Date.now();<br \/>\n    doc[&#8220;updated&#8221;] = time;<br \/>\n    if (!(&#8220;created&#8221; in doc)) {<br \/>\n        doc[&#8220;created&#8221;] = time;<br \/>\n    }<br \/>\n    log(&#8216;newDoc&#8217;, meta, doc);<br \/>\n    bucket[meta.id] = doc;<br \/>\n}<br \/>\n[\/crayon]<\/p>\n\n\n\n<p>In the <strong>OnUpdate<\/strong> handler, which is called on every insert and update event, we write the current time to the <strong>updated<\/strong> attribute (creating or replacing it). If the document does not yet contain <strong>created<\/strong> attribute, we assume it is the first change to the document, so we add <strong>created<\/strong> attribute containing the current time as well. After we extend the document with the new attributes we write it back to the source bucket for the same document ID.<\/p>\n\n\n\n<p>By changing <strong>updated<\/strong> and <strong>created<\/strong> attributes, we generate new changes to the document. Eventing framework suppresses the recursion by not propagating these changes to our function. Otherwise these changes are handled in a normal way: they are replicated, indexed and even propagated to other Eventing functions.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Invoking External Functions with cURL<\/h2>\n\n\n\n<p>Eventing functions can interact with external systems by using <b>curl<\/b> function to call their REST API. The possibility to interact with external systems opens a lot of new use cases, such as propagation of data changes to other systems, notifying the application about interesting events, enriching documents with data from external systems, and so on. A preview of the curl function was already available in earlier versions of Couchbase, but with 6.5 the feature is redesigned to make it reliable and secure: the cURL calls are limited to a predefined set of URL bindings, for each binding we can specify authentication, encryption and certificate validation as necessary.<\/p>\n\n\n\n<p>In the following example we will define an application listening to the changes in the travel-sample bucket. Save the application code below into file <strong>app.js<\/strong>:<\/p>\n\n\n<p>[crayon lang=&#8221;js&#8221; decode=&#8221;true&#8221;]const Express = require(&#8220;express&#8221;);<br \/>\nconst BasicAuth = require(&#8220;express-basic-auth&#8221;);<br \/>\nconst BodyParser = require(&#8220;body-parser&#8221;);<\/p>\n<p>var app = Express();<br \/>\napp.use(BodyParser.json());<br \/>\napp.use(BodyParser.urlencoded({ extended: true }));<br \/>\napp.use(BasicAuth({ users: { &#8216;couchbase&#8217;: &#8216;password&#8217; } }))<\/p>\n<p>app.post(&#8220;\/api\/airline&#8221;, (request, response) =&gt; {<br \/>\n    var id = request.body.id;<br \/>\n    console.log(&#8220;Airline &#8221; + id + &#8221; changed&#8221;);<br \/>\n    response.send(&#8220;OK&#8221;);<br \/>\n});<\/p>\n<p>var server = app.listen(3000, () =&gt; {<br \/>\n    console.log(&#8220;Listening&#8230;&#8221;);<br \/>\n});[\/crayon]<\/p>\n\n\n\n<p>The application defines an endpoint <strong>\/api\/airline<\/strong> to receive notifications about changes of airline data as POST requests with the body containing the airline ID. The application is configured with basic authentication expecting the user <strong>couchbase<\/strong> with the password <strong>password<\/strong>.<\/p>\n\n\n\n<p>Execute the following commands to install the necessary node.js packages and run the application:<\/p>\n\n\n<p>[crayon striped=&#8221;false&#8221; nums=&#8221;false&#8221; nums-toggle=&#8221;false&#8221; lang=&#8221;sh&#8221; decode=&#8221;true&#8221;]npm init -y<br \/>\nnpm install express body-parser express-basic-auth &#8211;save<br \/>\nnode app.js<br \/>\n[\/crayon]<\/p>\n\n\n\n<p>Now let\u2019s create an Eventing Function that notifies our application about the changes of airline documents. All the external APIs that can be called by the function must be declared as URL bindings. Assuming the 192.168.61.1 is the IP of the machine where we started the application, we declare a URL binding for the URL <strong>https:\/\/192.168.61.1:3000\/api<\/strong> and name it <b>notifyApi<\/b>.<\/p>\n\n\n\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-7047 size-medium_large\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/Eventing-NotifyChanges-768x895-1.png\" alt=\"\" width=\"768\" height=\"895\"><\/p>\n\n\n\n<p>A URL binding can use http or https protocol. We can also specify different types of authentication, and enable cookies to avoid repeated authentication. In our case, we select basic authentication with user <strong>couchbase<\/strong> and password <strong>password<\/strong>.<\/p>\n\n\n\n<p>In the next step provide the code of the function, which listens to changes of the documents of type <strong>airline<\/strong> and forwards these changes to the application using <b>curl<\/b> calls:<\/p>\n\n\n<p>[crayon lang=&#8221;js&#8221; decode=&#8221;true&#8221;]function OnUpdate(doc, meta) {<br \/>\n    if (doc.type == &#8216;airline&#8217;) {<br \/>\n        var request = {<br \/>\n            path: &#8216;\/airline&#8217;,<br \/>\n            body: { id : meta.id,<br \/>\n                    value : doc<br \/>\n            }<br \/>\n        };<br \/>\n        log(&#8216;request&#8217;, request);<br \/>\n        var response = curl(&#8216;POST&#8217;, notifyApi, request);<br \/>\n        if (response.status != 200) {<br \/>\n            log(&#8216;request failed&#8217;, response);<br \/>\n        }<br \/>\n    }<br \/>\n}[\/crayon]<\/p>\n\n\n\n<p>The <b>curl<\/b> function takes three parameters: the method of the HTTP request, the URL binding and the request object that can contain the following attributes:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><b>path<\/b> specifies subpath of the URL binding. In our example, we append <strong>\/airline<\/strong>\u00a0to make a call to <strong>https:\/\/192.168.61.1:3000\/api\/airline<\/strong><\/li>\n\n\n<li>the <b>body<\/b> of the HTTP request. The provided object will be encoded and marshaled as a JSON string, unless specified differently by the <b>encoding<\/b> attribute<\/li>\n\n\n<li><b>params<\/b> contains key-value pairs to be passed as HTTP request parameters<\/li>\n\n\n<li><b>headers<\/b> contains key-value pairs to be passed as additional HTTP headers.<\/li>\n\n<\/ul>\n\n\n\n<p>The response object returned by the\u00a0<b>curl<\/b>\u00a0function contains the status, the body and the headers of the HTTP response. The function throws exceptions in case of various errors such as unreachable URL or invalid parameters. Wrap the call within a try-catch block if you need to log those errors.<\/p>\n\n\n\n<p>After creating the function, go back to the Eventing tab and deploy the function <strong>NotifyChanges<\/strong>. If you choose to feed the entire contents of the buckets, the application will be notified about all already existing <strong>airline<\/strong> documents and will log their IDs.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Pausing and Resuming a Function<\/h2>\n\n\n\n<p>A running Eventing function can be paused and later resumed. When resumed, the function continues processing the events at the point where it was paused. The code and settings of a paused function can be modified, so when resumed the further events will be processed with the new version of the function.<\/p>\n\n\n\n<p>This feature is especially useful for maintaining Eventing functions that are already in production. The definition of the function can be enhanced with new functionality or adjusted after changing the data model. However, such mid-flight code changes should be compatible with any outstanding timer callbacks scheduled by the handler<\/p>\n\n\n\n<p>For example, if to modify the code of our <strong>NotifyChanges<\/strong> function, find the function in the Eventing view and click on its <strong>Pause<\/strong> button:<\/p>\n\n\n\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-7048 size-large\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/Eventing-Pause-1024x125-1.png\" alt=\"\" width=\"900\" height=\"110\"><\/p>\n\n\n\n<p>Wait until the function is shown as paused, which means that it stopped processing the events. In that state, we can modify its code and settings. After performing the necessary modifications, we can resume the function.<\/p>\n\n\n\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-7049 size-large\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/Eventing-Resume-1024x127-1.png\" alt=\"\" width=\"900\" height=\"112\"><\/p>\n\n\n\n<p>The function will be redeployed with the new implementation and will continue processing the events at the point where it stopped.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Resources<\/h3>\n\n\n\n<p><i>Download<\/i><\/p>\n\n\n\n<p><span class=\"s1\"><a href=\"https:\/\/couchbase.com\/downloads?family=server&amp;product=couchbase-server-developer\">Download Couchbase Server 6.5<\/a><\/span><\/p>\n\n\n\n<p><i>\u00a0<\/i><i>Documentation<\/i><\/p>\n\n\n\n<p><span class=\"s1\"><a href=\"https:\/\/docs.couchbase.com\/server\/6.5\/release-notes\/relnotes.html\">Couchbase Server 6.5 Release Notes<\/a><\/span><\/p>\n\n\n\n<p><span class=\"s1\"><a href=\"https:\/\/docs.couchbase.com\/server\/6.5\/introduction\/whats-new.html\">Couchbase Server 6.5 What\u2019s New<\/a><\/span><\/p>\n\n\n\n<p><i>Blogs<\/i><\/p>\n\n\n\n<p><span class=\"s1\"><a href=\"https:\/\/www.couchbase.com\/blog\/announcing-couchbase-server-6-5-0-beta-whats-new-and-improved\/\">Blog: Announcing Couchbase Server 6.5 \u2013 What\u2019s New and Improved<\/a><\/span><\/p>\n\n\n\n<p><span class=\"s1\"><a href=\"https:\/\/www.couchbase.com\/blog\/couchbase-brings-distributed-multi-document-acid-transactions-to-nosql\/\">Blog: Couchbase Brings Distributed Multi-Document ACID Transactions to NoSQL<\/a><\/span><\/p>\n\n\n\n<p><span class=\"s1\"><a href=\"https:\/\/www.couchbase.com\/blog\/tag\/6-5\/\"><b>All 6.5 Blogs<\/b><\/a><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Couchbase Eventing Service provides a framework for writing your own functions to process data change events (create, update, delete\/expiry). Couchbase Server 6.5 introduces a set of important improvements to the Eventing Service that enable a lot of new use cases and simplify maintenance of Evening Functions. Source Bucket Mutations An Eventing function is defined to [&hellip;]<\/p>\n","protected":false},"author":39639,"featured_media":1467,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"_acf":"","footnotes":""},"categories":[54,348],"tags":[349,219,296],"ppma_author":[350],"class_list":["post-1468","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-server","category-eventing","tag-6-5","tag-curl","tag-functions"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.6 (Yoast SEO v27.6) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Eventing Service Improvements in Couchbase Server 6.5 - The Couchbase Blog<\/title>\n<meta name=\"description\" content=\"Couchbase Server 6.5 introduces a set of important improvements to the Eventing Service: full access to the source bucket, curl function, possibility to pause and to resume deployed functions.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/ko\/eventing-service-improvements-in-couchbase-server-6-5\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Eventing Service Improvements in Couchbase Server 6.5\" \/>\n<meta property=\"og:description\" content=\"Couchbase Server 6.5 introduces a set of important improvements to the Eventing Service: full access to the source bucket, curl function, possibility to pause and to resume deployed functions.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/ko\/eventing-service-improvements-in-couchbase-server-6-5\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2019-08-09T17:00:40+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/5\/2026\/05\/Eventing-Couchbase65.png\" \/>\n\t<meta property=\"og:image:width\" content=\"2048\" \/>\n\t<meta property=\"og:image:height\" content=\"770\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Vaidas Gasiunas, Solution Architect, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Vaidas Gasiunas, Solution Architect, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/ko\\\/eventing-service-improvements-in-couchbase-server-6-5\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/ko\\\/eventing-service-improvements-in-couchbase-server-6-5\\\/\"},\"author\":{\"name\":\"Vaidas Gasiunas, Solution Architect, Couchbase\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#\\\/schema\\\/person\\\/c01f7147993aaff01692dc94d9e339fb\"},\"headline\":\"Eventing Service Improvements in Couchbase Server 6.5\",\"datePublished\":\"2019-08-09T17:00:40+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/ko\\\/eventing-service-improvements-in-couchbase-server-6-5\\\/\"},\"wordCount\":1295,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/ko\\\/eventing-service-improvements-in-couchbase-server-6-5\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/5\\\/2026\\\/05\\\/Eventing-Couchbase65.png\",\"keywords\":[\"6.5\",\"curl\",\"functions\"],\"articleSection\":[\"Couchbase Server\",\"Eventing\"],\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/ko\\\/eventing-service-improvements-in-couchbase-server-6-5\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/ko\\\/eventing-service-improvements-in-couchbase-server-6-5\\\/\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/ko\\\/eventing-service-improvements-in-couchbase-server-6-5\\\/\",\"name\":\"Eventing Service Improvements in Couchbase Server 6.5 - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/ko\\\/eventing-service-improvements-in-couchbase-server-6-5\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/ko\\\/eventing-service-improvements-in-couchbase-server-6-5\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/5\\\/2026\\\/05\\\/Eventing-Couchbase65.png\",\"datePublished\":\"2019-08-09T17:00:40+00:00\",\"description\":\"Couchbase Server 6.5 introduces a set of important improvements to the Eventing Service: full access to the source bucket, curl function, possibility to pause and to resume deployed functions.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/ko\\\/eventing-service-improvements-in-couchbase-server-6-5\\\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/ko\\\/eventing-service-improvements-in-couchbase-server-6-5\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/ko\\\/eventing-service-improvements-in-couchbase-server-6-5\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/5\\\/2026\\\/05\\\/Eventing-Couchbase65.png\",\"contentUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/5\\\/2026\\\/05\\\/Eventing-Couchbase65.png\",\"width\":2048,\"height\":770},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/ko\\\/eventing-service-improvements-in-couchbase-server-6-5\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Eventing Service Improvements in Couchbase Server 6.5\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/5\\\/2026\\\/06\\\/logo.svg\",\"contentUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/5\\\/2026\\\/06\\\/logo.svg\",\"width\":\"1024\",\"height\":\"1024\",\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#\\\/schema\\\/person\\\/c01f7147993aaff01692dc94d9e339fb\",\"name\":\"Vaidas Gasiunas, Solution Architect, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/87e93f8738ca8b966d667b05071f9730245459aa53bdb340d57479a6873942ae?s=96&d=mm&r=gd9197990b30dc5da6178ed210c7170c5\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/87e93f8738ca8b966d667b05071f9730245459aa53bdb340d57479a6873942ae?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/87e93f8738ca8b966d667b05071f9730245459aa53bdb340d57479a6873942ae?s=96&d=mm&r=g\",\"caption\":\"Vaidas Gasiunas, Solution Architect, Couchbase\"},\"description\":\"Vaidas Gasiunas is a Solution Architect in Couchbase Germany, helping the customers in the region to adopt Couchbase for their use cases. Vaidas has long year experience in architecting and developing database systems with the focus on scalability an performance optimization.\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/ko\\\/author\\\/vgasiunas\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Eventing Service Improvements in Couchbase Server 6.5 - The Couchbase Blog","description":"Couchbase Server 6.5 introduces a set of important improvements to the Eventing Service: full access to the source bucket, curl function, possibility to pause and to resume deployed functions.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/ko\/eventing-service-improvements-in-couchbase-server-6-5\/","og_locale":"ko_KR","og_type":"article","og_title":"Eventing Service Improvements in Couchbase Server 6.5","og_description":"Couchbase Server 6.5 introduces a set of important improvements to the Eventing Service: full access to the source bucket, curl function, possibility to pause and to resume deployed functions.","og_url":"https:\/\/www.couchbase.com\/blog\/ko\/eventing-service-improvements-in-couchbase-server-6-5\/","og_site_name":"The Couchbase Blog","article_published_time":"2019-08-09T17:00:40+00:00","og_image":[{"width":2048,"height":770,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/5\/2026\/05\/Eventing-Couchbase65.png","type":"image\/png"}],"author":"Vaidas Gasiunas, Solution Architect, Couchbase","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Vaidas Gasiunas, Solution Architect, Couchbase","Est. reading time":"6\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/ko\/eventing-service-improvements-in-couchbase-server-6-5\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/ko\/eventing-service-improvements-in-couchbase-server-6-5\/"},"author":{"name":"Vaidas Gasiunas, Solution Architect, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c01f7147993aaff01692dc94d9e339fb"},"headline":"Eventing Service Improvements in Couchbase Server 6.5","datePublished":"2019-08-09T17:00:40+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/ko\/eventing-service-improvements-in-couchbase-server-6-5\/"},"wordCount":1295,"commentCount":1,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/ko\/eventing-service-improvements-in-couchbase-server-6-5\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/5\/2026\/05\/Eventing-Couchbase65.png","keywords":["6.5","curl","functions"],"articleSection":["Couchbase Server","Eventing"],"inLanguage":"ko-KR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/ko\/eventing-service-improvements-in-couchbase-server-6-5\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/ko\/eventing-service-improvements-in-couchbase-server-6-5\/","url":"https:\/\/www.couchbase.com\/blog\/ko\/eventing-service-improvements-in-couchbase-server-6-5\/","name":"Eventing Service Improvements in Couchbase Server 6.5 - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/ko\/eventing-service-improvements-in-couchbase-server-6-5\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/ko\/eventing-service-improvements-in-couchbase-server-6-5\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/5\/2026\/05\/Eventing-Couchbase65.png","datePublished":"2019-08-09T17:00:40+00:00","description":"Couchbase Server 6.5 introduces a set of important improvements to the Eventing Service: full access to the source bucket, curl function, possibility to pause and to resume deployed functions.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/ko\/eventing-service-improvements-in-couchbase-server-6-5\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/ko\/eventing-service-improvements-in-couchbase-server-6-5\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/ko\/eventing-service-improvements-in-couchbase-server-6-5\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/5\/2026\/05\/Eventing-Couchbase65.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/5\/2026\/05\/Eventing-Couchbase65.png","width":2048,"height":770},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/ko\/eventing-service-improvements-in-couchbase-server-6-5\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Eventing Service Improvements in Couchbase Server 6.5"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"The Couchbase Blog","description":"Couchbase, the NoSQL Database","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"The Couchbase Blog","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/5\/2026\/06\/logo.svg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/5\/2026\/06\/logo.svg","width":"1024","height":"1024","caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c01f7147993aaff01692dc94d9e339fb","name":"Vaidas Gasiunas, Solution Architect, Couchbase","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/secure.gravatar.com\/avatar\/87e93f8738ca8b966d667b05071f9730245459aa53bdb340d57479a6873942ae?s=96&d=mm&r=gd9197990b30dc5da6178ed210c7170c5","url":"https:\/\/secure.gravatar.com\/avatar\/87e93f8738ca8b966d667b05071f9730245459aa53bdb340d57479a6873942ae?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/87e93f8738ca8b966d667b05071f9730245459aa53bdb340d57479a6873942ae?s=96&d=mm&r=g","caption":"Vaidas Gasiunas, Solution Architect, Couchbase"},"description":"Vaidas Gasiunas is a Solution Architect in Couchbase Germany, helping the customers in the region to adopt Couchbase for their use cases. Vaidas has long year experience in architecting and developing database systems with the focus on scalability an performance optimization.","url":"https:\/\/www.couchbase.com\/blog\/ko\/author\/vgasiunas\/"}]}},"acf":[],"authors":[{"term_id":350,"user_id":39639,"is_guest":0,"slug":"vgasiunas","display_name":"Vaidas Gasiunas, Solution Architect, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=mm&r=g","author_category":"","first_name":"Vaidas","last_name":"Gasiunas, Solution Architect, Couchbase","user_url":"","job_title":"","description":"Vaidas Gasiunas is a Solution Architect in Couchbase Germany, helping the customers in the region to adopt Couchbase for their use cases. Vaidas has long year experience in architecting and developing database systems with the focus on scalability an performance optimization."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/1468","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/users\/39639"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/comments?post=1468"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/1468\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media\/1467"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media?parent=1468"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/categories?post=1468"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/tags?post=1468"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/ppma_author?post=1468"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}