Files
nexus/sreweekly/articles/250/04-the-day-of-the-rds-multi-az-failover.html
2026-09-12 17:23:01 +08:00

1304 lines
91 KiB
HTML
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="en-US" prefix="og: https://ogp.me/ns#">
<head><meta charset="UTF-8" /><script>if(navigator.userAgent.match(/MSIE|Internet Explorer/i)||navigator.userAgent.match(/Trident\/7\..*?rv:11/i)){var href=document.location.href;if(!href.match(/[?&]nowprocket/)){if(href.indexOf("?")==-1){if(href.indexOf("#")==-1){document.location.href=href+"?nowprocket=1"}else{document.location.href=href.replace("#","?nowprocket=1#")}}else{if(href.indexOf("#")==-1){document.location.href=href+"&nowprocket=1"}else{document.location.href=href.replace("#","&nowprocket=1#")}}}}</script><script>(()=>{class RocketLazyLoadScripts{constructor(){this.v="1.2.5.1",this.triggerEvents=["keydown","mousedown","mousemove","touchmove","touchstart","touchend","wheel"],this.userEventHandler=this.t.bind(this),this.touchStartHandler=this.i.bind(this),this.touchMoveHandler=this.o.bind(this),this.touchEndHandler=this.h.bind(this),this.clickHandler=this.u.bind(this),this.interceptedClicks=[],this.interceptedClickListeners=[],this.l(this),window.addEventListener("pageshow",(t=>{this.persisted=t.persisted,this.everythingLoaded&&this.m()})),document.addEventListener("DOMContentLoaded",(()=>{this.p()})),this.delayedScripts={normal:[],async:[],defer:[]},this.trash=[],this.allJQueries=[]}k(t){document.hidden?t.t():(this.triggerEvents.forEach((e=>window.addEventListener(e,t.userEventHandler,{passive:!0}))),window.addEventListener("touchstart",t.touchStartHandler,{passive:!0}),window.addEventListener("mousedown",t.touchStartHandler),document.addEventListener("visibilitychange",t.userEventHandler))}_(){this.triggerEvents.forEach((t=>window.removeEventListener(t,this.userEventHandler,{passive:!0}))),document.removeEventListener("visibilitychange",this.userEventHandler)}i(t){"HTML"!==t.target.tagName&&(window.addEventListener("touchend",this.touchEndHandler),window.addEventListener("mouseup",this.touchEndHandler),window.addEventListener("touchmove",this.touchMoveHandler,{passive:!0}),window.addEventListener("mousemove",this.touchMoveHandler),t.target.addEventListener("click",this.clickHandler),this.L(t.target,!0),this.M(t.target,"onclick","rocket-onclick"),this.C())}o(t){window.removeEventListener("touchend",this.touchEndHandler),window.removeEventListener("mouseup",this.touchEndHandler),window.removeEventListener("touchmove",this.touchMoveHandler,{passive:!0}),window.removeEventListener("mousemove",this.touchMoveHandler),t.target.removeEventListener("click",this.clickHandler),this.L(t.target,!1),this.M(t.target,"rocket-onclick","onclick"),this.O()}h(){window.removeEventListener("touchend",this.touchEndHandler),window.removeEventListener("mouseup",this.touchEndHandler),window.removeEventListener("touchmove",this.touchMoveHandler,{passive:!0}),window.removeEventListener("mousemove",this.touchMoveHandler)}u(t){t.target.removeEventListener("click",this.clickHandler),this.L(t.target,!1),this.M(t.target,"rocket-onclick","onclick"),this.interceptedClicks.push(t),t.preventDefault(),t.stopPropagation(),t.stopImmediatePropagation(),this.O()}D(){window.removeEventListener("touchstart",this.touchStartHandler,{passive:!0}),window.removeEventListener("mousedown",this.touchStartHandler),this.interceptedClicks.forEach((t=>{t.target.dispatchEvent(new MouseEvent("click",{view:t.view,bubbles:!0,cancelable:!0}))}))}l(t){EventTarget.prototype.addEventListenerBase=EventTarget.prototype.addEventListener,EventTarget.prototype.addEventListener=function(e,i,o){"click"!==e||t.windowLoaded||i===t.clickHandler||t.interceptedClickListeners.push({target:this,func:i,options:o}),(this||window).addEventListenerBase(e,i,o)}}L(t,e){this.interceptedClickListeners.forEach((i=>{i.target===t&&(e?t.removeEventListener("click",i.func,i.options):t.addEventListener("click",i.func,i.options))})),t.parentNode!==document.documentElement&&this.L(t.parentNode,e)}S(){return new Promise((t=>{this.T?this.O=t:t()}))}C(){this.T=!0}O(){this.T=!1}M(t,e,i){t.hasAttribute&&t.hasAttribute(e)&&(event.target.setAttribute(i,event.target.getAttribute(e)),event.target.removeAttribute(e))}t(){this._(this),"loading"===document.readyState?document.addEventListener("DOMContentLoaded",this.R.bind(this)):this.R()}p(){let t=[];document.querySelectorAll("script[type=rocketlazyloadscript][data-rocket-src]").forEach((e=>{let i=e.getAttribute("data-rocket-src");if(i&&0!==i.indexOf("data:")){0===i.indexOf("//")&&(i=location.protocol+i);try{const o=new URL(i).origin;o!==location.origin&&t.push({src:o,crossOrigin:e.crossOrigin||"module"===e.getAttribute("data-rocket-type")})}catch(t){}}})),t=[...new Map(t.map((t=>[JSON.stringify(t),t]))).values()],this.j(t,"preconnect")}async R(){this.lastBreath=Date.now(),this.P(this),this.F(this),this.q(),this.A(),this.I(),await this.U(this.delayedScripts.normal),await this.U(this.delayedScripts.defer),await this.U(this.delayedScripts.async);try{await this.W(),await this.H(this),await this.J()}catch(t){console.error(t)}window.dispatchEvent(new Event("rocket-allScriptsLoaded")),this.everythingLoaded=!0,this.S().then((()=>{this.D()})),this.N()}A(){document.querySelectorAll("script[type=rocketlazyloadscript]").forEach((t=>{t.hasAttribute("data-rocket-src")?t.hasAttribute("async")&&!1!==t.async?this.delayedScripts.async.push(t):t.hasAttribute("defer")&&!1!==t.defer||"module"===t.getAttribute("data-rocket-type")?this.delayedScripts.defer.push(t):this.delayedScripts.normal.push(t):this.delayedScripts.normal.push(t)}))}async B(t){if(await this.G(),!0!==t.noModule||!("noModule"in HTMLScriptElement.prototype))return new Promise((e=>{let i;function o(){(i||t).setAttribute("data-rocket-status","executed"),e()}try{if(navigator.userAgent.indexOf("Firefox/")>0||""===navigator.vendor)i=document.createElement("script"),[...t.attributes].forEach((t=>{let e=t.nodeName;"type"!==e&&("data-rocket-type"===e&&(e="type"),"data-rocket-src"===e&&(e="src"),i.setAttribute(e,t.nodeValue))})),t.text&&(i.text=t.text),i.hasAttribute("src")?(i.addEventListener("load",o),i.addEventListener("error",(function(){i.setAttribute("data-rocket-status","failed"),e()})),setTimeout((()=>{i.isConnected||e()}),1)):(i.text=t.text,o()),t.parentNode.replaceChild(i,t);else{const i=t.getAttribute("data-rocket-type"),n=t.getAttribute("data-rocket-src");i?(t.type=i,t.removeAttribute("data-rocket-type")):t.removeAttribute("type"),t.addEventListener("load",o),t.addEventListener("error",(function(){t.setAttribute("data-rocket-status","failed"),e()})),n?(t.removeAttribute("data-rocket-src"),t.src=n):t.src="data:text/javascript;base64,"+window.btoa(unescape(encodeURIComponent(t.text)))}}catch(i){t.setAttribute("data-rocket-status","failed"),e()}}));t.setAttribute("data-rocket-status","skipped")}async U(t){const e=t.shift();return e&&e.isConnected?(await this.B(e),this.U(t)):Promise.resolve()}I(){this.j([...this.delayedScripts.normal,...this.delayedScripts.defer,...this.delayedScripts.async],"preload")}j(t,e){var i=document.createDocumentFragment();t.forEach((t=>{const o=t.getAttribute&&t.getAttribute("data-rocket-src")||t.src;if(o){const n=document.createElement("link");n.href=o,n.rel=e,"preconnect"!==e&&(n.as="script"),t.getAttribute&&"module"===t.getAttribute("data-rocket-type")&&(n.crossOrigin=!0),t.crossOrigin&&(n.crossOrigin=t.crossOrigin),t.integrity&&(n.integrity=t.integrity),i.appendChild(n),this.trash.push(n)}})),document.head.appendChild(i)}P(t){let e={};function i(i,o){return e[o].eventsToRewrite.indexOf(i)>=0&&!t.everythingLoaded?"rocket-"+i:i}function o(t,o){!function(t){e[t]||(e[t]={originalFunctions:{add:t.addEventListener,remove:t.removeEventListener},eventsToRewrite:[]},t.addEventListener=function(){arguments[0]=i(arguments[0],t),e[t].originalFunctions.add.apply(t,arguments)},t.removeEventListener=function(){arguments[0]=i(arguments[0],t),e[t].originalFunctions.remove.apply(t,arguments)})}(t),e[t].eventsToRewrite.push(o)}function n(e,i){let o=e[i];e[i]=null,Object.defineProperty(e,i,{get:()=>o||function(){},set(n){t.everythingLoaded?o=n:e["rocket"+i]=o=n}})}o(document,"DOMContentLoaded"),o(window,"DOMContentLoaded"),o(window,"load"),o(window,"pageshow"),o(document,"readystatechange"),n(document,"onreadystatechange"),n(window,"onload"),n(window,"onpageshow")}F(t){let e;function i(e){return t.everythingLoaded?e:e.split(" ").map((t=>"load"===t||0===t.indexOf("load.")?"rocket-jquery-load":t)).join(" ")}function o(o){if(o&&o.fn&&!t.allJQueries.includes(o)){o.fn.ready=o.fn.init.prototype.ready=function(e){return t.domReadyFired?e.bind(document)(o):document.addEventListener("rocket-DOMContentLoaded",(()=>e.bind(document)(o))),o([])};const e=o.fn.on;o.fn.on=o.fn.init.prototype.on=function(){return this[0]===window&&("string"==typeof arguments[0]||arguments[0]instanceof String?arguments[0]=i(arguments[0]):"object"==typeof arguments[0]&&Object.keys(arguments[0]).forEach((t=>{const e=arguments[0][t];delete arguments[0][t],arguments[0][i(t)]=e}))),e.apply(this,arguments),this},t.allJQueries.push(o)}e=o}o(window.jQuery),Object.defineProperty(window,"jQuery",{get:()=>e,set(t){o(t)}})}async H(t){const e=document.querySelector("script[data-webpack]");e&&(await async function(){return new Promise((t=>{e.addEventListener("load",t),e.addEventListener("error",t)}))}(),await t.K(),await t.H(t))}async W(){this.domReadyFired=!0,await this.G(),document.dispatchEvent(new Event("rocket-readystatechange")),await this.G(),document.rocketonreadystatechange&&document.rocketonreadystatechange(),await this.G(),document.dispatchEvent(new Event("rocket-DOMContentLoaded")),await this.G(),window.dispatchEvent(new Event("rocket-DOMContentLoaded"))}async J(){await this.G(),document.dispatchEvent(new Event("rocket-readystatechange")),await this.G(),document.rocketonreadystatechange&&document.rocketonreadystatechange(),await this.G(),window.dispatchEvent(new Event("rocket-load")),await this.G(),window.rocketonload&&window.rocketonload(),await this.G(),this.allJQueries.forEach((t=>t(window).trigger("rocket-jquery-load"))),await this.G();const t=new Event("rocket-pageshow");t.persisted=this.persisted,window.dispatchEvent(t),await this.G(),window.rocketonpageshow&&window.rocketonpageshow({persisted:this.persisted}),this.windowLoaded=!0}m(){document.onreadystatechange&&document.onreadystatechange(),window.onload&&window.onload(),window.onpageshow&&window.onpageshow({persisted:this.persisted})}q(){const t=new Map;document.write=document.writeln=function(e){const i=document.currentScript;i||console.error("WPRocket unable to document.write this: "+e);const o=document.createRange(),n=i.parentElement;let s=t.get(i);void 0===s&&(s=i.nextSibling,t.set(i,s));const c=document.createDocumentFragment();o.setStart(c,0),c.appendChild(o.createContextualFragment(e)),n.insertBefore(c,s)}}async G(){Date.now()-this.lastBreath>45&&(await this.K(),this.lastBreath=Date.now())}async K(){return document.hidden?new Promise((t=>setTimeout(t))):new Promise((t=>requestAnimationFrame(t)))}N(){this.trash.forEach((t=>t.remove()))}static run(){const t=new RocketLazyLoadScripts;t.k(t)}}RocketLazyLoadScripts.run()})();</script>
<meta http-equiv="x-ua-compatible" content="ie=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="profile" href="http://gmpg.org/xfn/11" />
<style>img:is([sizes="auto" i], [sizes^="auto," i]) { contain-intrinsic-size: 3000px 1500px }</style>
<!-- Search Engine Optimization by Rank Math PRO - https://rankmath.com/ -->
<title>The Day of the RDS Multi-AZ Failover - Razorpay Tech</title>
<meta name="description" content="On a fateful Friday night, we at Razorpay set out to understand how the RDS Multi-AZ replication works."/>
<meta name="robots" content="follow, index, max-snippet:-1, max-video-preview:-1, max-image-preview:large"/>
<link rel="canonical" href="https://razorpay.com/blog/day-of-rds-multi-az-failover/" />
<meta property="og:locale" content="en_US" />
<meta property="og:type" content="article" />
<meta property="og:title" content="The Day of the RDS Multi-AZ Failover - Razorpay Tech" />
<meta property="og:description" content="On a fateful Friday night, we at Razorpay set out to understand how the RDS Multi-AZ replication works." />
<meta property="og:url" content="https://razorpay.com/blog/day-of-rds-multi-az-failover/" />
<meta property="og:site_name" content="Razorpay Blog" />
<meta property="article:tag" content="Razorpay Stories" />
<meta property="article:tag" content="Technology" />
<meta property="article:section" content="Razorpay Stories" />
<meta property="og:updated_time" content="2020-07-20T03:24:28+05:30" />
<meta property="og:image" content="https://blog.razorpay.in/wp-content/uploads/2020/06/Final-Feature-image-1.png" />
<meta property="og:image:secure_url" content="https://blog.razorpay.in/wp-content/uploads/2020/06/Final-Feature-image-1.png" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="628" />
<meta property="og:image:alt" content="AWS Multi-AZ failover" />
<meta property="og:image:type" content="image/png" />
<meta property="article:published_time" content="2020-06-08T14:48:51+05:30" />
<meta property="article:modified_time" content="2020-07-20T03:24:28+05:30" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="The Day of the RDS Multi-AZ Failover - Razorpay Tech" />
<meta name="twitter:description" content="On a fateful Friday night, we at Razorpay set out to understand how the RDS Multi-AZ replication works." />
<meta name="twitter:image" content="https://blog.razorpay.in/wp-content/uploads/2020/06/Final-Feature-image-1.png" />
<meta name="twitter:label1" content="Written by" />
<meta name="twitter:data1" content="Rajeev Rai" />
<meta name="twitter:label2" content="Time to read" />
<meta name="twitter:data2" content="8 minutes" />
<script type="application/ld+json" class="rank-math-schema-pro">{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://razorpay.com/blog/#organization","name":"Razorpay Blog"},{"@type":"WebSite","@id":"https://razorpay.com/blog/#website","url":"https://razorpay.com/blog","name":"Razorpay Blog","publisher":{"@id":"https://razorpay.com/blog/#organization"},"inLanguage":"en-US"},{"@type":"ImageObject","@id":"https://blog.razorpay.in/wp-content/uploads/2020/06/Final-Feature-image-1.png","url":"https://blog.razorpay.in/wp-content/uploads/2020/06/Final-Feature-image-1.png","width":"1200","height":"628","inLanguage":"en-US"},{"@type":"BreadcrumbList","@id":"https://razorpay.com/blog/day-of-rds-multi-az-failover/#breadcrumb","itemListElement":[{"@type":"ListItem","position":"1","item":{"@id":"https://razorpay.com/blog","name":"Blog"}},{"@type":"ListItem","position":"2","item":{"@id":"https://razorpay.com/blog/category/razorpay-stories/","name":"Razorpay Stories"}},{"@type":"ListItem","position":"3","item":{"@id":"https://razorpay.com/blog/day-of-rds-multi-az-failover/","name":"The Day of the RDS Multi-AZ Failover"}}]},{"@type":"WebPage","@id":"https://razorpay.com/blog/day-of-rds-multi-az-failover/#webpage","url":"https://razorpay.com/blog/day-of-rds-multi-az-failover/","name":"The Day of the RDS Multi-AZ Failover - Razorpay Tech","datePublished":"2020-06-08T14:48:51+05:30","dateModified":"2020-07-20T03:24:28+05:30","isPartOf":{"@id":"https://razorpay.com/blog/#website"},"primaryImageOfPage":{"@id":"https://blog.razorpay.in/wp-content/uploads/2020/06/Final-Feature-image-1.png"},"inLanguage":"en-US","breadcrumb":{"@id":"https://razorpay.com/blog/day-of-rds-multi-az-failover/#breadcrumb"}},{"@type":"Person","@id":"https://razorpay.com/blog/author/rajeevrai/","name":"Rajeev Rai","url":"https://razorpay.com/blog/author/rajeevrai/","image":{"@type":"ImageObject","@id":"https://secure.gravatar.com/avatar/b9256f4b9d221e82568d868af9246277fc50fa2150aa6edcec8dce406d618458?s=96&amp;d=mm&amp;r=g","url":"https://secure.gravatar.com/avatar/b9256f4b9d221e82568d868af9246277fc50fa2150aa6edcec8dce406d618458?s=96&amp;d=mm&amp;r=g","caption":"Rajeev Rai","inLanguage":"en-US"},"sameAs":["https://razorpay.com/"],"worksFor":{"@id":"https://razorpay.com/blog/#organization"}},{"@type":"BlogPosting","headline":"The Day of the RDS Multi-AZ Failover - Razorpay Tech","keywords":"AWS Multi-AZ failover","datePublished":"2020-06-08T14:48:51+05:30","dateModified":"2020-07-20T03:24:28+05:30","articleSection":"Razorpay Stories","author":{"@id":"https://razorpay.com/blog/author/rajeevrai/","name":"Rajeev Rai"},"publisher":{"@id":"https://razorpay.com/blog/#organization"},"description":"On a fateful Friday night, we at Razorpay set out to understand how the RDS Multi-AZ replication works.","name":"The Day of the RDS Multi-AZ Failover - Razorpay Tech","@id":"https://razorpay.com/blog/day-of-rds-multi-az-failover/#richSnippet","isPartOf":{"@id":"https://razorpay.com/blog/day-of-rds-multi-az-failover/#webpage"},"image":{"@id":"https://blog.razorpay.in/wp-content/uploads/2020/06/Final-Feature-image-1.png"},"inLanguage":"en-US","mainEntityOfPage":{"@id":"https://razorpay.com/blog/day-of-rds-multi-az-failover/#webpage"}}]}</script>
<!-- /Rank Math WordPress SEO plugin -->
<link rel='dns-prefetch' href='//fonts.googleapis.com' />
<link rel='dns-prefetch' href='//js.hs-analytics.net' />
<link rel='dns-prefetch' href='//js.hsleadflows.net' />
<link rel='dns-prefetch' href='//js.hsadspixel.net' />
<link rel='dns-prefetch' href='//js.hs-banner.com' />
<link rel='dns-prefetch' href='//js.usemessages.com' />
<link rel='dns-prefetch' href='//blog.razorpay.in' />
<link rel="alternate" type="application/rss+xml" title="Razorpay Blog &raquo; Feed" href="https://razorpay.com/blog/feed/" />
<link rel="alternate" type="application/rss+xml" title="Razorpay Blog &raquo; Comments Feed" href="https://razorpay.com/blog/comments/feed/" />
<link rel="alternate" type="application/rss+xml" title="Razorpay Blog &raquo; The Day of the RDS Multi-AZ Failover Comments Feed" href="https://razorpay.com/blog/day-of-rds-multi-az-failover/feed/" />
<style id='wp-emoji-styles-inline-css' type='text/css'>
img.wp-smiley, img.emoji {
display: inline !important;
border: none !important;
box-shadow: none !important;
height: 1em !important;
width: 1em !important;
margin: 0 0.07em !important;
vertical-align: -0.1em !important;
background: none !important;
padding: 0 !important;
}
</style>
<link rel='stylesheet' id='wp-block-library-css' href='https://blog.razorpay.in/wp-includes/css/dist/block-library/style.min.css?ver=6.8.8' type='text/css' media='all' />
<style id='classic-theme-styles-inline-css' type='text/css'>
/*! This file is auto-generated */
.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
</style>
<style id='pdfemb-pdf-embedder-viewer-style-inline-css' type='text/css'>
.wp-block-pdfemb-pdf-embedder-viewer{max-width:none}
</style>
<style id='global-styles-inline-css' type='text/css'>
:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}
:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}
:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}
:root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;}
</style>
<link data-minify="1" rel='stylesheet' id='yspl-public-style-css' href='https://blog.razorpay.in/wp-content/cache/min/1/wp-content/plugins/wp-widget-in-navigation/css/style.css?ver=1775717183' type='text/css' media='all' />
<link rel='stylesheet' id='contentberg-fonts-css' href='https://fonts.googleapis.com/css?family=Roboto%3A400%2C500%2C700%7CPT+Serif%3A400%2C400i%2C600%7CIBM+Plex+Serif%3A500' type='text/css' media='all' />
<link data-minify="1" rel='stylesheet' id='contentberg-core-css' href='https://blog.razorpay.in/wp-content/cache/min/1/wp-content/themes/contentberg/style.css?ver=1775717183' type='text/css' media='all' />
<style id='contentberg-core-inline-css' type='text/css'>
.main-footer .bg-wrap:before { background-image: var(--wpr-bg-88d6efca-7612-4e7a-a676-c0eb91d60934);background-repeat: no-repeat; background-position: center center; background-size: cover; }
::selection { background: rgba(81,143,240, 0.7); }
::-moz-selection { background: rgba(81,143,240, 0.7); }
:root { --main-color: #518ff0; }
.cart-action .cart-link .counter,
.main-head.compact .posts-ticker .heading,
.single-cover .overlay .post-cat a,
.main-footer.bold-light .lower-footer .social-link,
.cat-label a:hover,
.cat-label.color a,
.post-thumb:hover .cat-label a,
.carousel-slider .category,
.grid-b-slider .category,
.page-links .current,
.page-links a:hover,
.page-links > span,
.post-content .read-more a:after,
.widget-posts .posts.full .counter:before,
.dark .widget_mc4wp_form_widget input[type="submit"],
.dark .widget-subscribe input[type="submit"],
.woocommerce span.onsale,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt,
.woocommerce input.button.alt:hover,
.woocommerce #respond input#submit.alt,
.woocommerce #respond input#submit.alt:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce .widget_price_filter .price_slider_amount .button { background: #518ff0; }
blockquote:before,
.modern-quote:before,
.wp-block-quote.is-style-large:before,
.main-color,
.top-bar .social-icons a:hover,
.navigation .menu > li:hover > a,
.navigation .menu > .current-menu-item > a,
.navigation .menu > .current-menu-parent > a,
.navigation .menu li li:hover > a,
.navigation .menu li li.current-menu-item > a,
.navigation.simple .menu > li:hover > a,
.navigation.simple .menu > .current-menu-item > a,
.navigation.simple .menu > .current-menu-parent > a,
.tag-share .post-tags a:hover,
.post-share-icons a:hover,
.post-share-icons .likes-count,
.author-box .author > span,
.comments-area .section-head .number,
.comments-list .comment-reply-link,
.comment-form input[type=checkbox],
.main-footer.dark .social-link:hover,
.lower-footer .social-icons .fa,
.archive-head .sub-title,
.social-share a:hover,
.social-icons a:hover,
.post-meta .post-cat > a,
.post-meta-c .post-author > a,
.large-post-b .post-footer .author a,
.main-pagination .next a:hover,
.main-pagination .previous a:hover,
.main-pagination.number .current,
.post-content a,
.textwidget a,
.widget-about .more,
.widget-about .social-icons .social-btn:hover,
.widget-social .social-link:hover,
.wp-block-pullquote blockquote:before,
.egcf-modal .checkbox,
.woocommerce .star-rating:before,
.woocommerce .star-rating span:before,
.woocommerce .amount,
.woocommerce .order-select .drop a:hover,
.woocommerce .order-select .drop li.active,
.woocommerce-page .order-select .drop a:hover,
.woocommerce-page .order-select .drop li.active,
.woocommerce .widget_price_filter .price_label .from,
.woocommerce .widget_price_filter .price_label .to,
.woocommerce div.product div.summary p.price,
.woocommerce div.product div.summary span.price,
.woocommerce #content div.product div.summary p.price,
.woocommerce #content div.product div.summary span.price,
.woocommerce .widget_price_filter .ui-slider .ui-slider-handle { color: #518ff0; }
.page-links .current,
.page-links a:hover,
.page-links > span,
.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover { border-color: #518ff0; }
.block-head-b .title { border-bottom: 1px solid #518ff0; }
.widget_categories a:before,
.widget_product_categories a:before,
.widget_archive a:before { border: 1px solid #518ff0; }
body,
h1,
h2,
h3,
h4,
h5,
h6,
input,
textarea,
select,
input[type="submit"],
button,
input[type="button"],
.button,
blockquote cite,
blockquote .wp-block-pullquote__citation,
.modern-quote cite,
.wp-block-quote.is-style-large cite,
.top-bar-content,
.search-action .search-field,
.main-head .title,
.navigation,
.tag-share,
.post-share-b .service,
.post-share-float .share-text,
.author-box,
.comments-list .comment-content,
.post-nav .label,
.main-footer.dark .back-to-top,
.lower-footer .social-icons,
.main-footer .social-strip .social-link,
.main-footer.bold .links .menu-item,
.main-footer.bold .copyright,
.archive-head,
.archive-head .description,
.cat-label a,
.text,
.section-head,
.post-title-alt,
.post-title,
.block-heading,
.block-head-b,
.block-head-c,
.small-post .post-title,
.likes-count .number,
.post-meta,
.post-meta .text-in,
.grid-post-b .read-more-btn,
.list-post-b .read-more-btn,
.post-footer .read-more,
.post-footer .social-share,
.post-footer .social-icons,
.large-post-b .post-footer .author a,
.main-slider,
.slider-overlay .heading,
.carousel-slider .category,
.carousel-slider .heading,
.grid-b-slider .heading,
.bold-slider,
.bold-slider .heading,
.main-pagination,
.main-pagination .load-button,
.page-links,
.post-content .wp-block-image figcaption,
.textwidget .wp-block-image figcaption,
.post-content .wp-caption-text,
.textwidget .wp-caption-text,
.post-content figcaption,
.textwidget figcaption,
.post-content,
.post-content .read-more,
.entry-content table,
.widget-about .more,
.widget-posts .post-title,
.widget-posts .posts.full .counter:before,
.widget-cta .label,
.social-follow .service-link,
.widget-twitter .meta .date,
.widget-twitter .follow,
.textwidget,
.widget_categories,
.widget_product_categories,
.widget_archive,
.widget_categories a,
.widget_product_categories a,
.widget_archive a,
.wp-caption-text,
figcaption,
.wp-block-button .wp-block-button__link,
.mobile-menu,
.woocommerce .woocommerce-message,
.woocommerce .woocommerce-error,
.woocommerce .woocommerce-info,
.woocommerce form .form-row,
.woocommerce .main .button,
.woocommerce .quantity .qty,
.woocommerce nav.woocommerce-pagination,
.woocommerce-cart .post-content,
.woocommerce .woocommerce-ordering,
.woocommerce-page .woocommerce-ordering,
.woocommerce ul.products,
.woocommerce.widget,
.woocommerce .woocommerce-noreviews,
.woocommerce div.product,
.woocommerce #content div.product,
.woocommerce #reviews #comments ol.commentlist .description,
.woocommerce-cart .cart-empty,
.woocommerce-cart .cart-collaterals .cart_totals table,
.woocommerce-cart .cart-collaterals .cart_totals .button,
.woocommerce .checkout .shop_table thead th,
.woocommerce .checkout .shop_table .amount,
.woocommerce-checkout #payment #place_order,
.top-bar .posts-ticker,
.post-content h1,
.post-content h2,
.post-content h3,
.post-content h4,
.post-content h5,
.post-content h6
{ font-family: "muli", Arial, sans-serif; }
blockquote,
.archive-head .description,
.text,
.post-content,
.entry-content,
.textwidget
{ font-family: "Muli", Arial, sans-serif; }
.post-title,
.post-title-alt { font-family: "Muli", Arial, sans-serif; }
.main-footer .bg-wrap:before { background-image: var(--wpr-bg-88d6efca-7612-4e7a-a676-c0eb91d60934);background-repeat: no-repeat; background-position: center center; background-size: cover; }
::selection { background: rgba(81,143,240, 0.7); }
::-moz-selection { background: rgba(81,143,240, 0.7); }
:root { --main-color: #518ff0; }
.cart-action .cart-link .counter,
.main-head.compact .posts-ticker .heading,
.single-cover .overlay .post-cat a,
.main-footer.bold-light .lower-footer .social-link,
.cat-label a:hover,
.cat-label.color a,
.post-thumb:hover .cat-label a,
.carousel-slider .category,
.grid-b-slider .category,
.page-links .current,
.page-links a:hover,
.page-links > span,
.post-content .read-more a:after,
.widget-posts .posts.full .counter:before,
.dark .widget_mc4wp_form_widget input[type="submit"],
.dark .widget-subscribe input[type="submit"],
.woocommerce span.onsale,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt,
.woocommerce input.button.alt:hover,
.woocommerce #respond input#submit.alt,
.woocommerce #respond input#submit.alt:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce .widget_price_filter .price_slider_amount .button { background: #518ff0; }
blockquote:before,
.modern-quote:before,
.wp-block-quote.is-style-large:before,
.main-color,
.top-bar .social-icons a:hover,
.navigation .menu > li:hover > a,
.navigation .menu > .current-menu-item > a,
.navigation .menu > .current-menu-parent > a,
.navigation .menu li li:hover > a,
.navigation .menu li li.current-menu-item > a,
.navigation.simple .menu > li:hover > a,
.navigation.simple .menu > .current-menu-item > a,
.navigation.simple .menu > .current-menu-parent > a,
.tag-share .post-tags a:hover,
.post-share-icons a:hover,
.post-share-icons .likes-count,
.author-box .author > span,
.comments-area .section-head .number,
.comments-list .comment-reply-link,
.comment-form input[type=checkbox],
.main-footer.dark .social-link:hover,
.lower-footer .social-icons .fa,
.archive-head .sub-title,
.social-share a:hover,
.social-icons a:hover,
.post-meta .post-cat > a,
.post-meta-c .post-author > a,
.large-post-b .post-footer .author a,
.main-pagination .next a:hover,
.main-pagination .previous a:hover,
.main-pagination.number .current,
.post-content a,
.textwidget a,
.widget-about .more,
.widget-about .social-icons .social-btn:hover,
.widget-social .social-link:hover,
.wp-block-pullquote blockquote:before,
.egcf-modal .checkbox,
.woocommerce .star-rating:before,
.woocommerce .star-rating span:before,
.woocommerce .amount,
.woocommerce .order-select .drop a:hover,
.woocommerce .order-select .drop li.active,
.woocommerce-page .order-select .drop a:hover,
.woocommerce-page .order-select .drop li.active,
.woocommerce .widget_price_filter .price_label .from,
.woocommerce .widget_price_filter .price_label .to,
.woocommerce div.product div.summary p.price,
.woocommerce div.product div.summary span.price,
.woocommerce #content div.product div.summary p.price,
.woocommerce #content div.product div.summary span.price,
.woocommerce .widget_price_filter .ui-slider .ui-slider-handle { color: #518ff0; }
.page-links .current,
.page-links a:hover,
.page-links > span,
.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover { border-color: #518ff0; }
.block-head-b .title { border-bottom: 1px solid #518ff0; }
.widget_categories a:before,
.widget_product_categories a:before,
.widget_archive a:before { border: 1px solid #518ff0; }
body,
h1,
h2,
h3,
h4,
h5,
h6,
input,
textarea,
select,
input[type="submit"],
button,
input[type="button"],
.button,
blockquote cite,
blockquote .wp-block-pullquote__citation,
.modern-quote cite,
.wp-block-quote.is-style-large cite,
.top-bar-content,
.search-action .search-field,
.main-head .title,
.navigation,
.tag-share,
.post-share-b .service,
.post-share-float .share-text,
.author-box,
.comments-list .comment-content,
.post-nav .label,
.main-footer.dark .back-to-top,
.lower-footer .social-icons,
.main-footer .social-strip .social-link,
.main-footer.bold .links .menu-item,
.main-footer.bold .copyright,
.archive-head,
.archive-head .description,
.cat-label a,
.text,
.section-head,
.post-title-alt,
.post-title,
.block-heading,
.block-head-b,
.block-head-c,
.small-post .post-title,
.likes-count .number,
.post-meta,
.post-meta .text-in,
.grid-post-b .read-more-btn,
.list-post-b .read-more-btn,
.post-footer .read-more,
.post-footer .social-share,
.post-footer .social-icons,
.large-post-b .post-footer .author a,
.main-slider,
.slider-overlay .heading,
.carousel-slider .category,
.carousel-slider .heading,
.grid-b-slider .heading,
.bold-slider,
.bold-slider .heading,
.main-pagination,
.main-pagination .load-button,
.page-links,
.post-content .wp-block-image figcaption,
.textwidget .wp-block-image figcaption,
.post-content .wp-caption-text,
.textwidget .wp-caption-text,
.post-content figcaption,
.textwidget figcaption,
.post-content,
.post-content .read-more,
.entry-content table,
.widget-about .more,
.widget-posts .post-title,
.widget-posts .posts.full .counter:before,
.widget-cta .label,
.social-follow .service-link,
.widget-twitter .meta .date,
.widget-twitter .follow,
.textwidget,
.widget_categories,
.widget_product_categories,
.widget_archive,
.widget_categories a,
.widget_product_categories a,
.widget_archive a,
.wp-caption-text,
figcaption,
.wp-block-button .wp-block-button__link,
.mobile-menu,
.woocommerce .woocommerce-message,
.woocommerce .woocommerce-error,
.woocommerce .woocommerce-info,
.woocommerce form .form-row,
.woocommerce .main .button,
.woocommerce .quantity .qty,
.woocommerce nav.woocommerce-pagination,
.woocommerce-cart .post-content,
.woocommerce .woocommerce-ordering,
.woocommerce-page .woocommerce-ordering,
.woocommerce ul.products,
.woocommerce.widget,
.woocommerce .woocommerce-noreviews,
.woocommerce div.product,
.woocommerce #content div.product,
.woocommerce #reviews #comments ol.commentlist .description,
.woocommerce-cart .cart-empty,
.woocommerce-cart .cart-collaterals .cart_totals table,
.woocommerce-cart .cart-collaterals .cart_totals .button,
.woocommerce .checkout .shop_table thead th,
.woocommerce .checkout .shop_table .amount,
.woocommerce-checkout #payment #place_order,
.top-bar .posts-ticker,
.post-content h1,
.post-content h2,
.post-content h3,
.post-content h4,
.post-content h5,
.post-content h6
{ font-family: "muli", Arial, sans-serif; }
blockquote,
.archive-head .description,
.text,
.post-content,
.entry-content,
.textwidget
{ font-family: "Muli", Arial, sans-serif; }
.post-title,
.post-title-alt { font-family: "Muli", Arial, sans-serif; }
</style>
<link data-minify="1" rel='stylesheet' id='contentberg-lightbox-css' href='https://blog.razorpay.in/wp-content/cache/min/1/wp-content/themes/contentberg/css/lightbox.css?ver=1775717183' type='text/css' media='all' />
<link data-minify="1" rel='stylesheet' id='font-awesome-css' href='https://blog.razorpay.in/wp-content/cache/min/1/wp-content/plugins/js_composer/assets/lib/bower/font-awesome/css/font-awesome.min.css?ver=1775717183' type='text/css' media='all' />
<!--[if lt IE 9]>
<link rel='stylesheet' id='vc_lte_ie9-css' href='https://blog.razorpay.in/wp-content/plugins/js_composer/assets/css/vc_lte_ie9.min.css?ver=6.0.5' type='text/css' media='screen' />
<![endif]-->
<link rel='stylesheet' id='contentberg-gfonts-custom-css' href='https://fonts.googleapis.com/css?family=muli%3A400%7Cmuli%3A600%7Cmuli%3A700%7CMuli%3A400%7CMuli%3A600%7CMuli%3A700%7CMuli%3A400%7CMuli%3A600%7CMuli%3A700%7Cmuli%3A400%7Cmuli%3A600%7Cmuli%3A700%7CMuli%3A400%7CMuli%3A600%7CMuli%3A700%7CMuli%3A400%7CMuli%3A600%7CMuli%3A700' type='text/css' media='all' />
<script type="text/javascript" id="jquery-core-js-extra">
/* <![CDATA[ */
var Sphere_Plugin = {"ajaxurl":"https:\/\/blog.razorpay.in\/wp-admin\/admin-ajax.php"};
/* ]]> */
</script>
<script type="rocketlazyloadscript" data-rocket-type="text/javascript" data-rocket-src="https://blog.razorpay.in/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js" defer></script>
<script type="rocketlazyloadscript" data-rocket-type="text/javascript" data-rocket-src="https://blog.razorpay.in/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1" id="jquery-migrate-js" defer></script>
<link rel="https://api.w.org/" href="https://razorpay.com/blog/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://razorpay.com/blog/wp-json/wp/v2/posts/3093" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://blog.razorpay.in/xmlrpc.php?rsd" />
<meta name="generator" content="WordPress 6.8.8" />
<link rel='shortlink' href='https://razorpay.com/blog/?p=3093' />
<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://razorpay.com/blog/wp-json/oembed/1.0/embed?url=https%3A%2F%2Frazorpay.com%2Fblog%2Fday-of-rds-multi-az-failover%2F" />
<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://razorpay.com/blog/wp-json/oembed/1.0/embed?url=https%3A%2F%2Frazorpay.com%2Fblog%2Fday-of-rds-multi-az-failover%2F&#038;format=xml" />
<!-- Start of HubSpot Embed Code -->
<script type="rocketlazyloadscript" data-minify="1" data-rocket-type="text/javascript" id="hs-script-loader" async defer data-rocket-src="https://blog.razorpay.in/wp-content/cache/min/1/5558946.js?ver=1775717183"></script>
<!-- End of HubSpot Embed Code -->
<link rel="preload" as="image" href="https://blog.razorpay.in/wp-content/uploads/2020/06/Final-Feature-image-1-1024x536.png" imagesrcset="https://blog.razorpay.in/wp-content/uploads/2020/06/Final-Feature-image-1-1024x536.png 1024w, https://blog.razorpay.in/wp-content/uploads/2020/06/Final-Feature-image-1-300x157.png 300w, https://blog.razorpay.in/wp-content/uploads/2020/06/Final-Feature-image-1-768x402.png 768w, https://blog.razorpay.in/wp-content/uploads/2020/06/Final-Feature-image-1.png 1200w" imagesizes="(max-width: 770px) 100vw, 770px" /><link rel="icon" href="https://blog.razorpay.in/wp-content/uploads/2020/07/cropped-favicon-1-32x32.png" sizes="32x32" />
<link rel="icon" href="https://blog.razorpay.in/wp-content/uploads/2020/07/cropped-favicon-1-192x192.png" sizes="192x192" />
<link rel="apple-touch-icon" href="https://blog.razorpay.in/wp-content/uploads/2020/07/cropped-favicon-1-180x180.png" />
<meta name="msapplication-TileImage" content="https://blog.razorpay.in/wp-content/uploads/2020/07/cropped-favicon-1-270x270.png" />
<style type="text/css" id="wp-custom-css">
p::-moz-selection { color: #000;}
p::selection { color: #000; }
span::-moz-selection { color: #000;}
span::selection { color: #000; }
h1::-moz-selection { color: #000;}
h1::selection { color: #000; }
h2::-moz-selection { color: #000;}
h2::selection { color: #000; }
h3::-moz-selection { color: #000;}
h3::selection { color: #000; }
h4::-moz-selection { color: #000;}
h4::selection { color: #000; }
h5::-moz-selection { color: #000;}
h5::selection { color: #000; }
h6::-moz-selection { color: #000;}
h6::selection { color: #000; }
img.logo-image {
width: 200px !important;
}
.main {
margin-top: 20px !important;
}
.archive-head .background {
display: none !important;
}
.cat-label {
display: none !important;
}
.posts-dynamic span.post-cat {
display: none !important;
}
.page-id-1081 span.post-cat {
display: none;
}
.main-head.simple-boxed {
border-top: none !important;
}
.navigation.simple .menu > li > a {
padding: 0 20px !important;
}
.wpcf7 form.sent .wpcf7-response-output {
display: none !important;
}
.bctt-ctt-text a {
font-weight: 100 !important;
line-height: 115% !important;
font-family: Muli !important;
font-size: 1.2em !important;
}
@media only screen and (max-width: 767px) {
.textwidget form.wpcf7-form.init {
display: none !important;
}
.code-block input.wpcf7-form-control.wpcf7-submit {
width: 80%;
background: #518ff0 !important;
}
.code-block form.wpcf7-form.init p {
margin-left: 5% !important;
}
.mobilenoshow{
display:none !important
}
}
@media only screen and (min-width: 767px) {
.actions {
padding-left: 0px !important;
}
.desktopnoshow{
display:none !important;
}
.main-head.simple-boxed .wrap-head {
margin-right: 13% !important;
}
.wpcf7 p {
display: inline-flex !important;
margin-bottom:5px !important;
margin-left:45px !important;
}
input.wpcf7-form-control.wpcf7-submit {
margin-top: 5px;
padding: 0px 14px !important;
height: 36px !important;
background: #518ff0 !important;
border-radius: 0px 2px 2px 0px;
}
input.wpcf7-form-control.wpcf7-text.wpcf7-email.wpcf7-validates-as-required.wpcf7-validates-as-email{
max-width: 200px !important;
height: 36px !important;
border-radius: 2px 0px 0px 2px !important;
}
.code-block form.wpcf7-form.init {
border-radius: 2px;
padding: 15px 10px;
background: #efefef;
margin-top: 65px !important;
display: inline-flex !important;
font-size: 16px !important;
width: 100%;
}
}
.postid-4838 .code-block-3, .postid-4806 .code-block-2 {
display: none !important;
}
.the-post .featured img {
max-height: 75vh;
object-fit: cover;
}
.rank-math-breadcrumb a {
color: #528ff0;
font-weight: 600;
font-size: 1.25em;
font-family: inherit;
}
.rank-math-breadcrumb{
font-size: 1.25em;
font-family: inherit;
text-align: center;
} </style>
<noscript><style> .wpb_animate_when_almost_visible { opacity: 1; }</style></noscript> <!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-F42RZ69DW8"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-F42RZ69DW8');
</script>
<style id="wpr-lazyload-bg-container"></style><style id="wpr-lazyload-bg-exclusion"></style>
<noscript>
<style id="wpr-lazyload-bg-nostyle">.main-footer .bg-wrap:before{--wpr-bg-88d6efca-7612-4e7a-a676-c0eb91d60934: url('https://contentberg.theme-sphere.com/wp-content/uploads/2018/09/footer-bg-1.png');}.main-footer .bg-wrap:before{--wpr-bg-05f50cb8-f429-494b-8fa9-ce2641cb74a7: url('https://contentberg.theme-sphere.com/wp-content/uploads/2018/09/footer-bg-1.png');}</style>
</noscript>
<script type="application/javascript">const rocket_pairs = [{"selector":".main-footer .bg-wrap","style":".main-footer .bg-wrap:before{--wpr-bg-88d6efca-7612-4e7a-a676-c0eb91d60934: url('https:\/\/contentberg.theme-sphere.com\/wp-content\/uploads\/2018\/09\/footer-bg-1.png');}","hash":"88d6efca-7612-4e7a-a676-c0eb91d60934","url":"https:\/\/contentberg.theme-sphere.com\/wp-content\/uploads\/2018\/09\/footer-bg-1.png"},{"selector":".main-footer .bg-wrap","style":".main-footer .bg-wrap:before{--wpr-bg-05f50cb8-f429-494b-8fa9-ce2641cb74a7: url('https:\/\/contentberg.theme-sphere.com\/wp-content\/uploads\/2018\/09\/footer-bg-1.png');}","hash":"05f50cb8-f429-494b-8fa9-ce2641cb74a7","url":"https:\/\/contentberg.theme-sphere.com\/wp-content\/uploads\/2018\/09\/footer-bg-1.png"}]; const rocket_excluded_pairs = [];</script></head>
<body class="wp-singular post-template-default single single-post postid-3093 single-format-standard wp-theme-contentberg no-sidebar has-lb wpb-js-composer js-comp-ver-6.0.5 vc_responsive">
<div class="main-wrap">
<header id="main-head" class="main-head head-nav-below has-search-modal simple simple-boxed">
<div class="inner inner-head" data-sticky-bar="1">
<div class="wrap cf wrap-head">
<div class="left-contain">
<span class="mobile-nav"><i class="fa fa-bars"></i></span>
<div class="title">
<a href="/" title="Razorpay Blog" rel="home">
<img width="195" height="28" src="https://razorpay.com/blog-content/uploads/2020/06/Logo.svg" class="logo-image" alt="Razorpay Blog" />
</a>
</div>
</div>
<div class="navigation-wrap inline">
<nav class="navigation inline simple light" data-sticky-bar="1">
<div class="menu-top-nav-container"><ul id="menu-top-nav" class="menu"><li id="menu-item-3972" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-cat-26 menu-item-3972"><a href="https://razorpay.com/blog/category/payments/"><span>Payments</span></a></li>
<li id="menu-item-3973" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-cat-27 menu-item-3973"><a href="https://razorpay.com/blog/category/business-banking/"><span>Business Banking Plus</span></a>
<ul class="sub-menu">
<li id="menu-item-11593" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-cat-448 menu-item-11593"><a href="https://razorpay.com/blog/category/business-banking/exclusive/"><span>Exclusive</span></a></li>
<li id="menu-item-12276" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-cat-481 menu-item-12276"><a href="https://razorpay.com/blog/category/business-banking/forex/"><span>Forex</span></a></li>
</ul>
</li>
<li id="menu-item-3974" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-cat-67 menu-item-3974"><a href="https://razorpay.com/blog/category/online-commerce/"><span>Online Commerce</span></a></li>
<li id="menu-item-3975" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-cat-66 menu-item-3975"><a href="https://razorpay.com/blog/category/payroll/"><span>Payroll</span></a></li>
<li id="menu-item-5510" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-cat-131 menu-item-5510"><a href="https://razorpay.com/blog/category/customer-stories/"><span>Customer Stories</span></a>
<ul class="sub-menu">
<li id="menu-item-11645" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-cat-371 menu-item-11645"><a href="https://razorpay.com/blog/category/inspiration-brew/"><span>Inspiration Brew</span></a></li>
</ul>
</li>
<li id="menu-item-9754" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-cat-354 menu-item-9754"><a href="https://razorpay.com/blog/category/policies-with-dr-poli/"><span>Policies with Dr. Poli</span></a></li>
</ul></div> </nav>
</div>
<div class="actions">
</div>
</div>
</div>
</header> <!-- .main-head -->
<div class="main wrap">
<div class="ts-row cf">
<div class="col-8 main-content cf">
<nav aria-label="breadcrumbs" class="rank-math-breadcrumb"><p><a href="https://razorpay.com/blog">Blog</a><span class="separator"> &raquo; </span><a href="https://razorpay.com/blog/category/razorpay-stories/">Razorpay Stories</a><span class="separator"> &raquo; </span><span class="last">The Day of the RDS Multi-AZ Failover</span></p></nav><article id="post-3093" class="the-post-modern the-post post-3093 post type-post status-publish format-standard has-post-thumbnail category-razorpay-stories tag-razorpay-stories tag-technology">
<header class="post-header the-post-header cf">
<div class="post-meta post-meta-b the-post-meta">
<span class="post-cat">
<span class="text-in">In</span>
<a href="https://razorpay.com/blog/category/razorpay-stories/" class="category">Razorpay Stories</a>
</span>
<h1 class="post-title-alt">
The Day of the RDS Multi-AZ Failover </h1>
<div class="below">
<a href="https://razorpay.com/blog/day-of-rds-multi-az-failover/" class="meta-item date-link"><time class="post-date" datetime="2020-06-08T14:48:51+05:30">June 8, 2020</time></a>
<span class="meta-sep"></span>
<span class="meta-item read-time">9 Mins Read</span>
</div>
</div>
<div class="featured">
<a href="https://blog.razorpay.in/wp-content/uploads/2020/06/Final-Feature-image-1.png" class="image-link"><img width="1024" height="536" src="https://blog.razorpay.in/wp-content/uploads/2020/06/Final-Feature-image-1-1024x536.png" class="attachment-large size-large wp-post-image" alt="" title="The Day of the RDS Multi-AZ Failover" decoding="async" fetchpriority="high" srcset="https://blog.razorpay.in/wp-content/uploads/2020/06/Final-Feature-image-1-1024x536.png 1024w, https://blog.razorpay.in/wp-content/uploads/2020/06/Final-Feature-image-1-300x157.png 300w, https://blog.razorpay.in/wp-content/uploads/2020/06/Final-Feature-image-1-768x402.png 768w, https://blog.razorpay.in/wp-content/uploads/2020/06/Final-Feature-image-1.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /> </a>
</div>
</header><!-- .post-header -->
<div>
<div class="post-share-float share-float-a is-hidden cf">
<span class="share-text">Share</span>
<div class="services">
<a href="https://www.facebook.com/sharer.php?u=https%3A%2F%2Frazorpay.com%2Fblog%2Fday-of-rds-multi-az-failover%2F" class="cf service facebook" target="_blank" title="Share on Facebook">
<i class="fa fa-facebook"></i>
<span class="label">Share on Facebook</span>
</a>
<a href="https://twitter.com/intent/tweet?url=https%3A%2F%2Frazorpay.com%2Fblog%2Fday-of-rds-multi-az-failover%2F&text=The%20Day%20of%20the%20RDS%20Multi-AZ%20Failover" class="cf service twitter" target="_blank" title="Share on Twitter">
<i class="fa fa-twitter"></i>
<span class="label">Share on Twitter</span>
</a>
<a href="https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Frazorpay.com%2Fblog%2Fday-of-rds-multi-az-failover%2F" class="cf service linkedin" target="_blank" title="LinkedIn">
<i class="fa fa-linkedin"></i>
<span class="label">LinkedIn</span>
</a>
<a href="mailto:?subject=The%20Day%20of%20the%20RDS%20Multi-AZ%20Failover&body=https%3A%2F%2Frazorpay.com%2Fblog%2Fday-of-rds-multi-az-failover%2F" class="cf service email" target="_blank" title="Email">
<i class="fa fa-envelope-o"></i>
<span class="label">Email</span>
</a>
</div>
</div>
</div>
<div class="post-content description cf entry-content has-share-float content-spacious-full">
<p><span style="font-weight: 400;">On a fateful Friday evening on December 2019, when a few of us were looking forward to packing their bags and going home, we got an alert from the internal monitoring tool that the system has started throwing unusually high numbers of 5xx errors.</span></p>
<p><span style="font-weight: 400;">The SRE team quickly realized that one of our main applications (called “API”) was not able to connect to its RDS (MySQL) database. By the time we could make any sense of the issue, the application came back up automatically and the alerts stopped.</span></p>
<p><span style="font-weight: 400;">Looking at the RDS logs, we realized that the master instance has gone through a </span><i><span style="font-weight: 400;">Multi-AZ failover</span></i><span style="font-weight: 400;">.</span></p>
<p><span style="font-weight: 400;">According to the SLA’s provided by AWS, whenever an instance marked as multi-AZ goes through a failure (whether it is a network failure, disk failure, etc); AWS automatically shifts the traffic to its standby running on a separate AZ on the same AWS region. The failover can take up anytime between 60 and 120 seconds, and this was the reason our master instance automatically came back up after around 110 seconds and the application started working without any manual intervention.</span></p>
<h2><span style="font-weight: 400;">Replication failure</span></h2>
<p><span style="font-weight: 400;">The API master instance has a set of 5 replica instances which are used to query different sets of workloads in various applications.</span></p>
<p><img decoding="async" class="alignnone size-full wp-image-3131" src="http://blog.razorpay.in/wp-content/uploads/2020/06/one.png" alt="" width="1032" height="438" srcset="https://blog.razorpay.in/wp-content/uploads/2020/06/one.png 1032w, https://blog.razorpay.in/wp-content/uploads/2020/06/one-300x127.png 300w, https://blog.razorpay.in/wp-content/uploads/2020/06/one-1024x435.png 1024w, https://blog.razorpay.in/wp-content/uploads/2020/06/one-768x326.png 768w" sizes="(max-width: 1032px) 100vw, 1032px" /></p>
<p><span style="font-weight: 400;">While the application stopped throwing errors and started working, we received another set of alerts stating that the replication on all the replicas had failed.</span></p>
<p><span style="font-weight: 400;">All the replicas displayed a </span><i><span style="font-weight: 400;">duplicate-key</span></i><span style="font-weight: 400;"> error message. We immediately shifted all the traffic going to these replica instances to the master instance so that the application does not receive any stale data and display incorrect data to the users.</span></p>
<p><span style="font-weight: 400;">The drawback of moving all the traffic to the master was that all the heavier selects were also moved to the master, and the CPU load on the master instance increased by 50%. Hence, our immediate move was to recreate all the 5 replicas so that we can move the replica load back as soon as possible.</span></p>
<p><span style="font-weight: 400;">The new replica creation process internally creates a snapshot from the master instance of the current data and then starts a DB instance from that snapshot. The very first snapshot from a particular machine takes the snapshot of the entire data until now, but the subsequent snapshots are incremental in nature. In the past, we had noticed that these incremental snapshots take around 15-20 minutes for the API database.</span></p>
<p><span style="font-weight: 400;">While taking the snapshot, we experienced another reality-check. The process was taking more than the usual time that day. After an hour or so, when the snapshot creation was still in progress, we were forced to contact AWS tech support to check why the whole process was taking much longer that day.</span></p>
<p><span style="font-weight: 400;">The AWS tech-support informed us that since the master instance has gone through a multi-AZ failover, they had replaced the old master with a new machine, which is a routine. Since the snapshot was being taken from the new machine then and was the very first snapshot from the new machine, RDS would take a full snapshot of the data.</span></p>
<p><span style="font-weight: 400;">So, we had no other option but wait for the snapshots to finish and keep monitoring the master instance in the meantime. We waited six hours for the snapshot to complete and only then were we able to create the replicas and redirect the traffic back to them.</span></p>
<p><span style="font-weight: 400;">Once the replicas were in place, we assumed that the worst was over, and finally called it a night.</span></p>
<h2><span style="font-weight: 400;">Data loss</span></h2>
<p><span style="font-weight: 400;">Next day, on our follow-up calls with RDS tech support, we were told that it was not a usual occurrence that the replication crashes in scenarios of multi-AZ master failover, and there must be more to the incident than what meets the eye.</span></p>
<p><span style="font-weight: 400;">This is when we started looking at various reasons on why the replication crashed. After matching the database and the application trace logs for the time around the incident, we found that a few records were present in the trace logs, but not in the database. This is when we realised that we had lost some data at the time of failover.</span></p>
<p><span style="font-weight: 400;">Being a fintech company, losing transactional data actually meant losing money and the trust of our customers. We began digging the binary logs for that time frame and matching them with the data in the store. We finally figured out that the RDS database had been missing 5 seconds of data. Right after these 5 seconds, we had started receiving 5xx errors on our application logs.</span></p>
<p><span style="font-weight: 400;">Luckily, we could dig the exact queries from the binary logs, go through the sequence of events from the application trace logs and after an 8-hour marathon meeting, were able to correct the data stored in the RDS.</span></p>
<h2><span style="font-weight: 400;">How Multi-AZ replication works</span></h2>
<p><span style="font-weight: 400;">It was time for us to investigate why we even fell into this situation in the first place. To solve the puzzle, we had to find the answer to the following questions:</span></p>
<ul>
<li style="font-weight: 400;"><span style="font-weight: 400;">How does the RDS Multi-AZ replication work?</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">What steps does RDS take at the time of a multi-AZ failover?</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">Why was the data missing in the database?</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">Why did the replication crash?</span></li>
</ul>
<p><span style="font-weight: 400;">We got on tens of calls with a number of RDS solution architects over the next week, and were finally able to connect all the dots.</span></p>
<p><img decoding="async" class="alignnone size-full wp-image-3132" src="http://blog.razorpay.in/wp-content/uploads/2020/06/two.png" alt="" width="1132" height="752" srcset="https://blog.razorpay.in/wp-content/uploads/2020/06/two.png 1132w, https://blog.razorpay.in/wp-content/uploads/2020/06/two-300x199.png 300w, https://blog.razorpay.in/wp-content/uploads/2020/06/two-1024x680.png 1024w, https://blog.razorpay.in/wp-content/uploads/2020/06/two-768x510.png 768w, https://blog.razorpay.in/wp-content/uploads/2020/06/two-270x180.png 270w, https://blog.razorpay.in/wp-content/uploads/2020/06/two-370x245.png 370w" sizes="(max-width: 1132px) 100vw, 1132px" /></p>
<p>&nbsp;</p>
<p><span style="font-weight: 400;">In a Multi-AZ setup, the RDS endpoint points to a primary instance. Another machine in a separate AZ is reserved for the standby, in case the master instance goes down. </span></p>
<p><span style="font-weight: 400;">The MySQL installed on the standby instance is in shutdown mode; and the replication happens between the two EBS. i.e., as soon as the data is written to the primary EBS, it is duplicated to the standby EBS in a synchronized fashion. This way, RDS ensures that any data written to the master EBS is always present on the standby EBS; and hence, there will be no data loss in the case of a failover.</span></p>
<p><span style="font-weight: 400;">At the time of a failover, the RDS goes through a number of steps to ensure that the traffic is moved over to the standby machine in a sane manner. These steps are listed below:</span></p>
<ol>
<li style="font-weight: 400;"><span style="font-weight: 400;">Primary MySQL instance goes through a cut-over (networking stopped). Client application goes down.</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">MySQL on the standby machine is started.</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">RDS endpoint switches to the standby machine (new primary).</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">Application starts connecting to the standby machine. Client application is up now.</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">Old primary machine goes through a host-change (hard-reboot).</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">EBS sync starts from the new primary instance to the new standby instance.</span></li>
</ol>
<p><span style="font-weight: 400;">Looking at the process of failover, it seems pretty foolproof; and the replicas should’ve never gone through any duplicate errors and we should’ve never had any data loss. </span></p>
<p><i><span style="font-weight: 400;">So, what went wrong?</span></i></p>
<h2><span style="font-weight: 400;">Incorrect configuration variable</span></h2>
<p><span style="font-weight: 400;">We found a MySQL configuration parameter innodb_flush_log_at_trx_commit, which is very critical for the seamless process of a failover.</span></p>
<p><span style="font-weight: 400;">InnoDB data changes are always committed to a transactional log which resides in the memory. This data is flushed to the EBS disk based on the setting of innodb_flush_log_at_trx_commit. </span></p>
<ul>
<li style="font-weight: 400;"><span style="font-weight: 400;">If the variable is set to 0, logs are written and flushed to the disk once every second. Transactions for which logs have not been flushed to the disk can be lost in case of a crash.</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">If the variable is set to 1, logs are written and flushed to the disk after every transaction commit. This is the default RDS setting and is required for full ACID compliance.</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">If the variable is set to 2, logs are written after each transaction commit, but flushed to disk after every one second. Transactions for which logs have not been flushed to the disk can be lost in case of a crash.</span></li>
</ul>
<p><span style="font-weight: 400;">For full ACID compliance, we must set the variable to 1. However, in our case, we had set it to 2. This means even though the logs were written after every commit, they were not getting flushed to the disk immediately.</span></p>
<p><span style="font-weight: 400;">After learning about this variable, everything suddenly became crystal clear to us. Since, we had set it to 2, the data was committed to the master instance but was not flushed to the primary EBS. Hence, the standby (new primary) never received this data; which is why we could not find it in the master instance after the failover.</span></p>
<p><i><span style="font-weight: 400;">But, why did the replicas fail? And, why was the data found in the binary logs?</span></i></p>
<p><span style="font-weight: 400;">Apparently, there is another variable called sync_binlog which when set to 1, flushes the data to binary logs immediately. As we had set it to 1 (which is correct), the data got written to the binary logs and replicas were able to read that data. Once the data was read, replicas ran those DML queries onto them and became in sync with the old master.</span></p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-3133" src="http://blog.razorpay.in/wp-content/uploads/2020/06/three.png" alt="" width="647" height="639" srcset="https://blog.razorpay.in/wp-content/uploads/2020/06/three.png 647w, https://blog.razorpay.in/wp-content/uploads/2020/06/three-300x296.png 300w" sizes="auto, (max-width: 647px) 100vw, 647px" /></p>
<p>&nbsp;</p>
<p><span style="font-weight: 400;">Let’s say, the auto-increment value of one of the tables was X. Application inserted a new row which got auto-increment-id as X+1. This value X+1 reached the replica, but not the standby machine. So, when the application failed over to the standby machine, it again entered a new row with auto-increment-id as X+1. This insert, on reaching the replica, threw the duplicate-key error and crashed the replication.</span></p>
<p><span style="font-weight: 400;">We went back to our old snapshots (incidentally, we had kept the snapshots of the old replicas before deleting them); and were able to prove that the lost data was present in the replicas.</span></p>
<p><span style="font-weight: 400;">Once our theory was proved, we immediately went to the master instance and changed the value of innodb_flush_log_at_trx_commit from 2 to 1; and closed the final loop.</span></p>
<h2><span style="font-weight: 400;">Final thoughts</span></h2>
<p><span style="font-weight: 400;">In retrospect, we’re glad that we dug deeper into the incident and how we were able to reach the root of the problem. The incident showed us that we were always vulnerable to data loss because of an incorrect setting of a configuration variable. </span></p>
<p><span style="font-weight: 400;">The only silver lining is, however, that we learnt a lot about how RDS manages the Multi-AZ setup and its failovers. And, of course, we gained an interesting tale to tell you all!</span></p>
</div><!-- .post-content -->
<div class="the-post-foot cf">
<div class="tag-share cf">
<div class="post-tags"><a href="https://razorpay.com/blog/tag/razorpay-stories/" rel="tag">Razorpay Stories</a><a href="https://razorpay.com/blog/tag/technology/" rel="tag">Technology</a></div>
<div class="post-share">
<div class="post-share-icons cf">
<span class="counters">
</span>
<a href="https://www.facebook.com/sharer.php?u=https%3A%2F%2Frazorpay.com%2Fblog%2Fday-of-rds-multi-az-failover%2F" class="link facebook" target="_blank" title="Share on Facebook"><i class="fa fa-facebook"></i></a>
<a href="https://twitter.com/intent/tweet?url=https%3A%2F%2Frazorpay.com%2Fblog%2Fday-of-rds-multi-az-failover%2F&#038;text=The%20Day%20of%20the%20RDS%20Multi-AZ%20Failover" class="link twitter" target="_blank" title="Share on Twitter"><i class="fa fa-twitter"></i></a>
<a href="https://www.linkedin.com/shareArticle?mini=true&#038;url=https%3A%2F%2Frazorpay.com%2Fblog%2Fday-of-rds-multi-az-failover%2F" class="link linkedin" target="_blank" title="LinkedIn"><i class="fa fa-linkedin"></i></a>
<a href="https://pinterest.com/pin/create/button/?url=https%3A%2F%2Frazorpay.com%2Fblog%2Fday-of-rds-multi-az-failover%2F&#038;media=https%3A%2F%2Fblog.razorpay.in%2Fwp-content%2Fuploads%2F2020%2F06%2FFinal-Feature-image-1.png&#038;description=The%20Day%20of%20the%20RDS%20Multi-AZ%20Failover" class="link pinterest" target="_blank" title="Pinterest"><i class="fa fa-pinterest-p"></i></a>
</div>
</div>
</div>
</div>
<div class="author-box">
<div class="image"><img alt='' src='https://secure.gravatar.com/avatar/b9256f4b9d221e82568d868af9246277fc50fa2150aa6edcec8dce406d618458?s=82&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/b9256f4b9d221e82568d868af9246277fc50fa2150aa6edcec8dce406d618458?s=164&#038;d=mm&#038;r=g 2x' class='avatar avatar-82 photo' height='82' width='82' loading='lazy' decoding='async'/></div>
<div class="content">
<span class="author">
<span>Author</span>
<a href="https://razorpay.com/blog/author/rajeevrai/" title="Posts by Rajeev Rai" rel="author">Rajeev Rai</a> </span>
<p class="text author-bio"></p>
<ul class="social-icons">
<li>
<a href="https://razorpay.com/" class="fa fa-home" title="Website">
<span class="visuallyhidden">Website</span></a>
</li>
</ul>
</div>
</div>
<section class="related-posts grid-3">
<h4 class="section-head"><span class="title">Related Posts</span></h4>
<div class="ts-row posts cf">
<article class="post col-4">
<a href="https://razorpay.com/blog/how-to-choose-a-payment-gateway/" title="How to Choose the Best Payment Gateway Services in 2026" class="image-link">
<img width="770" height="515" src="https://blog.razorpay.in/wp-content/uploads/2025/07/Choosing-a-Payment-Gateway-770x515.webp" class="image wp-post-image" alt="Choosing a Payment Gateway" title="How to Choose the Best Payment Gateway Services in 2026" decoding="async" loading="lazy" srcset="https://blog.razorpay.in/wp-content/uploads/2025/07/Choosing-a-Payment-Gateway-770x515.webp 770w, https://blog.razorpay.in/wp-content/uploads/2025/07/Choosing-a-Payment-Gateway-270x180.webp 270w" sizes="auto, (max-width: 770px) 100vw, 770px" /> </a>
<div class="content">
<h3 class="post-title"><a href="https://razorpay.com/blog/how-to-choose-a-payment-gateway/" class="post-link">How to Choose the Best Payment Gateway Services in 2026</a></h3>
<div class="post-meta">
<time class="post-date" datetime="2025-07-04T00:00:00+05:30">July 4, 2025</time>
</div>
</div>
</article >
<article class="post col-4">
<a href="https://razorpay.com/blog/razorpay-partners-with-meity-startup-hub/" title="Powering India’s Next Wave of Tech Trailblazers in Tier 2 &#038; 3 Cities: Razorpay Partners with MeitY Startup Hub" class="image-link">
<img width="770" height="515" src="https://blog.razorpay.in/wp-content/uploads/2025/05/Banner-1-770x515.png" class="image wp-post-image" alt="Razorpay partners with MeitY" title="Powering India’s Next Wave of Tech Trailblazers in Tier 2 &#038; 3 Cities: Razorpay Partners with MeitY Startup Hub" decoding="async" loading="lazy" srcset="https://blog.razorpay.in/wp-content/uploads/2025/05/Banner-1-770x515.png 770w, https://blog.razorpay.in/wp-content/uploads/2025/05/Banner-1-270x180.png 270w" sizes="auto, (max-width: 770px) 100vw, 770px" /> </a>
<div class="content">
<h3 class="post-title"><a href="https://razorpay.com/blog/razorpay-partners-with-meity-startup-hub/" class="post-link">Powering India’s Next Wave of Tech Trailblazers in Tier 2 &#038; 3 Cities: Razorpay Partners with MeitY Startup Hub</a></h3>
<div class="post-meta">
<time class="post-date" datetime="2025-05-22T16:49:11+05:30">May 22, 2025</time>
</div>
</div>
</article >
<article class="post col-4">
<a href="https://razorpay.com/blog/everything-we-launched-ftx-25/" title="Meet the Future of Payments: Every Innovation Unveiled at FTX 2025" class="image-link">
<img width="770" height="515" src="https://blog.razorpay.in/wp-content/uploads/2025/02/Biggest-Names-in-Fintech-770x515.png" class="image wp-post-image" alt="FTX 2025" title="Meet the Future of Payments: Every Innovation Unveiled at FTX 2025" decoding="async" loading="lazy" srcset="https://blog.razorpay.in/wp-content/uploads/2025/02/Biggest-Names-in-Fintech-770x515.png 770w, https://blog.razorpay.in/wp-content/uploads/2025/02/Biggest-Names-in-Fintech-270x180.png 270w" sizes="auto, (max-width: 770px) 100vw, 770px" /> </a>
<div class="content">
<h3 class="post-title"><a href="https://razorpay.com/blog/everything-we-launched-ftx-25/" class="post-link">Meet the Future of Payments: Every Innovation Unveiled at FTX 2025</a></h3>
<div class="post-meta">
<time class="post-date" datetime="2025-02-20T12:12:18+05:30">February 20, 2025</time>
</div>
</div>
</article >
</div>
</section>
</article> <!-- .the-post -->
</div>
</div> <!-- .ts-row -->
</div> <!-- .main -->
<footer class="main-footer bold bold-light">
<section class="lower-footer cf">
<div class="wrap">
<ul class="social-icons">
<li>
<a href="https://www.facebook.com/Razorpay/" class="social-link" target="_blank" title="Facebook">
<i class="fa fa-facebook"></i>
<span class="label">Facebook</span>
</a>
</li>
<li>
<a href="https://twitter.com/Razorpay" class="social-link" target="_blank" title="Twitter">
<i class="fa fa-twitter"></i>
<span class="label">Twitter</span>
</a>
</li>
<li>
<a href="https://www.instagram.com/razorpay/" class="social-link" target="_blank" title="Instagram">
<i class="fa fa-instagram"></i>
<span class="label">Instagram</span>
</a>
</li>
<li>
<a href="https://www.youtube.com/channel/UCddN5MDa_yirLO8fKVMVnhw" class="social-link" target="_blank" title="YouTube">
<i class="fa fa-youtube"></i>
<span class="label">YouTube</span>
</a>
</li>
<li>
<a href="https://in.linkedin.com/company/razorpay" class="social-link" target="_blank" title="LinkedIn">
<i class="fa fa-linkedin"></i>
<span class="label">LinkedIn</span>
</a>
</li>
</ul>
<p class="copyright">© Razorpay 2020 All Rights Reserved </p>
<div class="to-top">
<a href="#" class="back-to-top"><i class="fa fa-angle-up"></i> Top</a>
</div>
</div>
</section>
</footer>
</div> <!-- .main-wrap -->
<div class="mobile-menu-container off-canvas" id="mobile-menu">
<a href="#" class="close"><i class="fa fa-times"></i></a>
<div class="logo">
</div>
<ul class="mobile-menu"></ul>
</div>
<script type="speculationrules">
{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"\/blog\/*"},{"not":{"href_matches":["\/wp-*.php","\/wp-admin\/*","\/wp-content\/uploads\/*","\/wp-content\/*","\/wp-content\/plugins\/*","\/wp-content\/themes\/contentberg\/*","\/blog\/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
</script>
<script type="rocketlazyloadscript" data-rocket-type="text/javascript" async defer data-rocket-src="https://razorpay.com/blog-content/uploads/2020/11/custom-hubspot.js"></script>
<script type="rocketlazyloadscript" data-rocket-type="text/javascript" async defer data-rocket-src="https://js.hsforms.net/forms/v2-legacy.js">
</script>
<script type="rocketlazyloadscript" data-rocket-type="text/javascript" async defer data-rocket-src="https://js.hsforms.net/forms/v2.js">
</script><script type="rocketlazyloadscript" data-rocket-type="text/javascript" id="rocket-browser-checker-js-after">
/* <![CDATA[ */
"use strict";var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}var RocketBrowserCompatibilityChecker=function(){function RocketBrowserCompatibilityChecker(options){_classCallCheck(this,RocketBrowserCompatibilityChecker),this.passiveSupported=!1,this._checkPassiveOption(this),this.options=!!this.passiveSupported&&options}return _createClass(RocketBrowserCompatibilityChecker,[{key:"_checkPassiveOption",value:function(self){try{var options={get passive(){return!(self.passiveSupported=!0)}};window.addEventListener("test",null,options),window.removeEventListener("test",null,options)}catch(err){self.passiveSupported=!1}}},{key:"initRequestIdleCallback",value:function(){!1 in window&&(window.requestIdleCallback=function(cb){var start=Date.now();return setTimeout(function(){cb({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-start))}})},1)}),!1 in window&&(window.cancelIdleCallback=function(id){return clearTimeout(id)})}},{key:"isDataSaverModeOn",value:function(){return"connection"in navigator&&!0===navigator.connection.saveData}},{key:"supportsLinkPrefetch",value:function(){var elem=document.createElement("link");return elem.relList&&elem.relList.supports&&elem.relList.supports("prefetch")&&window.IntersectionObserver&&"isIntersecting"in IntersectionObserverEntry.prototype}},{key:"isSlowConnection",value:function(){return"connection"in navigator&&"effectiveType"in navigator.connection&&("2g"===navigator.connection.effectiveType||"slow-2g"===navigator.connection.effectiveType)}}]),RocketBrowserCompatibilityChecker}();
/* ]]> */
</script>
<script type="text/javascript" id="rocket-preload-links-js-extra">
/* <![CDATA[ */
var RocketPreloadLinksConfig = {"excludeUris":"\/blog(\/(?:.+\/)?feed(?:\/(?:.+\/?)?)?$|\/(?:.+\/)?embed\/|\/(index.php\/)?(.*)wp-json(\/.*|$))|\/refer\/|\/go\/|\/recommend\/|\/recommends\/","usesTrailingSlash":"1","imageExt":"jpg|jpeg|gif|png|tiff|bmp|webp|avif|pdf|doc|docx|xls|xlsx|php","fileExt":"jpg|jpeg|gif|png|tiff|bmp|webp|avif|pdf|doc|docx|xls|xlsx|php|html|htm","siteUrl":"https:\/\/razorpay.com\/blog","onHoverDelay":"100","rateThrottle":"3"};
/* ]]> */
</script>
<script type="rocketlazyloadscript" data-rocket-type="text/javascript" id="rocket-preload-links-js-after">
/* <![CDATA[ */
(function() {
"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e=function(){function i(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),e}}();function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var t=function(){function n(e,t){i(this,n),this.browser=e,this.config=t,this.options=this.browser.options,this.prefetched=new Set,this.eventTime=null,this.threshold=1111,this.numOnHover=0}return e(n,[{key:"init",value:function(){!this.browser.supportsLinkPrefetch()||this.browser.isDataSaverModeOn()||this.browser.isSlowConnection()||(this.regex={excludeUris:RegExp(this.config.excludeUris,"i"),images:RegExp(".("+this.config.imageExt+")$","i"),fileExt:RegExp(".("+this.config.fileExt+")$","i")},this._initListeners(this))}},{key:"_initListeners",value:function(e){-1<this.config.onHoverDelay&&document.addEventListener("mouseover",e.listener.bind(e),e.listenerOptions),document.addEventListener("mousedown",e.listener.bind(e),e.listenerOptions),document.addEventListener("touchstart",e.listener.bind(e),e.listenerOptions)}},{key:"listener",value:function(e){var t=e.target.closest("a"),n=this._prepareUrl(t);if(null!==n)switch(e.type){case"mousedown":case"touchstart":this._addPrefetchLink(n);break;case"mouseover":this._earlyPrefetch(t,n,"mouseout")}}},{key:"_earlyPrefetch",value:function(t,e,n){var i=this,r=setTimeout(function(){if(r=null,0===i.numOnHover)setTimeout(function(){return i.numOnHover=0},1e3);else if(i.numOnHover>i.config.rateThrottle)return;i.numOnHover++,i._addPrefetchLink(e)},this.config.onHoverDelay);t.addEventListener(n,function e(){t.removeEventListener(n,e,{passive:!0}),null!==r&&(clearTimeout(r),r=null)},{passive:!0})}},{key:"_addPrefetchLink",value:function(i){return this.prefetched.add(i.href),new Promise(function(e,t){var n=document.createElement("link");n.rel="prefetch",n.href=i.href,n.onload=e,n.onerror=t,document.head.appendChild(n)}).catch(function(){})}},{key:"_prepareUrl",value:function(e){if(null===e||"object"!==(void 0===e?"undefined":r(e))||!1 in e||-1===["http:","https:"].indexOf(e.protocol))return null;var t=e.href.substring(0,this.config.siteUrl.length),n=this._getPathname(e.href,t),i={original:e.href,protocol:e.protocol,origin:t,pathname:n,href:t+n};return this._isLinkOk(i)?i:null}},{key:"_getPathname",value:function(e,t){var n=t?e.substring(this.config.siteUrl.length):e;return n.startsWith("/")||(n="/"+n),this._shouldAddTrailingSlash(n)?n+"/":n}},{key:"_shouldAddTrailingSlash",value:function(e){return this.config.usesTrailingSlash&&!e.endsWith("/")&&!this.regex.fileExt.test(e)}},{key:"_isLinkOk",value:function(e){return null!==e&&"object"===(void 0===e?"undefined":r(e))&&(!this.prefetched.has(e.href)&&e.origin===this.config.siteUrl&&-1===e.href.indexOf("?")&&-1===e.href.indexOf("#")&&!this.regex.excludeUris.test(e.href)&&!this.regex.images.test(e.href))}}],[{key:"run",value:function(){"undefined"!=typeof RocketPreloadLinksConfig&&new n(new RocketBrowserCompatibilityChecker({capture:!0,passive:!0}),RocketPreloadLinksConfig).init()}}]),n}();t.run();
}());
/* ]]> */
</script>
<script type="text/javascript" id="rocket_lazyload_css-js-extra">
/* <![CDATA[ */
var rocket_lazyload_css_data = {"threshold":"300"};
/* ]]> */
</script>
<script type="text/javascript" id="rocket_lazyload_css-js-after">
/* <![CDATA[ */
!function o(n,c,a){function s(t,e){if(!c[t]){if(!n[t]){var r="function"==typeof require&&require;if(!e&&r)return r(t,!0);if(u)return u(t,!0);throw(r=new Error("Cannot find module '"+t+"'")).code="MODULE_NOT_FOUND",r}r=c[t]={exports:{}},n[t][0].call(r.exports,function(e){return s(n[t][1][e]||e)},r,r.exports,o,n,c,a)}return c[t].exports}for(var u="function"==typeof require&&require,e=0;e<a.length;e++)s(a[e]);return s}({1:[function(e,t,r){"use strict";!function(){const r="undefined"==typeof rocket_pairs?[]:rocket_pairs,e="undefined"==typeof rocket_excluded_pairs?[]:rocket_excluded_pairs;e.map(t=>{var e=t.selector;const r=document.querySelectorAll(e);r.forEach(e=>{e.setAttribute("data-rocket-lazy-bg-".concat(t.hash),"excluded")})});const o=document.querySelector("#wpr-lazyload-bg-container");var t=rocket_lazyload_css_data.threshold||300;const n=new IntersectionObserver(e=>{e.forEach(t=>{if(t.isIntersecting){const e=r.filter(e=>t.target.matches(e.selector));e.map(t=>{var e;t&&((e=document.createElement("style")).textContent=t.style,o.insertAdjacentElement("afterend",e),t.elements.forEach(e=>{n.unobserve(e),e.setAttribute("data-rocket-lazy-bg-".concat(t.hash),"loaded")}))})}})},{rootMargin:t+"px"});function c(){0<(0<arguments.length&&void 0!==arguments[0]?arguments[0]:[]).length&&r.forEach(t=>{try{const e=document.querySelectorAll(t.selector);e.forEach(e=>{"loaded"!==e.getAttribute("data-rocket-lazy-bg-".concat(t.hash))&&"excluded"!==e.getAttribute("data-rocket-lazy-bg-".concat(t.hash))&&(n.observe(e),(t.elements||(t.elements=[])).push(e))})}catch(e){console.error(e)}})}c();const a=function(){const o=window.MutationObserver;return function(e,t){if(e&&1===e.nodeType){const r=new o(t);return r.observe(e,{attributes:!0,childList:!0,subtree:!0}),r}}}();t=document.querySelector("body"),a(t,c)}()},{}]},{},[1]);
//# sourceMappingURL=lazyload-css.min.js.map
/* ]]> */
</script>
<script type="rocketlazyloadscript" data-minify="1" data-rocket-type="text/javascript" data-rocket-src="https://blog.razorpay.in/wp-content/cache/min/1/wp-content/themes/contentberg/js/magnific-popup.js?ver=1775717183" id="magnific-popup-js" defer></script>
<script type="rocketlazyloadscript" data-minify="1" data-rocket-type="text/javascript" data-rocket-src="https://blog.razorpay.in/wp-content/cache/min/1/wp-content/themes/contentberg/js/jquery.fitvids.js?ver=1775717183" id="jquery-fitvids-js" defer></script>
<script type="rocketlazyloadscript" data-rocket-type="text/javascript" data-rocket-src="https://blog.razorpay.in/wp-includes/js/imagesloaded.min.js?ver=5.0.0" id="imagesloaded-js" defer></script>
<script type="rocketlazyloadscript" data-minify="1" data-rocket-type="text/javascript" data-rocket-src="https://blog.razorpay.in/wp-content/cache/min/1/wp-content/themes/contentberg/js/object-fit-images.js?ver=1775717183" id="object-fit-images-js" defer></script>
<script type="text/javascript" id="contentberg-theme-js-extra">
/* <![CDATA[ */
var Bunyad = {"custom_ajax_url":"\/blog\/day-of-rds-multi-az-failover\/"};
/* ]]> */
</script>
<script type="rocketlazyloadscript" data-minify="1" data-rocket-type="text/javascript" data-rocket-src="https://blog.razorpay.in/wp-content/cache/min/1/wp-content/themes/contentberg/js/theme.js?ver=1775717183" id="contentberg-theme-js" defer></script>
<script type="rocketlazyloadscript" data-minify="1" data-rocket-type="text/javascript" data-rocket-src="https://blog.razorpay.in/wp-content/cache/min/1/wp-content/themes/contentberg/js/theia-sticky-sidebar.js?ver=1775717183" id="theia-sticky-sidebar-js" defer></script>
<script type="rocketlazyloadscript" data-minify="1" data-rocket-type="text/javascript" data-rocket-src="https://blog.razorpay.in/wp-content/cache/min/1/wp-content/themes/contentberg/js/jquery.slick.js?ver=1775717183" id="jquery-slick-js" defer></script>
<script type="rocketlazyloadscript" data-minify="1" data-rocket-type="text/javascript" data-rocket-src="https://blog.razorpay.in/wp-content/cache/min/1/wp-content/themes/contentberg/js/jarallax.js?ver=1775717183" id="jarallax-js" defer></script>
<script>var rocket_lcp_data = {"ajax_url":"https:\/\/blog.razorpay.in\/wp-admin\/admin-ajax.php","nonce":"a30d828c6c","url":"https:\/\/razorpay.com\/blog\/day-of-rds-multi-az-failover","is_mobile":false,"elements":"img, video, picture, p, main, div, li, svg","width_threshold":1600,"height_threshold":700,"debug":null}</script><script data-name="wpr-lcp-beacon" src='https://blog.razorpay.in/wp-content/plugins/wp-rocket/assets/js/lcp-beacon.min.js' async></script></body>
</html>
<!-- This website is like a Rocket, isn't it? Performance optimized by WP Rocket. Learn more: https://wp-rocket.me -->