{"version":"1.0","provider_name":"The Couchbase Blog","provider_url":"https:\/\/www.couchbase.com\/blog\/es","author_name":"Rishit Chaudhary, Software Engineer","author_url":"https:\/\/www.couchbase.com\/blog\/es\/author\/rishitchaudhary\/","title":"Build a Rate Limiter With Couchbase Eventing","type":"rich","width":600,"height":338,"html":"<blockquote class=\"wp-embedded-content\" data-secret=\"qITUkEhT5p\"><a href=\"https:\/\/www.couchbase.com\/blog\/es\/build-a-rate-limiter-with-couchbase-eventing\/\">Build a Rate Limiter With Couchbase Eventing<\/a><\/blockquote><iframe sandbox=\"allow-scripts\" security=\"restricted\" src=\"https:\/\/www.couchbase.com\/blog\/es\/build-a-rate-limiter-with-couchbase-eventing\/embed\/#?secret=qITUkEhT5p\" width=\"600\" height=\"338\" title=\"&#8220;Build a Rate Limiter With Couchbase Eventing&#8221; &#8212; The Couchbase Blog\" data-secret=\"qITUkEhT5p\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" class=\"wp-embedded-content\"><\/iframe><script>\n\/*! This file is auto-generated *\/\n!function(d,l){\"use strict\";l.querySelector&&d.addEventListener&&\"undefined\"!=typeof URL&&(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&&!\/[^a-zA-Z0-9]\/.test(t.secret)){for(var s,r,n,a=l.querySelectorAll('iframe[data-secret=\"'+t.secret+'\"]'),o=l.querySelectorAll('blockquote[data-secret=\"'+t.secret+'\"]'),c=new RegExp(\"^https?:$\",\"i\"),i=0;i<o.length;i++)o[i].style.display=\"none\";for(i=0;i<a.length;i++)s=a[i],e.source===s.contentWindow&&(s.removeAttribute(\"style\"),\"height\"===t.message?(1e3<(r=parseInt(t.value,10))?r=1e3:~~r<200&&(r=200),s.height=r):\"link\"===t.message&&(r=new URL(s.getAttribute(\"src\")),n=new URL(t.value),c.test(n.protocol))&&n.host===r.host&&l.activeElement===s&&(d.top.location.href=t.value))}},d.addEventListener(\"message\",d.wp.receiveEmbedMessage,!1),l.addEventListener(\"DOMContentLoaded\",function(){for(var e,t,s=l.querySelectorAll(\"iframe.wp-embedded-content\"),r=0;r<s.length;r++)(t=(e=s[r]).getAttribute(\"data-secret\"))||(t=Math.random().toString(36).substring(2,12),e.src+=\"#?secret=\"+t,e.setAttribute(\"data-secret\",t)),e.contentWindow.postMessage({message:\"ready\",secret:t},\"*\")},!1)))}(window,document);\n\/\/# sourceURL=https:\/\/www.couchbase.com\/blog\/wp-includes\/js\/wp-embed.min.js\n<\/script>","thumbnail_url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/5\/2026\/05\/Build-a-Rate-Limiter-With-Couchbase-Eventing.png","thumbnail_width":2400,"thumbnail_height":1256,"description":"Introduction Couchbase Server 8.0 introduces a new Eventing function handler called OnDeploy that allows customers to run business logic during Eventing function deployment or resumption without requiring any external mutation to trigger it. Earlier, customers with use cases that needed to run any logic before an Eventing function deployed or resumed were left with a [&hellip;]"}