2927 lines
226 KiB
HTML
2927 lines
226 KiB
HTML
<!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="2.0.2",this.userEvents=["keydown","keyup","mousedown","mouseup","mousemove","mouseover","mouseenter","mouseout","mouseleave","touchmove","touchstart","touchend","touchcancel","wheel","click","dblclick","input","visibilitychange"],this.attributeEvents=["onblur","onclick","oncontextmenu","ondblclick","onfocus","onmousedown","onmouseenter","onmouseleave","onmousemove","onmouseout","onmouseover","onmouseup","onmousewheel","onscroll","onsubmit"]}async t(){this.i(),this.o(),/iP(ad|hone)/.test(navigator.userAgent)&&this.h(),this.u(),this.l(this),this.m(),this.k(this),this.p(this),this._(),await Promise.all([this.R(),this.L()]),this.lastBreath=Date.now(),this.S(this),this.P(),this.D(),this.O(),this.M(),await this.C(this.delayedScripts.normal),await this.C(this.delayedScripts.defer),await this.C(this.delayedScripts.async),this.T("domReady"),await this.F(),await this.j(),await this.I(),this.T("windowLoad"),await this.A(),window.dispatchEvent(new Event("rocket-allScriptsLoaded")),this.everythingLoaded=!0,this.lastTouchEnd&&await new Promise((t=>setTimeout(t,500-Date.now()+this.lastTouchEnd))),this.H(),this.T("all"),this.U(),this.W()}i(){this.CSPIssue=sessionStorage.getItem("rocketCSPIssue"),document.addEventListener("securitypolicyviolation",(t=>{this.CSPIssue||"script-src-elem"!==t.violatedDirective||"data"!==t.blockedURI||(this.CSPIssue=!0,sessionStorage.setItem("rocketCSPIssue",!0))}),{isRocket:!0})}o(){window.addEventListener("pageshow",(t=>{this.persisted=t.persisted,this.realWindowLoadedFired=!0}),{isRocket:!0}),window.addEventListener("pagehide",(()=>{this.onFirstUserAction=null}),{isRocket:!0})}h(){let t;function e(e){t=e}window.addEventListener("touchstart",e,{isRocket:!0}),window.addEventListener("touchend",(function i(o){Math.abs(o.changedTouches[0].pageX-t.changedTouches[0].pageX)<10&&Math.abs(o.changedTouches[0].pageY-t.changedTouches[0].pageY)<10&&o.timeStamp-t.timeStamp<200&&(o.target.dispatchEvent(new PointerEvent("click",{target:o.target,bubbles:!0,cancelable:!0})),event.preventDefault(),window.removeEventListener("touchstart",e,{isRocket:!0}),window.removeEventListener("touchend",i,{isRocket:!0}))}),{isRocket:!0})}q(t){this.userActionTriggered||("mousemove"!==t.type||this.firstMousemoveIgnored?"keyup"===t.type||"mouseover"===t.type||"mouseout"===t.type||(this.userActionTriggered=!0,this.onFirstUserAction&&this.onFirstUserAction()):this.firstMousemoveIgnored=!0),"click"===t.type&&t.preventDefault(),this.savedUserEvents.length>0&&(t.stopPropagation(),t.stopImmediatePropagation()),"touchstart"===this.lastEvent&&"touchend"===t.type&&(this.lastTouchEnd=Date.now()),"click"===t.type&&(this.lastTouchEnd=0),this.lastEvent=t.type,this.savedUserEvents.push(t)}u(){this.savedUserEvents=[],this.userEventHandler=this.q.bind(this),this.userEvents.forEach((t=>window.addEventListener(t,this.userEventHandler,{passive:!1,isRocket:!0})))}U(){this.userEvents.forEach((t=>window.removeEventListener(t,this.userEventHandler,{passive:!1,isRocket:!0}))),this.savedUserEvents.forEach((t=>{t.target.dispatchEvent(new window[t.constructor.name](t.type,t))}))}m(){this.eventsMutationObserver=new MutationObserver((t=>{const e="return false";for(const i of t){if("attributes"===i.type){const t=i.target.getAttribute(i.attributeName);t&&t!==e&&(i.target.setAttribute("data-rocket-"+i.attributeName,t),i.target.setAttribute(i.attributeName,e))}"childList"===i.type&&i.addedNodes.forEach((t=>{if(t.nodeType===Node.ELEMENT_NODE)for(const i of t.attributes)this.attributeEvents.includes(i.name)&&i.value&&""!==i.value&&(t.setAttribute("data-rocket-"+i.name,i.value),t.setAttribute(i.name,e))}))}})),this.eventsMutationObserver.observe(document,{subtree:!0,childList:!0,attributeFilter:this.attributeEvents})}H(){this.eventsMutationObserver.disconnect(),this.attributeEvents.forEach((t=>{document.querySelectorAll("[data-rocket-"+t+"]").forEach((e=>{e.setAttribute(t,e.getAttribute("data-rocket-"+t)),e.removeAttribute("data-rocket-"+t)}))}))}k(t){Object.defineProperty(HTMLElement.prototype,"onclick",{get(){return this.rocketonclick},set(e){this.rocketonclick=e,this.setAttribute(t.everythingLoaded?"onclick":"data-rocket-onclick","this.rocketonclick(event)")}})}S(t){function e(e,i){let o=e[i];e[i]=null,Object.defineProperty(e,i,{get:()=>o,set(s){t.everythingLoaded?o=s:e["rocket"+i]=o=s}})}e(document,"onreadystatechange"),e(window,"onload"),e(window,"onpageshow");try{Object.defineProperty(document,"readyState",{get:()=>t.rocketReadyState,set(e){t.rocketReadyState=e},configurable:!0}),document.readyState="loading"}catch(t){console.log("WPRocket DJE readyState conflict, bypassing")}}l(t){this.originalAddEventListener=EventTarget.prototype.addEventListener,this.originalRemoveEventListener=EventTarget.prototype.removeEventListener,this.savedEventListeners=[],EventTarget.prototype.addEventListener=function(e,i,o){o&&o.isRocket||!t.B(e,this)&&!t.userEvents.includes(e)||t.B(e,this)&&!t.userActionTriggered||e.startsWith("rocket-")?t.originalAddEventListener.call(this,e,i,o):t.savedEventListeners.push({target:this,remove:!1,type:e,func:i,options:o})},EventTarget.prototype.removeEventListener=function(e,i,o){o&&o.isRocket||!t.B(e,this)&&!t.userEvents.includes(e)||t.B(e,this)&&!t.userActionTriggered||e.startsWith("rocket-")?t.originalRemoveEventListener.call(this,e,i,o):t.savedEventListeners.push({target:this,remove:!0,type:e,func:i,options:o})}}T(t){"all"===t&&(EventTarget.prototype.addEventListener=this.originalAddEventListener,EventTarget.prototype.removeEventListener=this.originalRemoveEventListener),this.savedEventListeners=this.savedEventListeners.filter((e=>{let i=e.type,o=e.target||window;return"domReady"===t&&"DOMContentLoaded"!==i&&"readystatechange"!==i||("windowLoad"===t&&"load"!==i&&"readystatechange"!==i&&"pageshow"!==i||(this.B(i,o)&&(i="rocket-"+i),e.remove?o.removeEventListener(i,e.func,e.options):o.addEventListener(i,e.func,e.options),!1))}))}p(t){let e;function i(e){return t.everythingLoaded?e:e.split(" ").map((t=>"load"===t||t.startsWith("load.")?"rocket-jquery-load":t)).join(" ")}function o(o){function s(e){const s=o.fn[e];o.fn[e]=o.fn.init.prototype[e]=function(){return this[0]===window&&t.userActionTriggered&&("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}))),s.apply(this,arguments),this}}if(o&&o.fn&&!t.allJQueries.includes(o)){const e={DOMContentLoaded:[],"rocket-DOMContentLoaded":[]};for(const t in e)document.addEventListener(t,(()=>{e[t].forEach((t=>t()))}),{isRocket:!0});o.fn.ready=o.fn.init.prototype.ready=function(i){function s(){parseInt(o.fn.jquery)>2?setTimeout((()=>i.bind(document)(o))):i.bind(document)(o)}return t.realDomReadyFired?!t.userActionTriggered||t.fauxDomReadyFired?s():e["rocket-DOMContentLoaded"].push(s):e.DOMContentLoaded.push(s),o([])},s("on"),s("one"),s("off"),t.allJQueries.push(o)}e=o}t.allJQueries=[],o(window.jQuery),Object.defineProperty(window,"jQuery",{get:()=>e,set(t){o(t)}})}P(){const t=new Map;document.write=document.writeln=function(e){const i=document.currentScript,o=document.createRange(),s=i.parentElement;let n=t.get(i);void 0===n&&(n=i.nextSibling,t.set(i,n));const a=document.createDocumentFragment();o.setStart(a,0),a.appendChild(o.createContextualFragment(e)),s.insertBefore(a,n)}}async R(){return new Promise((t=>{this.userActionTriggered?t():this.onFirstUserAction=t}))}async L(){return new Promise((t=>{document.addEventListener("DOMContentLoaded",(()=>{this.realDomReadyFired=!0,t()}),{isRocket:!0})}))}async I(){return this.realWindowLoadedFired?Promise.resolve():new Promise((t=>{window.addEventListener("load",t,{isRocket:!0})}))}M(){this.pendingScripts=[];this.scriptsMutationObserver=new MutationObserver((t=>{for(const e of t)e.addedNodes.forEach((t=>{"SCRIPT"!==t.tagName||t.noModule||t.isWPRocket||this.pendingScripts.push({script:t,promise:new Promise((e=>{const i=()=>{const i=this.pendingScripts.findIndex((e=>e.script===t));i>=0&&this.pendingScripts.splice(i,1),e()};t.addEventListener("load",i,{isRocket:!0}),t.addEventListener("error",i,{isRocket:!0}),setTimeout(i,1e3)}))})}))})),this.scriptsMutationObserver.observe(document,{childList:!0,subtree:!0})}async j(){await this.J(),this.pendingScripts.length?(await this.pendingScripts[0].promise,await this.j()):this.scriptsMutationObserver.disconnect()}D(){this.delayedScripts={normal:[],async:[],defer:[]},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 _(){await this.L();let t=[];document.querySelectorAll("script[type$=rocketlazyloadscript][data-rocket-src]").forEach((e=>{let i=e.getAttribute("data-rocket-src");if(i&&!i.startsWith("data:")){i.startsWith("//")&&(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.N(t,"preconnect")}async $(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.includes("Firefox/")||""===navigator.vendor||this.CSPIssue)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),t.nonce&&(i.nonce=t.nonce),i.hasAttribute("src")?(i.addEventListener("load",o,{isRocket:!0}),i.addEventListener("error",(()=>{i.setAttribute("data-rocket-status","failed-network"),e()}),{isRocket:!0}),setTimeout((()=>{i.isConnected||e()}),1)):(i.text=t.text,o()),i.isWPRocket=!0,t.parentNode.replaceChild(i,t);else{const i=t.getAttribute("data-rocket-type"),s=t.getAttribute("data-rocket-src");i?(t.type=i,t.removeAttribute("data-rocket-type")):t.removeAttribute("type"),t.addEventListener("load",o,{isRocket:!0}),t.addEventListener("error",(i=>{this.CSPIssue&&i.target.src.startsWith("data:")?(console.log("WPRocket: CSP fallback activated"),t.removeAttribute("src"),this.$(t).then(e)):(t.setAttribute("data-rocket-status","failed-network"),e())}),{isRocket:!0}),s?(t.fetchPriority="high",t.removeAttribute("data-rocket-src"),t.src=s):t.src="data:text/javascript;base64,"+window.btoa(unescape(encodeURIComponent(t.text)))}}catch(i){t.setAttribute("data-rocket-status","failed-transform"),e()}}));t.setAttribute("data-rocket-status","skipped")}async C(t){const e=t.shift();return e?(e.isConnected&&await this.$(e),this.C(t)):Promise.resolve()}O(){this.N([...this.delayedScripts.normal,...this.delayedScripts.defer,...this.delayedScripts.async],"preload")}N(t,e){this.trash=this.trash||[];let i=!0;var o=document.createDocumentFragment();t.forEach((t=>{const s=t.getAttribute&&t.getAttribute("data-rocket-src")||t.src;if(s&&!s.startsWith("data:")){const n=document.createElement("link");n.href=s,n.rel=e,"preconnect"!==e&&(n.as="script",n.fetchPriority=i?"high":"low"),t.getAttribute&&"module"===t.getAttribute("data-rocket-type")&&(n.crossOrigin=!0),t.crossOrigin&&(n.crossOrigin=t.crossOrigin),t.integrity&&(n.integrity=t.integrity),t.nonce&&(n.nonce=t.nonce),o.appendChild(n),this.trash.push(n),i=!1}})),document.head.appendChild(o)}W(){this.trash.forEach((t=>t.remove()))}async F(){try{document.readyState="interactive"}catch(t){}this.fauxDomReadyFired=!0;try{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"))}catch(t){console.error(t)}}async A(){try{document.readyState="complete"}catch(t){}try{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})}catch(t){console.error(t)}}async G(){Date.now()-this.lastBreath>45&&(await this.J(),this.lastBreath=Date.now())}async J(){return document.hidden?new Promise((t=>setTimeout(t))):new Promise((t=>requestAnimationFrame(t)))}B(t,e){return e===document&&"readystatechange"===t||(e===document&&"DOMContentLoaded"===t||(e===window&&"DOMContentLoaded"===t||(e===window&&"load"===t||e===window&&"pageshow"===t)))}static run(){(new RocketLazyLoadScripts).t()}}RocketLazyLoadScripts.run()})();</script>
|
||
|
||
<script>
|
||
(function() {
|
||
var a = window.mutiny = window.mutiny || {};
|
||
if (!window.mutiny.client) {
|
||
a.client = {
|
||
_queue: {}
|
||
};
|
||
var b = ["identify", "trackConversion"];
|
||
var c = [].concat(b, ["defaultOptOut", "optOut", "optIn"]);
|
||
var d = function factory(c) {
|
||
return function() {
|
||
for (var d = arguments.length, e = new Array(d), f = 0; f < d; f++) {
|
||
e[f] = arguments[f]
|
||
}
|
||
a.client._queue[c] = a.client._queue[c] || [];
|
||
if (b.includes(c)) {
|
||
return new Promise(function(b, d) {
|
||
a.client._queue[c].push({
|
||
args: e,
|
||
resolve: b,
|
||
reject: d
|
||
});
|
||
setTimeout(d, 500)
|
||
})
|
||
} else {
|
||
a.client._queue[c].push({
|
||
args: e
|
||
})
|
||
}
|
||
}
|
||
};
|
||
c.forEach(function(b) {
|
||
a.client[b] = d(b)
|
||
})
|
||
}
|
||
})();
|
||
</script>
|
||
<script data-cfasync="false" src="https://client-registry.mutinycdn.com/personalize/client/813b436159f68e1a.js">
|
||
</script>
|
||
|
||
<!-- Google Tag Manager -->
|
||
<script type="rocketlazyloadscript">
|
||
(function(w, d, s, l, i) {
|
||
w[l] = w[l] || [];
|
||
w[l].push({
|
||
'gtm.start': new Date().getTime(),
|
||
event: 'gtm.js'
|
||
});
|
||
var f = d.getElementsByTagName(s)[0],
|
||
j = d.createElement(s),
|
||
dl = l != 'dataLayer' ? '&l=' + l : '';
|
||
j.defer = true;
|
||
j.src =
|
||
'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
|
||
f.parentNode.insertBefore(j, f);
|
||
})(window, document, 'script', 'dataLayer', 'GTM-T3HJ9NR');
|
||
</script>
|
||
<!-- End Google Tag Manager -->
|
||
<!-- Clearout -->
|
||
<script type="rocketlazyloadscript" id="clearout-js-widget" data-rocket-src="https://clearout.io/jswidget/401aa6b2836468a9324cf0cc039bc944" async></script>
|
||
|
||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||
<meta name="HandheldFriendly" content="True">
|
||
<meta name="MobileOptimized" content="320">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||
|
||
|
||
|
||
<script type="rocketlazyloadscript" data-minify="1" async data-rocket-src='https://montecarlo.ai/wp-content/cache/min/1/monitor/stat.js?ver=1788405332'>
|
||
</script>
|
||
<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 Chaos Data Engineering Manifesto: Spare The Rod, Spoil Prod</title>
|
||
<link rel="preload" as="font" href="https://montecarlo.ai/wp-content/themes/monte-carlo-2024/assets/fonts/Capito03-Bold.woff2" crossorigin>
|
||
<link rel="preload" as="font" href="https://montecarlo.ai/wp-content/themes/monte-carlo-2024/assets/fonts/national-regular.woff2" crossorigin>
|
||
<meta name="description" content="Chaos data engineering is another lesson we can learn from software engineers: break stuff to make it more reliable."/>
|
||
<meta name="robots" content="follow, index, max-snippet:-1, max-video-preview:-1, max-image-preview:large"/>
|
||
<link rel="canonical" href="https://montecarlo.ai/blog-chaos-data-engineering-manifesto" />
|
||
<meta property="og:locale" content="en_US" />
|
||
<meta property="og:type" content="article" />
|
||
<meta property="og:title" content="The Chaos Data Engineering Manifesto: Spare The Rod, Spoil Prod" />
|
||
<meta property="og:description" content="Chaos data engineering is another lesson we can learn from software engineers: break stuff to make it more reliable." />
|
||
<meta property="og:url" content="https://montecarlo.ai/blog-chaos-data-engineering-manifesto" />
|
||
<meta property="og:site_name" content="Monte Carlo" />
|
||
<meta property="article:section" content="Data Reliability" />
|
||
<meta property="og:updated_time" content="2023-11-07T18:43:49-08:00" />
|
||
<meta property="og:image" content="https://montecarlo.ai/wp-content/uploads/2023/02/chaos-data-engineering-jpg.webp" />
|
||
<meta property="og:image:secure_url" content="https://montecarlo.ai/wp-content/uploads/2023/02/chaos-data-engineering-jpg.webp" />
|
||
<meta property="og:image:width" content="1399" />
|
||
<meta property="og:image:height" content="929" />
|
||
<meta property="og:image:alt" content="A hammer breaking a panel of glass representing chaos data engineering breaking data systems" />
|
||
<meta property="og:image:type" content="image/jpeg" />
|
||
<meta property="article:published_time" content="2023-02-23T05:29:39-08:00" />
|
||
<meta property="article:modified_time" content="2023-11-07T18:43:49-08:00" />
|
||
<meta name="twitter:card" content="summary_large_image" />
|
||
<meta name="twitter:title" content="The Chaos Data Engineering Manifesto: Spare The Rod, Spoil Prod" />
|
||
<meta name="twitter:description" content="Chaos data engineering is another lesson we can learn from software engineers: break stuff to make it more reliable." />
|
||
<meta name="twitter:site" content="@montecarlodata" />
|
||
<meta name="twitter:creator" content="@montecarlodata" />
|
||
<meta name="twitter:image" content="https://montecarlo.ai/wp-content/uploads/2023/02/chaos-data-engineering-jpg.webp" />
|
||
<script type="application/ld+json" class="rank-math-schema-pro">{"@context":"https://schema.org","@graph":[{"@type":["Person","Organization"],"@id":"https://montecarlo.ai/#person","name":"Monte Carlo","sameAs":["https://twitter.com/montecarlodata","https://www.linkedin.com/company/monte-carlo-data"]},{"@type":"WebSite","@id":"https://montecarlo.ai/#website","url":"https://montecarlo.ai","name":"Monte Carlo","publisher":{"@id":"https://montecarlo.ai/#person"},"inLanguage":"en-US"},{"@type":"ImageObject","@id":"https://montecarlo.ai/wp-content/uploads/2023/02/chaos-data-engineering-jpg.webp","url":"https://montecarlo.ai/wp-content/uploads/2023/02/chaos-data-engineering-jpg.webp","width":"1399","height":"929","caption":"A hammer breaking a panel of glass representing chaos data engineering breaking data systems","inLanguage":"en-US"},{"@type":"WebPage","@id":"https://montecarlo.ai/blog-chaos-data-engineering-manifesto#webpage","url":"https://montecarlo.ai/blog-chaos-data-engineering-manifesto","name":"The Chaos Data Engineering Manifesto: Spare The Rod, Spoil Prod","datePublished":"2023-02-23T05:29:39-08:00","dateModified":"2023-11-07T18:43:49-08:00","isPartOf":{"@id":"https://montecarlo.ai/#website"},"primaryImageOfPage":{"@id":"https://montecarlo.ai/wp-content/uploads/2023/02/chaos-data-engineering-jpg.webp"},"inLanguage":"en-US"},{"@type":"Person","@id":"https://montecarlo.ai/author/smurray","name":"Shane Murray","description":"Michael Segner is Head of Product Marketing at Monte Carlo. He co-authored the O'Reilly report Ensuring Data + AI Reliability Through Observability (ISBN 979-8-341-64942-2) with Barr Moses, Monte Carlo co-founder and creator of the data observability category. Michael regularly presents on data and AI reliability topics, including recent keynotes at Big Data London. LinkedIn","url":"https://montecarlo.ai/author/smurray","image":{"@type":"ImageObject","@id":"https://secure.gravatar.com/avatar/5187d670f0533c2b67bcf3c1c3a7e245?s=96&d=mm&r=g","url":"https://secure.gravatar.com/avatar/5187d670f0533c2b67bcf3c1c3a7e245?s=96&d=mm&r=g","caption":"Shane Murray","inLanguage":"en-US"}},{"@type":"Article","headline":"The Chaos Data Engineering Manifesto: Spare The Rod, Spoil Prod","keywords":"chaos data engineering","datePublished":"2023-02-23T05:29:39-08:00","dateModified":"2023-11-07T18:43:49-08:00","articleSection":"Data Reliability","author":{"@id":"https://montecarlo.ai/author/smurray","name":"Shane Murray"},"publisher":{"@id":"https://montecarlo.ai/#person"},"description":"Chaos data engineering is another lesson we can learn from software engineers: break stuff to make it more reliable.","name":"The Chaos Data Engineering Manifesto: Spare The Rod, Spoil Prod","@id":"https://montecarlo.ai/blog-chaos-data-engineering-manifesto#richSnippet","isPartOf":{"@id":"https://montecarlo.ai/blog-chaos-data-engineering-manifesto#webpage"},"image":{"@id":"https://montecarlo.ai/wp-content/uploads/2023/02/chaos-data-engineering-jpg.webp"},"inLanguage":"en-US","mainEntityOfPage":{"@id":"https://montecarlo.ai/blog-chaos-data-engineering-manifesto#webpage"}}]}</script>
|
||
<!-- /Rank Math WordPress SEO plugin -->
|
||
|
||
<link rel='dns-prefetch' href='//js.hs-scripts.com' />
|
||
<link rel='dns-prefetch' href='//fonts.googleapis.com' />
|
||
<link rel='dns-prefetch' href='//ajax.googleapis.com' />
|
||
<link rel='dns-prefetch' href='//connect.facebook.net' />
|
||
<link rel='dns-prefetch' href='//www.google-analytics.com' />
|
||
<link rel='dns-prefetch' href='//www.googletagmanager.com' />
|
||
<link rel='dns-prefetch' href='//maps.google.com' />
|
||
<link data-minify="1" rel='stylesheet' id='content-embed-styles-css' href='https://montecarlo.ai/wp-content/cache/min/1/wp-content/plugins/hubspot-content-embed/public/assets/main.css?ver=1788405332' media='all' />
|
||
<style id='wp-emoji-styles-inline-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://montecarlo.ai/wp-includes/css/dist/block-library/style.min.css?ver=005a69c052e1a90fca97283d13b89cca' media='all' />
|
||
<link rel="stylesheet" href="https://montecarlo.ai/wp-content/cache/fonts/1/google-fonts/css/d/1/f/f490875e19df04338542d85743690.css" data-wpr-hosted-gf-parameters="family=Lato%3A400%2C500%2C600%2C700%7CIBM+Plex+Mono%3A400%2C500%2C600%2C700&ver=2.9.1"/>
|
||
<link data-minify="1" rel='stylesheet' id='msb-front-css' href='https://montecarlo.ai/wp-content/cache/min/1/wp-content/plugins/mystickymenu/dist/css/mystickymenu-front.css?ver=1788405332' media='all' />
|
||
<link data-minify="1" rel='stylesheet' id='wpdreams-asl-basic-css' href='https://montecarlo.ai/wp-content/cache/min/1/wp-content/plugins/ajax-search-lite/css/style.basic.css?ver=1788405332' media='all' />
|
||
<style id='wpdreams-asl-basic-inline-css'>
|
||
|
||
div[id*='ajaxsearchlitesettings'].searchsettings .asl_option_inner label {
|
||
font-size: 0px !important;
|
||
color: rgba(0, 0, 0, 0);
|
||
}
|
||
div[id*='ajaxsearchlitesettings'].searchsettings .asl_option_inner label:after {
|
||
font-size: 11px !important;
|
||
position: absolute;
|
||
top: 0;
|
||
left: 0;
|
||
z-index: 1;
|
||
}
|
||
.asl_w_container {
|
||
width: 100%;
|
||
margin: 0px 0px 0px 0px;
|
||
min-width: 200px;
|
||
}
|
||
div[id*='ajaxsearchlite'].asl_m {
|
||
width: 100%;
|
||
}
|
||
div[id*='ajaxsearchliteres'].wpdreams_asl_results div.resdrg span.highlighted {
|
||
font-weight: bold;
|
||
color: rgba(217, 49, 43, 1);
|
||
background-color: rgba(238, 238, 238, 1);
|
||
}
|
||
div[id*='ajaxsearchliteres'].wpdreams_asl_results .results img.asl_image {
|
||
width: 70px;
|
||
height: 70px;
|
||
object-fit: cover;
|
||
}
|
||
div[id*='ajaxsearchlite'].asl_r .results {
|
||
max-height: none;
|
||
}
|
||
div[id*='ajaxsearchlite'].asl_r {
|
||
position: absolute;
|
||
}
|
||
|
||
div.asl_r.asl_w.vertical .results .item::after {
|
||
display: block;
|
||
position: absolute;
|
||
bottom: 0;
|
||
content: '';
|
||
height: 1px;
|
||
width: 100%;
|
||
background: #D8D8D8;
|
||
}
|
||
div.asl_r.asl_w.vertical .results .item.asl_last_item::after {
|
||
display: none;
|
||
}
|
||
|
||
</style>
|
||
<link data-minify="1" rel='stylesheet' id='wpdreams-asl-instance-css' href='https://montecarlo.ai/wp-content/cache/min/1/wp-content/plugins/ajax-search-lite/css/style-underline.css?ver=1788405332' media='all' />
|
||
<script src="https://montecarlo.ai/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script>
|
||
<script src="https://montecarlo.ai/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1" id="jquery-migrate-js"></script>
|
||
<link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://montecarlo.ai/xmlrpc.php?rsd" />
|
||
|
||
<link rel='shortlink' href='https://montecarlo.ai/?p=8256' />
|
||
<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://montecarlo.ai/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fmontecarlo.ai%2Fblog-chaos-data-engineering-manifesto" />
|
||
<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://montecarlo.ai/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fmontecarlo.ai%2Fblog-chaos-data-engineering-manifesto&format=xml" />
|
||
<!-- DO NOT COPY THIS SNIPPET! Start of Page Analytics Tracking for HubSpot WordPress plugin v11.3.73-->
|
||
<script type="rocketlazyloadscript" class="hsq-set-content-id" data-content-id="blog-post">
|
||
var _hsq = _hsq || [];
|
||
_hsq.push(["setContentType", "blog-post"]);
|
||
</script>
|
||
<!-- DO NOT COPY THIS SNIPPET! End of Page Analytics Tracking for HubSpot WordPress plugin -->
|
||
<style id="mystickymenu" type="text/css">#mysticky-nav { width:100%; position: static; height: auto !important; }#mysticky-nav.wrapfixed { position:fixed; left: 0px; margin-top:0px; z-index: 99990; -webkit-transition: 0.3s; -moz-transition: 0.3s; -o-transition: 0.3s; transition: 0.3s; -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=90)"; filter: alpha(opacity=90); opacity:0.9; background-color: #f7f5e7;}#mysticky-nav.wrapfixed .myfixed{ background-color: #f7f5e7; position: relative;top: auto;left: auto;right: auto;}#mysticky-nav .myfixed { margin:0 auto; float:none; border:0px; background:none; max-width:100%; }</style> <style type="text/css">
|
||
</style>
|
||
<meta name="google-site-verification" content="2K6LWyvCVpTjTYIRvGvbTmpLthlkos2yzanlOigrFOM" />
|
||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
||
<link rel="preload" as="style" href="//fonts.googleapis.com/css?family=Open+Sans&display=swap" />
|
||
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Open+Sans&display=swap" media="all" />
|
||
<link rel="prefetch" href="https://montecarlo.ai/blog-data-engineer-roadmap">
|
||
<link rel="prefetch" href="https://montecarlo.ai/blog-the-future-of-the-data-engineer">
|
||
<link rel="prefetch" href="https://montecarlo.ai/blog-data-engineering-architecture">
|
||
<link rel="prefetch" href="https://montecarlo.ai/blog-a-data-engineers-guide-to-building-reliable-systems">
|
||
<link rel="prefetch" href="https://montecarlo.ai/blog-announcing-the-2022-data-engineering-predictions-guide">
|
||
<link rel="prefetch" href="https://montecarlo.ai/blog-data-engineering-pipeline-guide">
|
||
<link rel="icon" href="https://montecarlo.ai/wp-content/uploads/2026/05/monte-carlo-logo-150x150.png" sizes="32x32" />
|
||
<link rel="icon" href="https://montecarlo.ai/wp-content/uploads/2026/05/monte-carlo-logo-300x300.png" sizes="192x192" />
|
||
<link rel="apple-touch-icon" href="https://montecarlo.ai/wp-content/uploads/2026/05/monte-carlo-logo-300x300.png" />
|
||
<meta name="msapplication-TileImage" content="https://montecarlo.ai/wp-content/uploads/2026/05/monte-carlo-logo-300x300.png" />
|
||
|
||
<style id="mysticky-welcomebar-inline-css">
|
||
.mysticky-welcomebar-fixed , .mysticky-welcomebar-fixed * {
|
||
-webkit-box-sizing: border-box;
|
||
-moz-box-sizing: border-box;
|
||
box-sizing: border-box;
|
||
}
|
||
.mysticky-welcomebar-fixed {
|
||
background-color: #1040ff;
|
||
font-family: IBM Plex Mono;
|
||
position: fixed;
|
||
left: 0;
|
||
right: 0;
|
||
z-index: 9999999;
|
||
opacity: 0;
|
||
}
|
||
.mysticky-welcomebar-btn-a.button-has-msb-shadow:not(.button-has-msb-3d-effect) {
|
||
box-shadow: 0 4px 8px -2px rgba(0, 0, 0, 0.35);
|
||
}
|
||
.mysticky-welcomebar-btn-a.button-has-msb-shadow.button-has-msb-3d-effect:after {
|
||
content: "";
|
||
position: absolute;
|
||
width: 100%;
|
||
height: 100%;
|
||
box-shadow: 0 8px 20px -2px rgba(0, 0, 0, 0.4);
|
||
left: 0;
|
||
top: 0;
|
||
}
|
||
.mysticky-welcomebar-fixed-wrap {
|
||
min-height: 60px;
|
||
padding: 20px 50px;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
width: 100%;
|
||
height: 100%;
|
||
}
|
||
.mysticky-welcomebar-fixed-wrap .mysticky-welcomebar-content {
|
||
flex: 1;
|
||
text-align:center;
|
||
}
|
||
.mysticky-welcomebar-animation {
|
||
-webkit-transition: all 1s ease 0s;
|
||
-moz-transition: all 1s ease 0s;
|
||
transition: all 1s ease 0s;
|
||
}
|
||
.mysticky-welcomebar-position-top {
|
||
top:0;
|
||
}
|
||
.mysticky-welcomebar-position-bottom {
|
||
bottom:0;
|
||
}
|
||
.mysticky-welcomebar-position-top.mysticky-welcomebar-entry-effect-slide-in {
|
||
top: -60px;
|
||
}
|
||
.mysticky-welcomebar-position-bottom.mysticky-welcomebar-entry-effect-slide-in {
|
||
bottom: -60px;
|
||
}
|
||
.mysticky-welcomebar-entry-effect-fade {
|
||
opacity: 0;
|
||
}
|
||
.mysticky-welcomebar-entry-effect-none {
|
||
display: none;
|
||
}
|
||
.mysticky-welcomebar-fixed .mysticky-welcomebar-content p a{
|
||
text-decoration: underline;
|
||
text-decoration-thickness: 1px;
|
||
text-underline-offset: 0.25ch;
|
||
}
|
||
.mysticky-welcomebar-fixed .mysticky-welcomebar-content p a,
|
||
.mysticky-welcomebar-fixed .mysticky-welcomebar-content p {
|
||
color: #ffffff;
|
||
font-size: 16px;
|
||
margin: 0;
|
||
padding: 0;
|
||
line-height: 1.2;
|
||
font-weight: 400;
|
||
font-family:IBM Plex Mono }
|
||
.mysticky-welcomebar-fixed .mysticky-welcomebar-btn {
|
||
/*padding-left: 30px;*/
|
||
display: none;
|
||
line-height: 1;
|
||
margin-left: 10px;
|
||
}
|
||
.mysticky-welcomebar-fixed.mysticky-welcomebar-btn-desktop .mysticky-welcomebar-btn {
|
||
display: block;
|
||
position: relative;
|
||
}
|
||
.mysticky-welcomebar-fixed .mysticky-welcomebar-btn a {
|
||
background-color: #ffffff;
|
||
font-family: inherit;
|
||
color: #002135;
|
||
border-radius: 4px;
|
||
text-decoration: none;
|
||
display: inline-block;
|
||
vertical-align: top;
|
||
line-height: 1.2;
|
||
font-size: 16px;
|
||
font-weight: 400;
|
||
padding: 5px 20px;
|
||
white-space: nowrap;
|
||
position: relative;
|
||
}
|
||
:root {
|
||
--msb-button-hover-bg-color: #ffffff;
|
||
--msb-button-hover-text-color: #000000;
|
||
--msb-button-hover-border-color: #000000;
|
||
--msb-button-bg-color: #ffffff;
|
||
--msb-button-text-color: #002135;
|
||
--msb-button-effect-color: #7761DF;
|
||
--msb-button-border-color: #7761DF;
|
||
--msb-button-border-radius: 2px;
|
||
}
|
||
|
||
.mysticky-welcomebar-fixed .mysticky-welcomebar-close {
|
||
display: none;
|
||
vertical-align: top;
|
||
width: 30px;
|
||
height: 30px;
|
||
text-align: center;
|
||
line-height: 30px;
|
||
border-radius: 5px;
|
||
color: #000;
|
||
position: absolute;
|
||
top: 5px;
|
||
right: 10px;
|
||
outline: none;
|
||
text-decoration: none;
|
||
text-shadow: 0 0 0px #fff;
|
||
-webkit-transition: all 0.5s ease 0s;
|
||
-moz-transition: all 0.5s ease 0s;
|
||
transition: all 0.5s ease 0s;
|
||
-webkit-transform-origin: 50% 50%;
|
||
-moz-transform-origin: 50% 50%;
|
||
transform-origin: 50% 50%;
|
||
}
|
||
.mysticky-welcomebar-fixed .mysticky-welcomebar-close:hover {
|
||
opacity: 1;
|
||
-webkit-transform: rotate(180deg);
|
||
-moz-transform: rotate(180deg);
|
||
transform: rotate(180deg);
|
||
}
|
||
.mysticky-welcomebar-fixed .mysticky-welcomebar-close span.dashicons {
|
||
font-size: 27px;
|
||
}
|
||
.mysticky-welcomebar-fixed.mysticky-welcomebar-showx-desktop .mysticky-welcomebar-close {
|
||
display: inline-block;
|
||
cursor: pointer;
|
||
}
|
||
/* Animated Buttons */
|
||
.mysticky-welcomebar-btn a {
|
||
-webkit-animation-duration: 1s;
|
||
animation-duration: 1s;
|
||
}
|
||
@-webkit-keyframes flash {
|
||
from,
|
||
50%,
|
||
to {
|
||
opacity: 1;
|
||
}
|
||
|
||
25%,
|
||
75% {
|
||
opacity: 0;
|
||
}
|
||
}
|
||
@keyframes flash {
|
||
from,
|
||
50%,
|
||
to {
|
||
opacity: 1;
|
||
}
|
||
|
||
25%,
|
||
75% {
|
||
opacity: 0;
|
||
}
|
||
}
|
||
.mysticky-welcomebar-attention-flash.animation-start .mysticky-welcomebar-btn a {
|
||
-webkit-animation-name: flash;
|
||
animation-name: flash;
|
||
}
|
||
|
||
@keyframes shake {
|
||
from,
|
||
to {
|
||
-webkit-transform: translate3d(0, 0, 0);
|
||
transform: translate3d(0, 0, 0);
|
||
}
|
||
|
||
10%,
|
||
30%,
|
||
50%,
|
||
70%,
|
||
90% {
|
||
-webkit-transform: translate3d(-10px, 0, 0);
|
||
transform: translate3d(-10px, 0, 0);
|
||
}
|
||
|
||
20%,
|
||
40%,
|
||
60%,
|
||
80% {
|
||
-webkit-transform: translate3d(10px, 0, 0);
|
||
transform: translate3d(10px, 0, 0);
|
||
}
|
||
}
|
||
|
||
.mysticky-welcomebar-attention-shake.animation-start .mysticky-welcomebar-btn a {
|
||
-webkit-animation-name: shake;
|
||
animation-name: shake;
|
||
}
|
||
|
||
@-webkit-keyframes swing {
|
||
20% {
|
||
-webkit-transform: rotate3d(0, 0, 1, 15deg);
|
||
transform: rotate3d(0, 0, 1, 15deg);
|
||
}
|
||
|
||
40% {
|
||
-webkit-transform: rotate3d(0, 0, 1, -10deg);
|
||
transform: rotate3d(0, 0, 1, -10deg);
|
||
}
|
||
|
||
60% {
|
||
-webkit-transform: rotate3d(0, 0, 1, 5deg);
|
||
transform: rotate3d(0, 0, 1, 5deg);
|
||
}
|
||
|
||
80% {
|
||
-webkit-transform: rotate3d(0, 0, 1, -5deg);
|
||
transform: rotate3d(0, 0, 1, -5deg);
|
||
}
|
||
|
||
to {
|
||
-webkit-transform: rotate3d(0, 0, 1, 0deg);
|
||
transform: rotate3d(0, 0, 1, 0deg);
|
||
}
|
||
}
|
||
|
||
@keyframes swing {
|
||
20% {
|
||
-webkit-transform: rotate3d(0, 0, 1, 15deg);
|
||
transform: rotate3d(0, 0, 1, 15deg);
|
||
}
|
||
|
||
40% {
|
||
-webkit-transform: rotate3d(0, 0, 1, -10deg);
|
||
transform: rotate3d(0, 0, 1, -10deg);
|
||
}
|
||
|
||
60% {
|
||
-webkit-transform: rotate3d(0, 0, 1, 5deg);
|
||
transform: rotate3d(0, 0, 1, 5deg);
|
||
}
|
||
|
||
80% {
|
||
-webkit-transform: rotate3d(0, 0, 1, -5deg);
|
||
transform: rotate3d(0, 0, 1, -5deg);
|
||
}
|
||
|
||
to {
|
||
-webkit-transform: rotate3d(0, 0, 1, 0deg);
|
||
transform: rotate3d(0, 0, 1, 0deg);
|
||
}
|
||
}
|
||
|
||
.mysticky-welcomebar-attention-swing.animation-start .mysticky-welcomebar-btn a {
|
||
-webkit-transform-origin: top center;
|
||
transform-origin: top center;
|
||
-webkit-animation-name: swing;
|
||
animation-name: swing;
|
||
}
|
||
|
||
@-webkit-keyframes tada {
|
||
from {
|
||
-webkit-transform: scale3d(1, 1, 1);
|
||
transform: scale3d(1, 1, 1);
|
||
}
|
||
|
||
10%,
|
||
20% {
|
||
-webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
|
||
transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
|
||
}
|
||
|
||
30%,
|
||
50%,
|
||
70%,
|
||
90% {
|
||
-webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
|
||
transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
|
||
}
|
||
|
||
40%,
|
||
60%,
|
||
80% {
|
||
-webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
|
||
transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
|
||
}
|
||
|
||
to {
|
||
-webkit-transform: scale3d(1, 1, 1);
|
||
transform: scale3d(1, 1, 1);
|
||
}
|
||
}
|
||
|
||
@keyframes tada {
|
||
from {
|
||
-webkit-transform: scale3d(1, 1, 1);
|
||
transform: scale3d(1, 1, 1);
|
||
}
|
||
|
||
10%,
|
||
20% {
|
||
-webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
|
||
transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
|
||
}
|
||
|
||
30%,
|
||
50%,
|
||
70%,
|
||
90% {
|
||
-webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
|
||
transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
|
||
}
|
||
|
||
40%,
|
||
60%,
|
||
80% {
|
||
-webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
|
||
transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
|
||
}
|
||
|
||
to {
|
||
-webkit-transform: scale3d(1, 1, 1);
|
||
transform: scale3d(1, 1, 1);
|
||
}
|
||
}
|
||
|
||
.mysticky-welcomebar-attention-tada.animation-start .mysticky-welcomebar-btn a {
|
||
-webkit-animation-name: tada;
|
||
animation-name: tada;
|
||
}
|
||
|
||
@-webkit-keyframes heartBeat {
|
||
0% {
|
||
-webkit-transform: scale(1);
|
||
transform: scale(1);
|
||
}
|
||
|
||
14% {
|
||
-webkit-transform: scale(1.3);
|
||
transform: scale(1.3);
|
||
}
|
||
|
||
28% {
|
||
-webkit-transform: scale(1);
|
||
transform: scale(1);
|
||
}
|
||
|
||
42% {
|
||
-webkit-transform: scale(1.3);
|
||
transform: scale(1.3);
|
||
}
|
||
|
||
70% {
|
||
-webkit-transform: scale(1);
|
||
transform: scale(1);
|
||
}
|
||
}
|
||
|
||
@keyframes heartBeat {
|
||
0% {
|
||
-webkit-transform: scale(1);
|
||
transform: scale(1);
|
||
}
|
||
|
||
14% {
|
||
-webkit-transform: scale(1.3);
|
||
transform: scale(1.3);
|
||
}
|
||
|
||
28% {
|
||
-webkit-transform: scale(1);
|
||
transform: scale(1);
|
||
}
|
||
|
||
42% {
|
||
-webkit-transform: scale(1.3);
|
||
transform: scale(1.3);
|
||
}
|
||
|
||
70% {
|
||
-webkit-transform: scale(1);
|
||
transform: scale(1);
|
||
}
|
||
}
|
||
|
||
.mysticky-welcomebar-attention-heartbeat.animation-start .mysticky-welcomebar-btn a {
|
||
-webkit-animation-name: heartBeat;
|
||
animation-name: heartBeat;
|
||
-webkit-animation-duration: 1.3s;
|
||
animation-duration: 1.3s;
|
||
-webkit-animation-timing-function: ease-in-out;
|
||
animation-timing-function: ease-in-out;
|
||
}
|
||
|
||
@-webkit-keyframes wobble {
|
||
from {
|
||
-webkit-transform: translate3d(0, 0, 0);
|
||
transform: translate3d(0, 0, 0);
|
||
}
|
||
|
||
15% {
|
||
-webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
|
||
transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
|
||
}
|
||
|
||
30% {
|
||
-webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
|
||
transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
|
||
}
|
||
|
||
45% {
|
||
-webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
|
||
transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
|
||
}
|
||
|
||
60% {
|
||
-webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
|
||
transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
|
||
}
|
||
|
||
75% {
|
||
-webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
|
||
transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
|
||
}
|
||
|
||
to {
|
||
-webkit-transform: translate3d(0, 0, 0);
|
||
transform: translate3d(0, 0, 0);
|
||
}
|
||
}
|
||
|
||
@keyframes wobble {
|
||
from {
|
||
-webkit-transform: translate3d(0, 0, 0);
|
||
transform: translate3d(0, 0, 0);
|
||
}
|
||
|
||
15% {
|
||
-webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
|
||
transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
|
||
}
|
||
|
||
30% {
|
||
-webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
|
||
transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
|
||
}
|
||
|
||
45% {
|
||
-webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
|
||
transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
|
||
}
|
||
|
||
60% {
|
||
-webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
|
||
transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
|
||
}
|
||
|
||
75% {
|
||
-webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
|
||
transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
|
||
}
|
||
|
||
to {
|
||
-webkit-transform: translate3d(0, 0, 0);
|
||
transform: translate3d(0, 0, 0);
|
||
}
|
||
}
|
||
|
||
.mysticky-welcomebar-attention-wobble.animation-start .mysticky-welcomebar-btn a {
|
||
-webkit-animation-name: wobble;
|
||
animation-name: wobble;
|
||
}
|
||
|
||
/* 210824 */
|
||
@media only screen and (min-width: 481px) {
|
||
.mysticky-welcomebar-fixed-wrap.mysticky-welcomebar-position-left {
|
||
justify-content: flex-start;
|
||
}
|
||
.mysticky-welcomebar-fixed-wrap.mysticky-welcomebar-position-center {
|
||
justify-content: center;
|
||
}
|
||
.mysticky-welcomebar-fixed-wrap.mysticky-welcomebar-position-right {
|
||
justify-content: flex-end;
|
||
}
|
||
.mysticky-welcomebar-fixed-wrap.mysticky-welcomebar-position-left .mysticky-welcomebar-content,
|
||
.mysticky-welcomebar-fixed-wrap.mysticky-welcomebar-position-center .mysticky-welcomebar-content,
|
||
.mysticky-welcomebar-fixed-wrap.mysticky-welcomebar-position-right .mysticky-welcomebar-content {
|
||
flex: unset;
|
||
}
|
||
}
|
||
|
||
@media only screen and (min-width: 768px) {
|
||
.mysticky-welcomebar-display-desktop.mysticky-welcomebar-entry-effect-fade.entry-effect {
|
||
opacity: 1;
|
||
}
|
||
.mysticky-welcomebar-display-desktop.mysticky-welcomebar-entry-effect-none.entry-effect {
|
||
display: block;
|
||
}
|
||
.mysticky-welcomebar-display-desktop.mysticky-welcomebar-position-top.mysticky-welcomebar-fixed ,
|
||
.mysticky-welcomebar-display-desktop.mysticky-welcomebar-position-top.mysticky-welcomebar-entry-effect-slide-in.entry-effect.mysticky-welcomebar-fixed {
|
||
top: 0;
|
||
}
|
||
.mysticky-welcomebar-display-desktop.mysticky-welcomebar-position-bottom.mysticky-welcomebar-fixed ,
|
||
.mysticky-welcomebar-display-desktop.mysticky-welcomebar-position-bottom.mysticky-welcomebar-entry-effect-slide-in.entry-effect.mysticky-welcomebar-fixed {
|
||
bottom: 0;
|
||
}
|
||
}
|
||
@media only screen and (max-width: 767px) {
|
||
.mysticky-welcomebar-display-mobile.mysticky-welcomebar-entry-effect-fade.entry-effect {
|
||
opacity: 1;
|
||
}
|
||
.mysticky-welcomebar-display-mobile.mysticky-welcomebar-entry-effect-none.entry-effect {
|
||
display: block;
|
||
}
|
||
.mysticky-welcomebar-display-mobile.mysticky-welcomebar-position-top.mysticky-welcomebar-fixed ,
|
||
.mysticky-welcomebar-display-mobile.mysticky-welcomebar-position-top.mysticky-welcomebar-entry-effect-slide-in.entry-effect.mysticky-welcomebar-fixed {
|
||
top: 0;
|
||
}
|
||
.mysticky-welcomebar-display-mobile.mysticky-welcomebar-position-bottom.mysticky-welcomebar-fixed ,
|
||
.mysticky-welcomebar-display-mobile.mysticky-welcomebar-position-bottom.mysticky-welcomebar-entry-effect-slide-in.entry-effect.mysticky-welcomebar-fixed {
|
||
bottom: 0;
|
||
}
|
||
/*.mysticky-welcomebar-fixed.mysticky-welcomebar-showx-desktop .mysticky-welcomebar-close {
|
||
display: none;
|
||
}
|
||
.mysticky-welcomebar-fixed.mysticky-welcomebar-showx-mobile .mysticky-welcomebar-close {
|
||
display: inline-block;
|
||
}*/
|
||
.mysticky-welcomebar-fixed.mysticky-welcomebar-btn-desktop .mysticky-welcomebar-btn {
|
||
display: none;
|
||
}
|
||
.mysticky-welcomebar-fixed.mysticky-welcomebar-btn-mobile .mysticky-welcomebar-btn {
|
||
display: block;
|
||
/*margin-top: 10px;*/
|
||
}
|
||
}
|
||
@media only screen and (max-width: 480px) {
|
||
|
||
.mysticky-welcomebar-fixed-wrap {padding: 15px 35px 10px 10px; flex-wrap:wrap;}
|
||
.mysticky-welcomebar-fixed.front-site .mysticky-welcomebar-fixed-wrap {
|
||
padding: 15px 20px 10px 20px;
|
||
flex-direction: column;
|
||
}
|
||
/*.welcombar-contact-lead .mysticky-welcomebar-fixed-wrap {flex-wrap: wrap; justify-content: center;}*/
|
||
|
||
.mysticky-welcomebar-fixed .mystickymenu-front.mysticky-welcomebar-lead-content {margin: 10px 0 10px 20px !important;}
|
||
|
||
.mysticky-welcomebar-fixed .mysticky-welcomebar-btn {
|
||
padding-left: 10px;
|
||
}
|
||
.mysticky-welcomebar-fixed.mysticky-welcomebar-btn-mobile.front-site .mysticky-welcomebar-btn {margin-left: 0; text-align: center;}
|
||
}
|
||
|
||
|
||
body.mysticky-welcomebar-apper #wpadminbar{
|
||
z-index:99999999;
|
||
}
|
||
|
||
.mysticky-welcomebar-fixed .mystickymenu-front.mysticky-welcomebar-lead-content {
|
||
display: flex;
|
||
width: auto;
|
||
margin: 0 0px 0 10px;
|
||
}
|
||
|
||
.mystickymenu-front.mysticky-welcomebar-lead-content input[type="text"] {
|
||
font-size: 12px;
|
||
padding: 7px 5px;
|
||
margin-right: 10px;
|
||
min-width: 50%;
|
||
border: 0;
|
||
width:auto;
|
||
}
|
||
|
||
.mystickymenu-front.mysticky-welcomebar-lead-content input[type="text"]:focus {
|
||
outline: unset;
|
||
box-shadow: unset;
|
||
}
|
||
|
||
.input-error {
|
||
color: #ff0000;
|
||
font-style: normal;
|
||
font-family: inherit;
|
||
font-size: 13px;
|
||
display: block;
|
||
position: absolute;
|
||
bottom: 0px;
|
||
}
|
||
|
||
.mysticky-welcomebar-fixed.mysticky-site-front .mysticky-welcomebar-btn.contact-lead-button {
|
||
margin-left: 0;
|
||
}
|
||
.morphext > .morphext__animated {
|
||
display: inline-block;
|
||
}
|
||
|
||
.mysticky-welcomebar-btn a {
|
||
outline: none !important;
|
||
cursor: pointer;
|
||
position: relative;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-border1 {
|
||
position: relative;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-border1 a {
|
||
display: block;
|
||
width: 100%;
|
||
height: 100%;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-border1:before,
|
||
.mysticky-welcomebar-hover-effect-border1:after {
|
||
position: absolute;
|
||
content: "";
|
||
height: 0%;
|
||
width: 2px;
|
||
background: #000;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-border1:before {
|
||
right: 0;
|
||
top: 0;
|
||
transition: all 0.1s ease;
|
||
z-index: 1 !important;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-border1:after {
|
||
left: 0;
|
||
bottom: 0;
|
||
transition: all 0.1s 0.2s ease;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-border1:hover:before {
|
||
transition: all 0.1s 0.2s ease;
|
||
height: 100%;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-border1:hover:after {
|
||
transition: all 0.1s ease;
|
||
height: 100%;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-border1 a:before,
|
||
.mysticky-welcomebar-hover-effect-border1 a:after {
|
||
position: absolute;
|
||
content: "";
|
||
background: #000;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-border1 a:before {
|
||
left: 0;
|
||
top: 0;
|
||
width: 0%;
|
||
height: 2px;
|
||
transition: all 0.1s 0.1s ease;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-border1 a:after {
|
||
left: 0;
|
||
bottom: 0;
|
||
width: 100%;
|
||
height: 2px;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-border1 a:hover:before {
|
||
width: 100%;
|
||
}
|
||
|
||
.mysticky-welcomebar-hover-effect-border2 a {
|
||
position: relative;
|
||
display: block;
|
||
width: 100%;
|
||
height: 100%;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-border2:before,
|
||
.mysticky-welcomebar-hover-effect-border2:after {
|
||
position: absolute;
|
||
content: "";
|
||
right: 0px;
|
||
transition: all 0.3s ease;
|
||
border-radius: 4px;
|
||
z-index: 99;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-border2:before {
|
||
width: 2px;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-border2:after {
|
||
width: 0%;
|
||
height: 2px;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-border2:hover:before {
|
||
height: 29px;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-border2:hover:after {
|
||
width: 86px;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-border2 a:before,
|
||
.mysticky-welcomebar-hover-effect-border2 a:after {
|
||
position: absolute;
|
||
content: "";
|
||
left: 0;
|
||
bottom: 0;
|
||
transition: all 0.3s ease;
|
||
z-index: 0 !important;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-border2 a:before {
|
||
width: 2px;
|
||
height: 0%;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-border2 a:after {
|
||
width: 0%;
|
||
height: 2px;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-border2 a:hover:before {
|
||
height: 100%;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-border2 a:hover:after {
|
||
width: 100%;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-border3 a {
|
||
position: relative;
|
||
display: block;
|
||
width: 100%;
|
||
height: 100%;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-border3:before,
|
||
.mysticky-welcomebar-hover-effect-border3:after {
|
||
position: absolute;
|
||
content: "";
|
||
right: 0px;
|
||
transition: all 0.3s ease;
|
||
z-index: 99;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-border3:before {
|
||
height: 14px;
|
||
width: 2px;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-border3:after {
|
||
width: 14px;
|
||
height: 2px;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-border3:hover:before {
|
||
height: 29px;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-border3:hover:after {
|
||
width: 86px;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-border3 a:before,
|
||
.mysticky-welcomebar-hover-effect-border3 a:after {
|
||
position: absolute;
|
||
content: "";
|
||
left: 0;
|
||
bottom: 0;
|
||
transition: all 0.3s ease;
|
||
z-index: 0 !important;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-border3 a:before {
|
||
width: 2px;
|
||
height: 50%;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-border3 a:after {
|
||
width: 14px;
|
||
height: 2px;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-border3 a:hover:before {
|
||
height: 100%;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-border3 a:hover:after {
|
||
width: 100%;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-border4 a {
|
||
position: relative;
|
||
display: block;
|
||
width: 100%;
|
||
height: 100%;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-border4:before,
|
||
.mysticky-welcomebar-hover-effect-border4:after {
|
||
position: absolute;
|
||
content: "";
|
||
right: 0px;
|
||
bottom: 0px ;
|
||
transition: all 0.3s ease;
|
||
z-index: 99;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-border4:before {
|
||
height: 14px;
|
||
width: 2px;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-border4:after {
|
||
width: 14px;
|
||
height: 2px;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-border4:hover:before {
|
||
height: 29px;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-border4:hover:after {
|
||
width: 86px;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-border4 a:before,
|
||
.mysticky-welcomebar-hover-effect-border4 a:after {
|
||
position: absolute;
|
||
content: "";
|
||
left: 0;
|
||
top: 0;
|
||
transition: all 0.3s ease;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-border4 a:before {
|
||
width: 2px;
|
||
height: 50%;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-border4 a:after {
|
||
width: 14px;
|
||
height: 2px;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-border4 a:hover:before {
|
||
height: 100%;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-border4 a:hover:after {
|
||
width: 100%;
|
||
}
|
||
|
||
.mysticky-welcomebar-hover-effect-fill1 a {
|
||
z-index: 1;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-fill1 a:after {
|
||
position: absolute;
|
||
content: "";
|
||
width: 0;
|
||
height: 100%;
|
||
top: 0;
|
||
left: 0;
|
||
z-index: -1;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-fill1 a:hover:after {
|
||
width: 100%;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-fill1 a:active {
|
||
top: 2px;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-fill2 a {
|
||
z-index: 1;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-fill2 a:after {
|
||
position: absolute;
|
||
content: "";
|
||
width: 0;
|
||
height: 100%;
|
||
top: 0;
|
||
left: 0;
|
||
direction: rtl;
|
||
z-index: -1;
|
||
transition: all 0.3s ease;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-fill2 a:hover:after {
|
||
left: auto;
|
||
right: 0;
|
||
width: 100%;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-fill2 a:active {
|
||
top: 2px;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-fill3 a {
|
||
border: 0px solid #000;
|
||
z-index: 1;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-fill3 a:after {
|
||
position: absolute;
|
||
content: "";
|
||
width: 100%;
|
||
height: 0;
|
||
bottom: 0;
|
||
left: 0;
|
||
z-index: -1;
|
||
transition: all 0.3s ease;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-fill3 a:hover:after {
|
||
top: 0;
|
||
height: 100%;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-fill3 a:active {
|
||
top: 2px;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-fill4 a {
|
||
z-index: 1;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-fill4 a:after {
|
||
position: absolute;
|
||
content: "";
|
||
width: 100%;
|
||
height: 0;
|
||
top: 0;
|
||
left: 0;
|
||
z-index: -1;
|
||
transition: all 0.3s ease;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-fill4 a:hover:after {
|
||
top: auto;
|
||
bottom: 0;
|
||
height: 100%;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-fill4 a:active {
|
||
top: 2px;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-fill5 a {
|
||
border: 0px solid #000;
|
||
z-index: 3;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-fill5 a:after {
|
||
position: absolute;
|
||
content: "";
|
||
width: 0;
|
||
height: 100%;
|
||
top: 0;
|
||
right: 0;
|
||
z-index: -1;
|
||
transition: all 0.3s ease;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-fill5 a:hover:after {
|
||
left: 0;
|
||
width: 100%;
|
||
}
|
||
.mysticky-welcomebar-hover-effect-fill5 a:active {
|
||
top: 2px;
|
||
}
|
||
|
||
|
||
|
||
</style>
|
||
<style>: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--color--transparent: transparent;--wp--preset--color--neutral-50: #E3E6E9;--wp--preset--color--neutral-100: #C6CED2;--wp--preset--color--neutral-200: #AAB5BC;--wp--preset--color--neutral-300: #8E9CA5;--wp--preset--color--neutral-400: #71848F;--wp--preset--color--neutral-600: #395262;--wp--preset--color--neutral-700: #1C3A4B;--wp--preset--color--neutral-800: #002135;--wp--preset--color--neutral-900: #00111D;--wp--preset--color--neutral-text: #8BA5BA;--wp--preset--color--blue-50: #C4D8FF;--wp--preset--color--blue-100: #8BB0FF;--wp--preset--color--blue-200: #5589FF;--wp--preset--color--blue-300: #2464FF;--wp--preset--color--blue-400: #1040FF;--wp--preset--color--blue-500: #0C38D6;--wp--preset--color--blue-600: #0A30AD;--wp--preset--color--blue-700: #0B2884;--wp--preset--color--blue-800: #0D1F5B;--wp--preset--color--orange-50: #FFD6A3;--wp--preset--color--orange-100: #FFB67A;--wp--preset--color--orange-200: #FF9752;--wp--preset--color--orange-300: #FF7729;--wp--preset--color--orange-400: #FF5700;--wp--preset--color--orange-500: #CF4C0A;--wp--preset--color--orange-600: #9F4114;--wp--preset--color--orange-700: #6E371E;--wp--preset--color--orange-800: #3E2C28;--wp--preset--color--red-50: #FFD2DD;--wp--preset--color--red-100: #FFA5B4;--wp--preset--color--red-200: #FF7D87;--wp--preset--color--red-300: #FF5050;--wp--preset--color--red-400: #E71D32;--wp--preset--color--red-500: #AD1625;--wp--preset--color--red-600: #8C101C;--wp--preset--color--red-700: #6E0A1E;--wp--preset--color--red-800: #4C0A17;--wp--preset--color--green-50: #CCEAE7;--wp--preset--color--green-100: #99D5CF;--wp--preset--color--green-200: #66C0B8;--wp--preset--color--green-300: #33ABA0;--wp--preset--color--green-400: #009688;--wp--preset--color--green-500: #037F77;--wp--preset--color--green-600: #066766;--wp--preset--color--green-700: #085054;--wp--preset--color--green-800: #0B3843;--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, #0648AD 0%, #0355D6 55%, #002135 100%);--wp--preset--gradient--illumination: linear-gradient(135deg, #FFB67A 0%, #FF5700 100%);--wp--preset--gradient--cool-blue: linear-gradient(135deg, #CCE0FF 0%, #3381FF 100%);--wp--preset--gradient--energy: linear-gradient(135deg, #FFB67A 0%, #FF5700 50%, #3381FF 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--font-size--h-1-display: 72px;--wp--preset--font-size--h-2-display: 56px;--wp--preset--font-size--h-3-display: 40px;--wp--preset--font-size--h-4-heading: 32px;--wp--preset--font-size--h-5-heading: 24px;--wp--preset--font-size--h-6-heading: 20px;--wp--preset--font-size--body-large: 18px;--wp--preset--font-size--body-medium: 16px;--wp--preset--font-size--body-small: 14px;--wp--preset--font-size--caption: 12px;--wp--preset--font-family--outfit: Outfit, ui-sans-serif, system-ui, sans-serif;--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);}.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-transparent-color{color: var(--wp--preset--color--transparent) !important;}.has-neutral-50-color{color: var(--wp--preset--color--neutral-50) !important;}.has-neutral-100-color{color: var(--wp--preset--color--neutral-100) !important;}.has-neutral-200-color{color: var(--wp--preset--color--neutral-200) !important;}.has-neutral-300-color{color: var(--wp--preset--color--neutral-300) !important;}.has-neutral-400-color{color: var(--wp--preset--color--neutral-400) !important;}.has-neutral-600-color{color: var(--wp--preset--color--neutral-600) !important;}.has-neutral-700-color{color: var(--wp--preset--color--neutral-700) !important;}.has-neutral-800-color{color: var(--wp--preset--color--neutral-800) !important;}.has-neutral-900-color{color: var(--wp--preset--color--neutral-900) !important;}.has-neutral-text-color{color: var(--wp--preset--color--neutral-text) !important;}.has-blue-50-color{color: var(--wp--preset--color--blue-50) !important;}.has-blue-100-color{color: var(--wp--preset--color--blue-100) !important;}.has-blue-200-color{color: var(--wp--preset--color--blue-200) !important;}.has-blue-300-color{color: var(--wp--preset--color--blue-300) !important;}.has-blue-400-color{color: var(--wp--preset--color--blue-400) !important;}.has-blue-500-color{color: var(--wp--preset--color--blue-500) !important;}.has-blue-600-color{color: var(--wp--preset--color--blue-600) !important;}.has-blue-700-color{color: var(--wp--preset--color--blue-700) !important;}.has-blue-800-color{color: var(--wp--preset--color--blue-800) !important;}.has-orange-50-color{color: var(--wp--preset--color--orange-50) !important;}.has-orange-100-color{color: var(--wp--preset--color--orange-100) !important;}.has-orange-200-color{color: var(--wp--preset--color--orange-200) !important;}.has-orange-300-color{color: var(--wp--preset--color--orange-300) !important;}.has-orange-400-color{color: var(--wp--preset--color--orange-400) !important;}.has-orange-500-color{color: var(--wp--preset--color--orange-500) !important;}.has-orange-600-color{color: var(--wp--preset--color--orange-600) !important;}.has-orange-700-color{color: var(--wp--preset--color--orange-700) !important;}.has-orange-800-color{color: var(--wp--preset--color--orange-800) !important;}.has-red-50-color{color: var(--wp--preset--color--red-50) !important;}.has-red-100-color{color: var(--wp--preset--color--red-100) !important;}.has-red-200-color{color: var(--wp--preset--color--red-200) !important;}.has-red-300-color{color: var(--wp--preset--color--red-300) !important;}.has-red-400-color{color: var(--wp--preset--color--red-400) !important;}.has-red-500-color{color: var(--wp--preset--color--red-500) !important;}.has-red-600-color{color: var(--wp--preset--color--red-600) !important;}.has-red-700-color{color: var(--wp--preset--color--red-700) !important;}.has-red-800-color{color: var(--wp--preset--color--red-800) !important;}.has-green-50-color{color: var(--wp--preset--color--green-50) !important;}.has-green-100-color{color: var(--wp--preset--color--green-100) !important;}.has-green-200-color{color: var(--wp--preset--color--green-200) !important;}.has-green-300-color{color: var(--wp--preset--color--green-300) !important;}.has-green-400-color{color: var(--wp--preset--color--green-400) !important;}.has-green-500-color{color: var(--wp--preset--color--green-500) !important;}.has-green-600-color{color: var(--wp--preset--color--green-600) !important;}.has-green-700-color{color: var(--wp--preset--color--green-700) !important;}.has-green-800-color{color: var(--wp--preset--color--green-800) !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-transparent-background-color{background-color: var(--wp--preset--color--transparent) !important;}.has-neutral-50-background-color{background-color: var(--wp--preset--color--neutral-50) !important;}.has-neutral-100-background-color{background-color: var(--wp--preset--color--neutral-100) !important;}.has-neutral-200-background-color{background-color: var(--wp--preset--color--neutral-200) !important;}.has-neutral-300-background-color{background-color: var(--wp--preset--color--neutral-300) !important;}.has-neutral-400-background-color{background-color: var(--wp--preset--color--neutral-400) !important;}.has-neutral-600-background-color{background-color: var(--wp--preset--color--neutral-600) !important;}.has-neutral-700-background-color{background-color: var(--wp--preset--color--neutral-700) !important;}.has-neutral-800-background-color{background-color: var(--wp--preset--color--neutral-800) !important;}.has-neutral-900-background-color{background-color: var(--wp--preset--color--neutral-900) !important;}.has-neutral-text-background-color{background-color: var(--wp--preset--color--neutral-text) !important;}.has-blue-50-background-color{background-color: var(--wp--preset--color--blue-50) !important;}.has-blue-100-background-color{background-color: var(--wp--preset--color--blue-100) !important;}.has-blue-200-background-color{background-color: var(--wp--preset--color--blue-200) !important;}.has-blue-300-background-color{background-color: var(--wp--preset--color--blue-300) !important;}.has-blue-400-background-color{background-color: var(--wp--preset--color--blue-400) !important;}.has-blue-500-background-color{background-color: var(--wp--preset--color--blue-500) !important;}.has-blue-600-background-color{background-color: var(--wp--preset--color--blue-600) !important;}.has-blue-700-background-color{background-color: var(--wp--preset--color--blue-700) !important;}.has-blue-800-background-color{background-color: var(--wp--preset--color--blue-800) !important;}.has-orange-50-background-color{background-color: var(--wp--preset--color--orange-50) !important;}.has-orange-100-background-color{background-color: var(--wp--preset--color--orange-100) !important;}.has-orange-200-background-color{background-color: var(--wp--preset--color--orange-200) !important;}.has-orange-300-background-color{background-color: var(--wp--preset--color--orange-300) !important;}.has-orange-400-background-color{background-color: var(--wp--preset--color--orange-400) !important;}.has-orange-500-background-color{background-color: var(--wp--preset--color--orange-500) !important;}.has-orange-600-background-color{background-color: var(--wp--preset--color--orange-600) !important;}.has-orange-700-background-color{background-color: var(--wp--preset--color--orange-700) !important;}.has-orange-800-background-color{background-color: var(--wp--preset--color--orange-800) !important;}.has-red-50-background-color{background-color: var(--wp--preset--color--red-50) !important;}.has-red-100-background-color{background-color: var(--wp--preset--color--red-100) !important;}.has-red-200-background-color{background-color: var(--wp--preset--color--red-200) !important;}.has-red-300-background-color{background-color: var(--wp--preset--color--red-300) !important;}.has-red-400-background-color{background-color: var(--wp--preset--color--red-400) !important;}.has-red-500-background-color{background-color: var(--wp--preset--color--red-500) !important;}.has-red-600-background-color{background-color: var(--wp--preset--color--red-600) !important;}.has-red-700-background-color{background-color: var(--wp--preset--color--red-700) !important;}.has-red-800-background-color{background-color: var(--wp--preset--color--red-800) !important;}.has-green-50-background-color{background-color: var(--wp--preset--color--green-50) !important;}.has-green-100-background-color{background-color: var(--wp--preset--color--green-100) !important;}.has-green-200-background-color{background-color: var(--wp--preset--color--green-200) !important;}.has-green-300-background-color{background-color: var(--wp--preset--color--green-300) !important;}.has-green-400-background-color{background-color: var(--wp--preset--color--green-400) !important;}.has-green-500-background-color{background-color: var(--wp--preset--color--green-500) !important;}.has-green-600-background-color{background-color: var(--wp--preset--color--green-600) !important;}.has-green-700-background-color{background-color: var(--wp--preset--color--green-700) !important;}.has-green-800-background-color{background-color: var(--wp--preset--color--green-800) !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-transparent-border-color{border-color: var(--wp--preset--color--transparent) !important;}.has-neutral-50-border-color{border-color: var(--wp--preset--color--neutral-50) !important;}.has-neutral-100-border-color{border-color: var(--wp--preset--color--neutral-100) !important;}.has-neutral-200-border-color{border-color: var(--wp--preset--color--neutral-200) !important;}.has-neutral-300-border-color{border-color: var(--wp--preset--color--neutral-300) !important;}.has-neutral-400-border-color{border-color: var(--wp--preset--color--neutral-400) !important;}.has-neutral-600-border-color{border-color: var(--wp--preset--color--neutral-600) !important;}.has-neutral-700-border-color{border-color: var(--wp--preset--color--neutral-700) !important;}.has-neutral-800-border-color{border-color: var(--wp--preset--color--neutral-800) !important;}.has-neutral-900-border-color{border-color: var(--wp--preset--color--neutral-900) !important;}.has-neutral-text-border-color{border-color: var(--wp--preset--color--neutral-text) !important;}.has-blue-50-border-color{border-color: var(--wp--preset--color--blue-50) !important;}.has-blue-100-border-color{border-color: var(--wp--preset--color--blue-100) !important;}.has-blue-200-border-color{border-color: var(--wp--preset--color--blue-200) !important;}.has-blue-300-border-color{border-color: var(--wp--preset--color--blue-300) !important;}.has-blue-400-border-color{border-color: var(--wp--preset--color--blue-400) !important;}.has-blue-500-border-color{border-color: var(--wp--preset--color--blue-500) !important;}.has-blue-600-border-color{border-color: var(--wp--preset--color--blue-600) !important;}.has-blue-700-border-color{border-color: var(--wp--preset--color--blue-700) !important;}.has-blue-800-border-color{border-color: var(--wp--preset--color--blue-800) !important;}.has-orange-50-border-color{border-color: var(--wp--preset--color--orange-50) !important;}.has-orange-100-border-color{border-color: var(--wp--preset--color--orange-100) !important;}.has-orange-200-border-color{border-color: var(--wp--preset--color--orange-200) !important;}.has-orange-300-border-color{border-color: var(--wp--preset--color--orange-300) !important;}.has-orange-400-border-color{border-color: var(--wp--preset--color--orange-400) !important;}.has-orange-500-border-color{border-color: var(--wp--preset--color--orange-500) !important;}.has-orange-600-border-color{border-color: var(--wp--preset--color--orange-600) !important;}.has-orange-700-border-color{border-color: var(--wp--preset--color--orange-700) !important;}.has-orange-800-border-color{border-color: var(--wp--preset--color--orange-800) !important;}.has-red-50-border-color{border-color: var(--wp--preset--color--red-50) !important;}.has-red-100-border-color{border-color: var(--wp--preset--color--red-100) !important;}.has-red-200-border-color{border-color: var(--wp--preset--color--red-200) !important;}.has-red-300-border-color{border-color: var(--wp--preset--color--red-300) !important;}.has-red-400-border-color{border-color: var(--wp--preset--color--red-400) !important;}.has-red-500-border-color{border-color: var(--wp--preset--color--red-500) !important;}.has-red-600-border-color{border-color: var(--wp--preset--color--red-600) !important;}.has-red-700-border-color{border-color: var(--wp--preset--color--red-700) !important;}.has-red-800-border-color{border-color: var(--wp--preset--color--red-800) !important;}.has-green-50-border-color{border-color: var(--wp--preset--color--green-50) !important;}.has-green-100-border-color{border-color: var(--wp--preset--color--green-100) !important;}.has-green-200-border-color{border-color: var(--wp--preset--color--green-200) !important;}.has-green-300-border-color{border-color: var(--wp--preset--color--green-300) !important;}.has-green-400-border-color{border-color: var(--wp--preset--color--green-400) !important;}.has-green-500-border-color{border-color: var(--wp--preset--color--green-500) !important;}.has-green-600-border-color{border-color: var(--wp--preset--color--green-600) !important;}.has-green-700-border-color{border-color: var(--wp--preset--color--green-700) !important;}.has-green-800-border-color{border-color: var(--wp--preset--color--green-800) !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-illumination-gradient-background{background: var(--wp--preset--gradient--illumination) !important;}.has-cool-blue-gradient-background{background: var(--wp--preset--gradient--cool-blue) !important;}.has-energy-gradient-background{background: var(--wp--preset--gradient--energy) !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;}.has-h-1-display-font-size{font-size: var(--wp--preset--font-size--h-1-display) !important;}.has-h-2-display-font-size{font-size: var(--wp--preset--font-size--h-2-display) !important;}.has-h-3-display-font-size{font-size: var(--wp--preset--font-size--h-3-display) !important;}.has-h-4-heading-font-size{font-size: var(--wp--preset--font-size--h-4-heading) !important;}.has-h-5-heading-font-size{font-size: var(--wp--preset--font-size--h-5-heading) !important;}.has-h-6-heading-font-size{font-size: var(--wp--preset--font-size--h-6-heading) !important;}.has-body-large-font-size{font-size: var(--wp--preset--font-size--body-large) !important;}.has-body-medium-font-size{font-size: var(--wp--preset--font-size--body-medium) !important;}.has-body-small-font-size{font-size: var(--wp--preset--font-size--body-small) !important;}.has-caption-font-size{font-size: var(--wp--preset--font-size--caption) !important;}.has-outfit-font-family{font-family: var(--wp--preset--font-family--outfit) !important;}</style><noscript><style id="rocket-lazyload-nojs-css">.rll-youtube-player, [data-lazy-src]{display:none !important;}</style></noscript>
|
||
<!-- Qualified (open pin / docked mode) -->
|
||
<script type="rocketlazyloadscript">
|
||
(function(w, q) {
|
||
w['QualifiedObject'] = q;
|
||
w[q] = w[q] || function() {
|
||
(w[q].q = w[q].q || []).push(arguments)
|
||
};
|
||
})(window, 'qualified')
|
||
</script>
|
||
<!-- Qualified pin mode script — MUST stay synchronous (no async/defer) -->
|
||
<script type="rocketlazyloadscript" data-minify="1" data-rocket-src="https://montecarlo.ai/wp-content/cache/min/1/docking.js?ver=1788405332" data-rocket-type="text/javascript"></script>
|
||
<script type="rocketlazyloadscript" data-rocket-type="text/javascript">
|
||
qualified.docking.init({
|
||
defaultDocked: false,
|
||
showSkeleton: true,
|
||
});
|
||
</script>
|
||
<script async src="https://js.qualified.com/qualified.js?token=jZczq5n4ttznd5f1"></script>
|
||
<!-- End Qualified -->
|
||
<link data-minify="1" rel="preload" as="style" href="https://montecarlo.ai/wp-content/cache/min/1/wp-content/themes/monte-carlo-2025/public/build/assets/app-Cr0DDS9h.css?ver=1788405332" /><link rel="modulepreload" href="https://montecarlo.ai/wp-content/themes/monte-carlo-2025/public/build/assets/app-kJ5YAVxH.js" /><link rel="modulepreload" href="https://montecarlo.ai/wp-content/themes/monte-carlo-2025/public/build/assets/carousel-BVJYGSYY.js" /><link rel="modulepreload" href="https://montecarlo.ai/wp-content/themes/monte-carlo-2025/public/build/assets/isotope-L6bFjppu.js" /><link rel="modulepreload" href="https://montecarlo.ai/wp-content/themes/monte-carlo-2025/public/build/assets/_commonjsHelpers-CqkleIqs.js" /><link data-minify="1" rel="stylesheet" href="https://montecarlo.ai/wp-content/cache/min/1/wp-content/themes/monte-carlo-2025/public/build/assets/app-Cr0DDS9h.css?ver=1788405332" /><script type="rocketlazyloadscript" data-rocket-type="module" data-rocket-src="https://montecarlo.ai/wp-content/themes/monte-carlo-2025/public/build/assets/app-kJ5YAVxH.js"></script> <!-- Fonts -->
|
||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||
<link rel="stylesheet" href="https://montecarlo.ai/wp-content/cache/fonts/1/google-fonts/css/8/a/8/9953a1e426fea43de11b629854165.css" data-wpr-hosted-gf-parameters="family=Outfit:wght@100..900&family=IBM+Plex+Mono:wght@400;500&display=swap"/>
|
||
<style id="wpr-lazyload-bg-container"></style><style id="wpr-lazyload-bg-exclusion"></style>
|
||
<noscript>
|
||
<style id="wpr-lazyload-bg-nostyle"></style>
|
||
</noscript>
|
||
<script type="application/javascript">const rocket_pairs = []; const rocket_excluded_pairs = [];</script><meta name="generator" content="WP Rocket 3.18.2" data-wpr-features="wpr_lazyload_css_bg_img wpr_delay_js wpr_minify_js wpr_preload_fonts wpr_lazyload_images wpr_minify_css wpr_preload_links wpr_host_fonts_locally wpr_desktop wpr_dns_prefetch" /></head>
|
||
|
||
<body class="post-template-default single single-post postid-8256 single-format-standard wp-embed-responsive blog-chaos-data-engineering-manifesto page-bg-dark blog-theme-dark">
|
||
<noscript>
|
||
<a href="https://www.clickcease.com" rel="nofollow"><img src="https://monitor.clickcease.com/stats/stats.aspx" alt="Clickcease" /></a>
|
||
</noscript>
|
||
|
||
<!-- Google Tag Manager (noscript) -->
|
||
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-T3HJ9NR" height="0" width="0"
|
||
style="display:none;visibility:hidden"></iframe></noscript>
|
||
<!-- End Google Tag Manager (noscript) -->
|
||
|
||
|
||
<div data-rocket-location-hash="0ede82c4187970ef91a1443469aa9350" id="app">
|
||
<a class="sr-only focus:not-sr-only" href="#main">
|
||
Skip to content
|
||
</a>
|
||
|
||
<header data-rocket-location-hash="81ba66b642353bf16071d636ebd25c97" x-data="{ mobileOpen: false }" data-theme="dark" class="banner absolute z-50 w-full ">
|
||
|
||
|
||
<div
|
||
class="py-4 md:py-0 px-4 md:px-0 bg-transparent border-neutral-200/30 border-b-2">
|
||
|
||
<div class="container mx-auto flex justify-between items-center">
|
||
|
||
<a href="https://montecarlo.ai/" class="mr-8 shrink-0 flex items-center" aria-label="Home">
|
||
<img src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Monte Carlo"
|
||
class="h-8 w-auto" data-lazy-src="https://montecarlo.ai/wp-content/themes/monte-carlo-2025/public/build/assets/logo-white-ZjpfLO5i.png"><noscript><img src="https://montecarlo.ai/wp-content/themes/monte-carlo-2025/public/build/assets/logo-white-ZjpfLO5i.png" alt="Monte Carlo"
|
||
class="h-8 w-auto"></noscript>
|
||
</a>
|
||
|
||
|
||
<nav class="nav-primary static flex-1 w-full" aria-label="">
|
||
<ul id="menu-main-menu" class="hidden md:flex md:flex-row md:justify-center gap-4 md:gap-8 md:static"><li class="group md:static"><a href="#" class="flex items-center gap-1 py-4 md:py-8 px-2 text-xs md:text-sm xl:text-base font-medium text-white hover:text-gray-200 hover:underline">Platform<svg class="ml-1 w-3 h-3 shrink-0 text-slate-500 transition-transform duration-300 ease-in-out group-hover:rotate-180" viewBox="0 0 10 6" fill="none" stroke="currentColor" stroke-width="1.5"><path d="M9 1 5 5 1 1" /></svg></a><div class="nav-dropdown hidden md:block md:absolute w-lvw left-0 right-0 md:z-20 bg-[#002135]/70 backdrop-blur-xl md:border-t-2 border-neutral-200/30 md:shadow-lg md:opacity-0 md:invisible md:pointer-events-none md:group-hover:opacity-100 md:group-hover:visible md:group-hover:pointer-events-auto transition-all duration-500 ease-in-out"><div class="container mx-auto px-4 md:px-0"><div class="px-6 sm:px-10 py-6 sm:py-8 flex flex-col sm:flex-row gap-6 sm:gap-10 lg:gap-16 sm:pl-16 lg:pl-32 lg:ml-20 xl:ml-28 2xl:ml-52"><div class="flex flex-col mb-8 sm:mb-0 min-w-0 sm:max-w-xs sm:border-r border-neutral-200/30 sm:pr-8 lg:pr-12"><div class="mb-4 text-xs font-semibold uppercase tracking-wider text-white opacity-60 break-words">The Agent Trust Platform</div><div class="text-sm text-white opacity-80 mb-6 leading-relaxed">Monte Carlo intelligently monitors, troubleshoots, and improves agents and their underlying data – so enterprises can deploy trusted AI in production</div><a href="https://montecarlo.ai/agent-trust" class="inline-flex items-center gap-1 text-sm font-medium text-white hover:text-gray-200 hover:underline">What is agent trust?<span aria-hidden="true">→</span></a></div><div class="flex flex-col mb-8 sm:mb-0 min-w-0"><div class="mb-4 text-xs font-semibold uppercase tracking-wider text-white opacity-60 break-words">Agentic Operations</div><ul class="space-y-4 sm:space-y-6"><li class="min-w-0"><a href="https://montecarlo.ai/platform/agentic-onboarding" target="" class="flex items-center text-base font-medium text-white hover:text-gray-200 hover:underline break-words"><span class="break-words">Agentic Onboarding</span></a></li><li class="min-w-0"><a href="https://montecarlo.ai/platform/agents" target="" class="flex items-center text-base font-medium text-white hover:text-gray-200 hover:underline break-words"><span class="break-words">Agent Fleet</span></a></li><li class="min-w-0"><a href="https://montecarlo.ai/mcp-and-toolkit" target="" class="flex items-center text-base font-medium text-white hover:text-gray-200 hover:underline break-words"><span class="break-words">MCP & Agent Toolkit</span></a></li></ul></div><div class="flex flex-col mb-8 sm:mb-0 min-w-0"><div class="mb-4 text-xs font-semibold uppercase tracking-wider text-white opacity-60 break-words">Platform Capabilities</div><ul class="space-y-4 sm:space-y-6"><li class="min-w-0"><a href="https://montecarlo.ai/mc-platform" target="" class="flex items-center text-base font-medium text-white hover:text-gray-200 hover:underline break-words"><span class="break-words">Overview</span></a></li><li class="min-w-0"><a href="https://montecarlo.ai/platform/agent-observability/" target="" class="flex items-center text-base font-medium text-white hover:text-gray-200 hover:underline break-words"><span class="break-words">Agent Observability</span></a></li><li class="min-w-0"><a href="https://montecarlo.ai/platform/data-quality/" target="" class="flex items-center text-base font-medium text-white hover:text-gray-200 hover:underline break-words"><span class="break-words">Data Observability</span></a></li><li class="min-w-0"><a href="/product/integrations" target="" class="flex items-center text-base font-medium text-white hover:text-gray-200 hover:underline break-words"><span class="break-words">Integrations</span></a></li></ul></div></div></div></div></li><li class="group md:static"><a href="#" class="flex items-center gap-1 py-4 md:py-8 px-2 text-xs md:text-sm xl:text-base font-medium text-white hover:text-gray-200 hover:underline">Solutions<svg class="ml-1 w-3 h-3 shrink-0 text-slate-500 transition-transform duration-300 ease-in-out group-hover:rotate-180" viewBox="0 0 10 6" fill="none" stroke="currentColor" stroke-width="1.5"><path d="M9 1 5 5 1 1" /></svg></a><div class="nav-dropdown hidden md:block md:absolute w-lvw left-0 right-0 md:z-20 bg-[#002135]/70 backdrop-blur-xl md:border-t-2 border-neutral-200/30 md:shadow-lg md:opacity-0 md:invisible md:pointer-events-none md:group-hover:opacity-100 md:group-hover:visible md:group-hover:pointer-events-auto transition-all duration-500 ease-in-out"><div class="container mx-auto px-4 md:px-0"><div class="px-6 sm:px-10 py-6 sm:py-8 flex flex-col sm:flex-row gap-6 sm:gap-10 lg:gap-16 sm:pl-16 lg:pl-32 lg:ml-20 xl:ml-28 2xl:ml-52"><div class="flex flex-col mb-8 sm:mb-0 sm:flex-1 min-w-0"><div class="mb-4 text-xs font-semibold uppercase tracking-wider text-white opacity-60 break-words">By role</div><ul class="space-y-4 sm:space-y-6"><li class="min-w-0"><a href="https://montecarlo.ai/solutions/ai-engineers" target="" class="flex items-center text-base font-medium text-white hover:text-gray-200 hover:underline break-words"><span class="break-words">AI Engineers</span></a></li><li class="min-w-0"><a href="https://montecarlo.ai/solutions/cios-and-ctos" target="" class="flex items-center text-base font-medium text-white hover:text-gray-200 hover:underline break-words"><span class="break-words">CIOs & CTOs</span></a></li><li class="min-w-0"><a href="/solutions/chief-data-ai-officers" target="" class="flex items-center text-base font-medium text-white hover:text-gray-200 hover:underline break-words"><span class="break-words">Data + AI Leaders</span></a></li><li class="min-w-0"><a href="/solutions/data-governance" target="" class="flex items-center text-base font-medium text-white hover:text-gray-200 hover:underline break-words"><span class="break-words">Data Governance</span></a></li><li class="min-w-0"><a href="/solutions/data-engineers" target="" class="flex items-center text-base font-medium text-white hover:text-gray-200 hover:underline break-words"><span class="break-words">Data Engineers</span></a></li></ul></div><div class="flex flex-col mb-8 sm:mb-0 sm:flex-1 min-w-0"><div class="mb-4 text-xs font-semibold uppercase tracking-wider text-white opacity-60 break-words">By use case</div><ul class="space-y-4 sm:space-y-6"><li class="min-w-0"><a href="/use-cases/business-analytics" target="" class="flex items-center text-base font-medium text-white hover:text-gray-200 hover:underline break-words"><span class="break-words">Business Analytics</span></a></li><li class="min-w-0"><a href="/use-cases/ai-ml-models" target="" class="flex items-center text-base font-medium text-white hover:text-gray-200 hover:underline break-words"><span class="break-words">AI & ML Models</span></a></li><li class="min-w-0"><a href="/use-cases/data-democratization" target="" class="flex items-center text-base font-medium text-white hover:text-gray-200 hover:underline break-words"><span class="break-words">Data Democratization</span></a></li><li class="min-w-0"><a href="/use-cases/data-migration" target="" class="flex items-center text-base font-medium text-white hover:text-gray-200 hover:underline break-words"><span class="break-words">Data Migration</span></a></li></ul></div><div class="flex flex-col mb-8 sm:mb-0 sm:flex-1 min-w-0"><div class="mb-4 text-xs font-semibold uppercase tracking-wider text-white opacity-60 break-words">By industry</div><ul class="space-y-4 sm:space-y-6"><li class="min-w-0"><a href="https://montecarlo.ai/solutions/healthcare-and-life-sciences" target="" class="flex items-center text-base font-medium text-white hover:text-gray-200 hover:underline break-words"><span class="break-words">Healthcare and Life Sciences</span></a></li><li class="min-w-0"><a href="https://montecarlo.ai/solutions/financial-services" target="" class="flex items-center text-base font-medium text-white hover:text-gray-200 hover:underline break-words"><span class="break-words">Financial Services</span></a></li><li class="min-w-0"><a href="" target="" class="flex items-center text-base font-medium text-white hover:text-gray-200 hover:underline break-words"><span class="break-words">Retail and Consumer Goods</span></a></li></ul></div></div></div></div></li><li class="group md:static"><a href="#" class="flex items-center gap-1 py-4 md:py-8 px-2 text-xs md:text-sm xl:text-base font-medium text-white hover:text-gray-200 hover:underline">Resources<svg class="ml-1 w-3 h-3 shrink-0 text-slate-500 transition-transform duration-300 ease-in-out group-hover:rotate-180" viewBox="0 0 10 6" fill="none" stroke="currentColor" stroke-width="1.5"><path d="M9 1 5 5 1 1" /></svg></a><div class="nav-dropdown hidden md:block md:absolute w-lvw left-0 right-0 md:z-20 bg-[#002135]/70 backdrop-blur-xl md:border-t-2 border-neutral-200/30 md:shadow-lg md:opacity-0 md:invisible md:pointer-events-none md:group-hover:opacity-100 md:group-hover:visible md:group-hover:pointer-events-auto transition-all duration-500 ease-in-out"><div class="container mx-auto px-4 md:px-0"><div class="px-6 sm:px-10 py-6 sm:py-8 flex flex-col sm:flex-row gap-6 sm:gap-20 lg:gap-32 sm:pl-16 lg:pl-32 lg:ml-20 xl:ml-28 2xl:ml-52"><div class="flex flex-col mb-8 sm:mb-0 min-w-0"><div class="mb-4 text-xs font-semibold uppercase tracking-wider text-white opacity-60 break-words">Educate</div><ul class="space-y-4 sm:space-y-6"><li class="min-w-0"><a href="/blog" target="" class="flex items-center text-base font-medium text-white hover:text-gray-200 hover:underline break-words"><span class="break-words">Blog</span></a></li><li class="min-w-0"><a href="https://montecarlo.ai/case-studies" target="" class="flex items-center text-base font-medium text-white hover:text-gray-200 hover:underline break-words"><span class="break-words">Case Studies</span></a></li><li class="min-w-0"><a href="https://docs.getmontecarlo.com/" target="_blank" class="flex items-center text-base font-medium text-white hover:text-gray-200 hover:underline break-words"><span class="break-words">Docs</span></a></li><li class="min-w-0"><a href="https://info.montecarlodata.com/resources/webinars" target="" class="flex items-center text-base font-medium text-white hover:text-gray-200 hover:underline break-words"><span class="break-words">On Demand Webinars</span></a></li><li class="min-w-0"><a href="https://info.montecarlodata.com/get-resources/customer-onboarding?_gl=1*dlxzl3*_gcl_aw*R0NMLjE3NjY0Mjk4NTIuQ2p3S0NBaUE5YVBLQmhCaEVpd0F5ejgySnhtemZMSnEzeUFEUmdHaHRVb2FhX2xka0ltdEpkX1FaMDlqSkQybmtxd19fc2dUaE1rYjZCb0NzNm9RQXZEX0J3RQ..*_gcl_au*MTc4ODE1NDI3MS4xNzcwNzQ1Mzkz*_ga*MTQ2ODM5OTA3OC4xNzU2MDY5OTkw*_ga_SZGJ8KW5Z8*czE3NzI2NTU3NjMkbzExOCRnMCR0MTc3MjY1NTc2MyRqNjAkbDAkaDExNjk1NTI1NTU.&_ga=2.160413823.319268347.1772483482-1468399078.1756069990" target="" class="flex items-center text-base font-medium text-white hover:text-gray-200 hover:underline break-words"><span class="break-words">Product Certification</span></a></li></ul></div><div class="flex flex-col mb-8 sm:mb-0 min-w-0"><div class="mb-4 text-xs font-semibold uppercase tracking-wider text-white opacity-60 break-words">Reviews & Reports</div><ul class="space-y-4 sm:space-y-6"><li class="min-w-0"><a href="https://info.montecarlodata.com/resources/ebooks-reports-and-guides" target="" class="flex items-center text-base font-medium text-white hover:text-gray-200 hover:underline break-words"><span class="break-words">eBooks, Reports, & Guides</span></a></li><li class="min-w-0"><a href="https://info.montecarlodata.com/get-resources/forrester-total-economic-impact-report" target="" class="flex items-center text-base font-medium text-white hover:text-gray-200 hover:underline break-words"><span class="break-words">Forrester's Total Economic Impact Of Monte Carlo’s Data + AI Observability Platform</span></a></li></ul></div></div></div></div></li><li class="group md:static"><a href="#" class="flex items-center gap-1 py-4 md:py-8 px-2 text-xs md:text-sm xl:text-base font-medium text-white hover:text-gray-200 hover:underline">Why Monte Carlo<svg class="ml-1 w-3 h-3 shrink-0 text-slate-500 transition-transform duration-300 ease-in-out group-hover:rotate-180" viewBox="0 0 10 6" fill="none" stroke="currentColor" stroke-width="1.5"><path d="M9 1 5 5 1 1" /></svg></a><div class="nav-dropdown hidden md:block md:absolute w-lvw left-0 right-0 md:z-20 bg-[#002135]/70 backdrop-blur-xl md:border-t-2 border-neutral-200/30 md:shadow-lg md:opacity-0 md:invisible md:pointer-events-none md:group-hover:opacity-100 md:group-hover:visible md:group-hover:pointer-events-auto transition-all duration-500 ease-in-out"><div class="container mx-auto px-4 md:px-0"><div class="px-6 py-6 sm:py-8 sm:pr-40 lg:pr-[400px] 2xl:pr-[650px] sm:pl-32 lg:ml-20 xl:ml-28 2xl:ml-52"><ul class="grid grid-cols-1 sm:grid-cols-2 gap-x-8 sm:gap-x-16 gap-y-4 sm:gap-y-6"><li class="min-w-0"><a href="https://montecarlo.ai/why-monte-carlo" target="" class="flex items-center text-base font-medium text-white hover:text-gray-200 hover:underline break-words"><span class="break-words">Why Monte Carlo</span></a></li><li class="min-w-0"><a href="https://montecarlo.ai/partners/" target="" class="flex items-center text-base font-medium text-white hover:text-gray-200 hover:underline break-words"><span class="break-words">Partners</span></a></li><li class="min-w-0"><a href="https://montecarlo.ai/about-us" target="" class="flex items-center text-base font-medium text-white hover:text-gray-200 hover:underline break-words"><span class="break-words">About Us</span></a></li><li class="min-w-0"><a href="https://montecarlo.ai/careers-at-monte-carlo/" target="" class="flex items-center text-base font-medium text-white hover:text-gray-200 hover:underline break-words"><span class="break-words">Careers</span></a></li><li class="min-w-0"><a href="https://montecarlo.ai/customers" target="" class="flex items-center text-base font-medium text-white hover:text-gray-200 hover:underline break-words"><span class="break-words">Customers</span></a></li></ul></div></div></div></li><li class="group md:static"><a href="/request-for-pricing/" class="flex items-center gap-1 py-4 md:py-8 px-2 text-xs md:text-sm xl:text-base font-medium text-white hover:text-gray-200 hover:underline">Pricing</a></li></ul>
|
||
</nav>
|
||
|
||
<div class="hidden xl:flex items-center space-x-4">
|
||
|
||
<div x-data="{
|
||
expanded: false,
|
||
toggleSearch() {
|
||
this.expanded = !this.expanded;
|
||
if (this.expanded) {
|
||
setTimeout(() => {
|
||
const input = this.$refs.searchContainer.querySelector('input');
|
||
if (input) input.focus();
|
||
}, 100);
|
||
// Add global click and keydown listeners when expanded
|
||
this.$nextTick(() => {
|
||
document.addEventListener('click', this.handleClickOutside.bind(this));
|
||
document.addEventListener('keydown', this.handleKeydown.bind(this));
|
||
});
|
||
} else {
|
||
// Remove global listeners when collapsed
|
||
document.removeEventListener('click', this.handleClickOutside.bind(this));
|
||
document.removeEventListener('keydown', this.handleKeydown.bind(this));
|
||
}
|
||
},
|
||
handleClickOutside(event) {
|
||
if (!this.$el.contains(event.target)) {
|
||
this.expanded = false;
|
||
this.removeListeners();
|
||
}
|
||
},
|
||
handleKeydown(event) {
|
||
if (event.key === 'Escape') {
|
||
this.expanded = false;
|
||
this.removeListeners();
|
||
}
|
||
},
|
||
removeListeners() {
|
||
document.removeEventListener('click', this.handleClickOutside.bind(this));
|
||
document.removeEventListener('keydown', this.handleKeydown.bind(this));
|
||
},
|
||
closeSearch() {
|
||
this.expanded = false;
|
||
this.removeListeners();
|
||
}
|
||
}"
|
||
class="relative hidden 2xl:block">
|
||
|
||
|
||
<div class="relative h-10 overflow-hidden transition-all duration-300"
|
||
:class="expanded ? 'w-80' : 'w-10'">
|
||
|
||
<button
|
||
@click="toggleSearch()"
|
||
x-show="!expanded"
|
||
class="absolute top-0 right-0 flex items-center justify-center w-10 h-10 text-white hover:text-gray-200 hover:underline transition-colors duration-200 z-10 cursor-pointer"
|
||
aria-label="Open search"
|
||
>
|
||
<span class="brightness-0 invert">
|
||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="22" height="22" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve" class="w-5 h-5 text-gray-200">
|
||
<path d="M460.355,421.59L353.844,315.078c20.041-27.553,31.885-61.437,31.885-98.037
|
||
C385.729,124.934,310.793,50,218.686,50C126.58,50,51.645,124.934,51.645,217.041c0,92.106,74.936,167.041,167.041,167.041
|
||
c34.912,0,67.352-10.773,94.184-29.158L419.945,462L460.355,421.59z M100.631,217.041c0-65.096,52.959-118.056,118.055-118.056
|
||
c65.098,0,118.057,52.959,118.057,118.056c0,65.096-52.959,118.056-118.057,118.056C153.59,335.097,100.631,282.137,100.631,217.041
|
||
z"></path>
|
||
</svg>
|
||
|
||
</span>
|
||
</button>
|
||
|
||
|
||
<div
|
||
x-show="expanded"
|
||
x-transition:enter="transition ease-out duration-300"
|
||
x-transition:enter-start="transform translate-x-full"
|
||
x-transition:enter-end="transform translate-x-0"
|
||
x-transition:leave="transition ease-in duration-300"
|
||
x-transition:leave-start="transform translate-x-0"
|
||
x-transition:leave-end="transform translate-x-full"
|
||
class="absolute right-0 top-1/2 z-20"
|
||
style="transform: translateY(-50%); width: 300px;"
|
||
x-ref="searchContainer"
|
||
>
|
||
<div class="w-full" style="min-width: 250px;">
|
||
<div class="asl_w_container asl_w_container_1" data-id="1" data-instance="1">
|
||
<div id='ajaxsearchlite1'
|
||
data-id="1"
|
||
data-instance="1"
|
||
class="asl_w asl_m asl_m_1 asl_m_1_1">
|
||
<div class="probox">
|
||
|
||
|
||
<div class='prosettings' style='display:none;' data-opened=0>
|
||
<div class='innericon'>
|
||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="22" height="22" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
|
||
<polygon transform = "rotate(90 256 256)" points="142.332,104.886 197.48,50 402.5,256 197.48,462 142.332,407.113 292.727,256 "/>
|
||
</svg>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
<div class='proinput'>
|
||
<form role="search" action='#' autocomplete="off"
|
||
aria-label="Search form">
|
||
<input aria-label="Search input"
|
||
type='search' class='orig'
|
||
tabindex="0"
|
||
name='phrase'
|
||
placeholder='Search here..'
|
||
value=''
|
||
autocomplete="off"/>
|
||
<input aria-label="Search autocomplete"
|
||
type='text'
|
||
class='autocomplete'
|
||
tabindex="-1"
|
||
name='phrase'
|
||
value=''
|
||
autocomplete="off" disabled/>
|
||
<input type='submit' value="Start search" style='width:0; height: 0; visibility: hidden;'>
|
||
</form>
|
||
</div>
|
||
|
||
|
||
|
||
<button class='promagnifier' tabindex="0" aria-label="Search magnifier">
|
||
<span class='innericon' style="display:block;">
|
||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="22" height="22" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
|
||
<path d="M460.355,421.59L353.844,315.078c20.041-27.553,31.885-61.437,31.885-98.037
|
||
C385.729,124.934,310.793,50,218.686,50C126.58,50,51.645,124.934,51.645,217.041c0,92.106,74.936,167.041,167.041,167.041
|
||
c34.912,0,67.352-10.773,94.184-29.158L419.945,462L460.355,421.59z M100.631,217.041c0-65.096,52.959-118.056,118.055-118.056
|
||
c65.098,0,118.057,52.959,118.057,118.056c0,65.096-52.959,118.056-118.057,118.056C153.59,335.097,100.631,282.137,100.631,217.041
|
||
z"/>
|
||
</svg>
|
||
</span>
|
||
</button>
|
||
|
||
|
||
|
||
<div class='proloading'>
|
||
|
||
<div class="asl_loader"><div class="asl_loader-inner asl_simple-circle"></div></div>
|
||
|
||
</div>
|
||
|
||
<div class='proclose'>
|
||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
|
||
y="0px"
|
||
width="12" height="12" viewBox="0 0 512 512" enable-background="new 0 0 512 512"
|
||
xml:space="preserve">
|
||
<polygon points="438.393,374.595 319.757,255.977 438.378,137.348 374.595,73.607 255.995,192.225 137.375,73.622 73.607,137.352 192.246,255.983 73.622,374.625 137.352,438.393 256.002,319.734 374.652,438.378 "/>
|
||
</svg>
|
||
</div>
|
||
|
||
|
||
</div> </div>
|
||
<div class='asl_data_container' style="display:none !important;">
|
||
<div class="asl_init_data wpdreams_asl_data_ct"
|
||
style="display:none !important;"
|
||
id="asl_init_id_1"
|
||
data-asl-id="1"
|
||
data-asl-instance="1"
|
||
data-settings="{"homeurl":"https:\/\/montecarlo.ai\/","resultstype":"vertical","resultsposition":"hover","itemscount":4,"charcount":0,"highlight":false,"highlightWholewords":true,"singleHighlight":false,"scrollToResults":{"enabled":false,"offset":0},"resultareaclickable":1,"autocomplete":{"enabled":false,"lang":"en","trigger_charcount":0},"mobile":{"menu_selector":"#menu-toggle, .menu-toggle"},"trigger":{"click":"results_page","click_location":"same","update_href":false,"return":"results_page","return_location":"same","facet":true,"type":true,"redirect_url":"?s={phrase}","delay":300},"animations":{"pc":{"settings":{"anim":"fadedrop","dur":300},"results":{"anim":"fadedrop","dur":300},"items":"voidanim"},"mob":{"settings":{"anim":"fadedrop","dur":300},"results":{"anim":"fadedrop","dur":300},"items":"voidanim"}},"autop":{"state":true,"phrase":"","count":"1"},"resPage":{"useAjax":false,"selector":"#main","trigger_type":true,"trigger_facet":true,"trigger_magnifier":false,"trigger_return":false},"resultsSnapTo":"left","results":{"width":"auto","width_tablet":"auto","width_phone":"auto"},"settingsimagepos":"right","closeOnDocClick":true,"overridewpdefault":true,"override_method":"get"}"></div>
|
||
<div id="asl_hidden_data">
|
||
<svg style="position:absolute" height="0" width="0">
|
||
<filter id="aslblur">
|
||
<feGaussianBlur in="SourceGraphic" stdDeviation="4"/>
|
||
</filter>
|
||
</svg>
|
||
<svg style="position:absolute" height="0" width="0">
|
||
<filter id="no_aslblur"></filter>
|
||
</svg>
|
||
</div>
|
||
</div>
|
||
|
||
<div id='ajaxsearchliteres1'
|
||
class='vertical wpdreams_asl_results asl_w asl_r asl_r_1 asl_r_1_1'>
|
||
|
||
|
||
<div class="results">
|
||
|
||
|
||
<div class="resdrg">
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
</div>
|
||
|
||
<div id='__original__ajaxsearchlitesettings1'
|
||
data-id="1"
|
||
class="searchsettings wpdreams_asl_settings asl_w asl_s asl_s_1">
|
||
<form name='options'
|
||
aria-label="Search settings form"
|
||
autocomplete = 'off'>
|
||
|
||
|
||
|
||
<input type="hidden" name="filters_changed" style="display:none;" value="0">
|
||
<input type="hidden" name="filters_initial" style="display:none;" value="1">
|
||
|
||
<div class="asl_option_inner hiddend">
|
||
<input type='hidden' name='qtranslate_lang' id='qtranslate_lang'
|
||
value='0'/>
|
||
</div>
|
||
|
||
|
||
|
||
<fieldset class="asl_sett_scroll">
|
||
<legend style="display: none;">Generic selectors</legend>
|
||
<div class="asl_option" tabindex="0">
|
||
<div class="asl_option_inner">
|
||
<input type="checkbox" value="exact"
|
||
aria-label="Exact matches only"
|
||
name="asl_gen[]" />
|
||
<div class="asl_option_checkbox"></div>
|
||
</div>
|
||
<div class="asl_option_label">
|
||
Exact matches only </div>
|
||
</div>
|
||
<div class="asl_option" tabindex="0">
|
||
<div class="asl_option_inner">
|
||
<input type="checkbox" value="title"
|
||
aria-label="Search in title"
|
||
name="asl_gen[]" checked="checked"/>
|
||
<div class="asl_option_checkbox"></div>
|
||
</div>
|
||
<div class="asl_option_label">
|
||
Search in title </div>
|
||
</div>
|
||
<div class="asl_option" tabindex="0">
|
||
<div class="asl_option_inner">
|
||
<input type="checkbox" value="content"
|
||
aria-label="Search in content"
|
||
name="asl_gen[]" checked="checked"/>
|
||
<div class="asl_option_checkbox"></div>
|
||
</div>
|
||
<div class="asl_option_label">
|
||
Search in content </div>
|
||
</div>
|
||
<div class="asl_option_inner hiddend">
|
||
<input type="checkbox" value="excerpt"
|
||
aria-label="Search in excerpt"
|
||
name="asl_gen[]" checked="checked"/>
|
||
<div class="asl_option_checkbox"></div>
|
||
</div>
|
||
</fieldset>
|
||
<fieldset class="asl_sett_scroll">
|
||
<legend style="display: none;">Post Type Selectors</legend>
|
||
<div class="asl_option_inner hiddend">
|
||
<input type="checkbox" value="post"
|
||
aria-label="Hidden option, ignore please"
|
||
name="customset[]" checked="checked"/>
|
||
</div>
|
||
<div class="asl_option_inner hiddend">
|
||
<input type="checkbox" value="page"
|
||
aria-label="Hidden option, ignore please"
|
||
name="customset[]" checked="checked"/>
|
||
</div>
|
||
</fieldset>
|
||
</form>
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
|
||
|
||
<a
|
||
href="https://getmontecarlo.com/signin"
|
||
|
||
|
||
|
||
class="btn-tertiary text-white hover:text-gray-200 text-xs xl:text-base"
|
||
role="button" >
|
||
<span aria-hidden="true"><svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="w-6 h-6">
|
||
<mask id="mask0_2688_4511" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24">
|
||
<rect width="24" height="24" fill="currentColor"/>
|
||
</mask>
|
||
<g mask="url(#mask0_2688_4511)">
|
||
<path d="M5.85 17.1C6.7 16.45 7.65 15.9375 8.7 15.5625C9.75 15.1875 10.85 15 12 15C13.15 15 14.25 15.1875 15.3 15.5625C16.35 15.9375 17.3 16.45 18.15 17.1C18.7333 16.4167 19.1875 15.6417 19.5125 14.775C19.8375 13.9083 20 12.9833 20 12C20 9.78333 19.2208 7.89583 17.6625 6.3375C16.1042 4.77917 14.2167 4 12 4C9.78333 4 7.89583 4.77917 6.3375 6.3375C4.77917 7.89583 4 9.78333 4 12C4 12.9833 4.1625 13.9083 4.4875 14.775C4.8125 15.6417 5.26667 16.4167 5.85 17.1ZM12 13C11.0167 13 10.1875 12.6625 9.5125 11.9875C8.8375 11.3125 8.5 10.4833 8.5 9.5C8.5 8.51667 8.8375 7.6875 9.5125 7.0125C10.1875 6.3375 11.0167 6 12 6C12.9833 6 13.8125 6.3375 14.4875 7.0125C15.1625 7.6875 15.5 8.51667 15.5 9.5C15.5 10.4833 15.1625 11.3125 14.4875 11.9875C13.8125 12.6625 12.9833 13 12 13ZM12 22C10.6167 22 9.31667 21.7375 8.1 21.2125C6.88333 20.6875 5.825 19.975 4.925 19.075C4.025 18.175 3.3125 17.1167 2.7875 15.9C2.2625 14.6833 2 13.3833 2 12C2 10.6167 2.2625 9.31667 2.7875 8.1C3.3125 6.88333 4.025 5.825 4.925 4.925C5.825 4.025 6.88333 3.3125 8.1 2.7875C9.31667 2.2625 10.6167 2 12 2C13.3833 2 14.6833 2.2625 15.9 2.7875C17.1167 3.3125 18.175 4.025 19.075 4.925C19.975 5.825 20.6875 6.88333 21.2125 8.1C21.7375 9.31667 22 10.6167 22 12C22 13.3833 21.7375 14.6833 21.2125 15.9C20.6875 17.1167 19.975 18.175 19.075 19.075C18.175 19.975 17.1167 20.6875 15.9 21.2125C14.6833 21.7375 13.3833 22 12 22ZM12 20C12.8833 20 13.7167 19.8708 14.5 19.6125C15.2833 19.3542 16 18.9833 16.65 18.5C16 18.0167 15.2833 17.6458 14.5 17.3875C13.7167 17.1292 12.8833 17 12 17C11.1167 17 10.2833 17.1292 9.5 17.3875C8.71667 17.6458 8 18.0167 7.35 18.5C8 18.9833 8.71667 19.3542 9.5 19.6125C10.2833 19.8708 11.1167 20 12 20ZM12 11C12.4333 11 12.7917 10.8583 13.075 10.575C13.3583 10.2917 13.5 9.93333 13.5 9.5C13.5 9.06667 13.3583 8.70833 13.075 8.425C12.7917 8.14167 12.4333 8 12 8C11.5667 8 11.2083 8.14167 10.925 8.425C10.6417 8.70833 10.5 9.06667 10.5 9.5C10.5 9.93333 10.6417 10.2917 10.925 10.575C11.2083 10.8583 11.5667 11 12 11Z" fill="currentColor"/>
|
||
</g>
|
||
</svg>
|
||
</span>
|
||
<span class="ml-2">Login</span>
|
||
</a>
|
||
|
||
</div>
|
||
|
||
|
||
<div class="hidden lg:block ml-6">
|
||
<a
|
||
href="https://montecarlo.ai/request-a-demo"
|
||
|
||
|
||
|
||
class="btn-primary-2026-default text-xs xl:text-base"
|
||
role="button" >
|
||
Get a demo
|
||
|
||
</a>
|
||
|
||
</div>
|
||
|
||
|
||
<button @click="mobileOpen = ! mobileOpen" aria-label="Toggle menu"
|
||
class="ml-auto md:hidden relative z-50 w-9 h-9 grid place-items-center text-white">
|
||
<span class="sr-only">Menu</span>
|
||
<svg class="w-6 h-6 transition-transform duration-200"
|
||
:class="mobileOpen ? 'rotate-90 opacity-0' : 'opacity-100'" viewBox="0 0 24 24" stroke="currentColor"
|
||
stroke-width="2" fill="none">
|
||
<path d="M4 6H20M4 12H20M4 18H20" />
|
||
</svg>
|
||
<svg class="absolute w-6 h-6 transition-opacity duration-200 opacity-0"
|
||
:class="mobileOpen ? 'opacity-100' : 'opacity-0'" viewBox="0 0 24 24" stroke="currentColor"
|
||
stroke-width="2" fill="none">
|
||
<path d="M6 6L18 18M6 18L18 6" />
|
||
</svg>
|
||
</button>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
<div x-show="mobileOpen" x-cloak x-transition:enter="transition duration-300 ease-out"
|
||
x-transition:enter-start="opacity-0" x-transition:enter-end="opacity-100"
|
||
x-transition:leave="transition duration-200 ease-in" x-transition:leave-start="opacity-100"
|
||
x-transition:leave-end="opacity-0" @click.outside="mobileOpen = false"
|
||
class="lg:hidden fixed inset-0 bg-gradient-midnight z-40 min-h-screen overflow-y-auto">
|
||
|
||
|
||
|
||
<div class="px-6 pt-8 pb-4">
|
||
<a href="https://montecarlo.ai/" class="flex items-center" aria-label="Home">
|
||
<img src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Monte Carlo" class="h-8 w-auto" data-lazy-src="https://montecarlo.ai/wp-content/themes/monte-carlo-2025/public/build/assets/logo-white-ZjpfLO5i.png"><noscript><img src="https://montecarlo.ai/wp-content/themes/monte-carlo-2025/public/build/assets/logo-white-ZjpfLO5i.png" alt="Monte Carlo" class="h-8 w-auto"></noscript>
|
||
</a>
|
||
</div>
|
||
|
||
|
||
<nav x-data class="py-4 space-y-2 flex-1">
|
||
|
||
<div x-data="{ open: false }" class="border-b last:border-0 pb-2">
|
||
|
||
<button @click="open = !open"
|
||
class="w-full flex justify-between items-center px-4 py-3 text-lg font-medium text-white">
|
||
<span>Platform</span>
|
||
<svg class="w-4 h-4 transform transition-transform duration-150"
|
||
:class="open ? 'rotate-180' : ''" viewBox="0 0 10 6" fill="none"
|
||
stroke="currentColor" stroke-width="1.5">
|
||
<path d="M9 1 5 5 1 1" />
|
||
</svg>
|
||
</button>
|
||
|
||
|
||
<div x-show="open" x-collapse.duration.500ms class="overflow-hidden">
|
||
<div class="pl-8 pb-3 space-y-4">
|
||
<div>
|
||
<div class="text-xs font-semibold uppercase tracking-wider text-white opacity-60 mb-2">
|
||
Agentic Operations
|
||
</div>
|
||
<ul class="space-y-2">
|
||
<li>
|
||
<a href="https://montecarlo.ai/platform/agentic-onboarding"
|
||
class="block py-1 text-sm text-white hover:text-gray-200 hover:underline">
|
||
Agentic Onboarding
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="https://montecarlo.ai/platform/agents"
|
||
class="block py-1 text-sm text-white hover:text-gray-200 hover:underline">
|
||
Agent Fleet
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="https://montecarlo.ai/mcp-and-toolkit"
|
||
class="block py-1 text-sm text-white hover:text-gray-200 hover:underline">
|
||
MCP & Agent Toolkit
|
||
</a>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div>
|
||
<div class="text-xs font-semibold uppercase tracking-wider text-white opacity-60 mb-2">
|
||
Platform Capabilities
|
||
</div>
|
||
<ul class="space-y-2">
|
||
<li>
|
||
<a href="https://montecarlo.ai/mc-platform"
|
||
class="block py-1 text-sm text-white hover:text-gray-200 hover:underline">
|
||
Overview
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="https://montecarlo.ai/platform/agent-observability/"
|
||
class="block py-1 text-sm text-white hover:text-gray-200 hover:underline">
|
||
Agent Observability
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="https://montecarlo.ai/platform/data-quality/"
|
||
class="block py-1 text-sm text-white hover:text-gray-200 hover:underline">
|
||
Data Observability
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="/product/integrations"
|
||
class="block py-1 text-sm text-white hover:text-gray-200 hover:underline">
|
||
Integrations
|
||
</a>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div x-data="{ open: false }" class="border-b last:border-0 pb-2">
|
||
|
||
<button @click="open = !open"
|
||
class="w-full flex justify-between items-center px-4 py-3 text-lg font-medium text-white">
|
||
<span>Solutions</span>
|
||
<svg class="w-4 h-4 transform transition-transform duration-150"
|
||
:class="open ? 'rotate-180' : ''" viewBox="0 0 10 6" fill="none"
|
||
stroke="currentColor" stroke-width="1.5">
|
||
<path d="M9 1 5 5 1 1" />
|
||
</svg>
|
||
</button>
|
||
|
||
|
||
<div x-show="open" x-collapse.duration.500ms class="overflow-hidden">
|
||
<div class="pl-8 pb-3 space-y-4">
|
||
<div>
|
||
<div class="text-xs font-semibold uppercase tracking-wider text-white opacity-60 mb-2">
|
||
By role
|
||
</div>
|
||
<ul class="space-y-2">
|
||
<li>
|
||
<a href="https://montecarlo.ai/solutions/ai-engineers"
|
||
class="block py-1 text-sm text-white hover:text-gray-200 hover:underline">
|
||
AI Engineers
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="https://montecarlo.ai/solutions/cios-and-ctos"
|
||
class="block py-1 text-sm text-white hover:text-gray-200 hover:underline">
|
||
CIOs & CTOs
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="/solutions/chief-data-ai-officers"
|
||
class="block py-1 text-sm text-white hover:text-gray-200 hover:underline">
|
||
Data + AI Leaders
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="/solutions/data-governance"
|
||
class="block py-1 text-sm text-white hover:text-gray-200 hover:underline">
|
||
Data Governance
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="/solutions/data-engineers"
|
||
class="block py-1 text-sm text-white hover:text-gray-200 hover:underline">
|
||
Data Engineers
|
||
</a>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div>
|
||
<div class="text-xs font-semibold uppercase tracking-wider text-white opacity-60 mb-2">
|
||
By use case
|
||
</div>
|
||
<ul class="space-y-2">
|
||
<li>
|
||
<a href="/use-cases/business-analytics"
|
||
class="block py-1 text-sm text-white hover:text-gray-200 hover:underline">
|
||
Business Analytics
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="/use-cases/ai-ml-models"
|
||
class="block py-1 text-sm text-white hover:text-gray-200 hover:underline">
|
||
AI & ML Models
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="/use-cases/data-democratization"
|
||
class="block py-1 text-sm text-white hover:text-gray-200 hover:underline">
|
||
Data Democratization
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="/use-cases/data-migration"
|
||
class="block py-1 text-sm text-white hover:text-gray-200 hover:underline">
|
||
Data Migration
|
||
</a>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div>
|
||
<div class="text-xs font-semibold uppercase tracking-wider text-white opacity-60 mb-2">
|
||
By industry
|
||
</div>
|
||
<ul class="space-y-2">
|
||
<li>
|
||
<a href="https://montecarlo.ai/solutions/healthcare-and-life-sciences"
|
||
class="block py-1 text-sm text-white hover:text-gray-200 hover:underline">
|
||
Healthcare and Life Sciences
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="https://montecarlo.ai/solutions/financial-services"
|
||
class="block py-1 text-sm text-white hover:text-gray-200 hover:underline">
|
||
Financial Services
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href=""
|
||
class="block py-1 text-sm text-white hover:text-gray-200 hover:underline">
|
||
Retail and Consumer Goods
|
||
</a>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div x-data="{ open: false }" class="border-b last:border-0 pb-2">
|
||
|
||
<button @click="open = !open"
|
||
class="w-full flex justify-between items-center px-4 py-3 text-lg font-medium text-white">
|
||
<span>Resources</span>
|
||
<svg class="w-4 h-4 transform transition-transform duration-150"
|
||
:class="open ? 'rotate-180' : ''" viewBox="0 0 10 6" fill="none"
|
||
stroke="currentColor" stroke-width="1.5">
|
||
<path d="M9 1 5 5 1 1" />
|
||
</svg>
|
||
</button>
|
||
|
||
|
||
<div x-show="open" x-collapse.duration.500ms class="overflow-hidden">
|
||
<div class="pl-8 pb-3 space-y-4">
|
||
<div>
|
||
<div class="text-xs font-semibold uppercase tracking-wider text-white opacity-60 mb-2">
|
||
Educate
|
||
</div>
|
||
<ul class="space-y-2">
|
||
<li>
|
||
<a href="/blog"
|
||
class="block py-1 text-sm text-white hover:text-gray-200 hover:underline">
|
||
Blog
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="https://montecarlo.ai/case-studies"
|
||
class="block py-1 text-sm text-white hover:text-gray-200 hover:underline">
|
||
Case Studies
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="https://docs.getmontecarlo.com/"
|
||
class="block py-1 text-sm text-white hover:text-gray-200 hover:underline">
|
||
Docs
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="https://info.montecarlodata.com/resources/webinars"
|
||
class="block py-1 text-sm text-white hover:text-gray-200 hover:underline">
|
||
On Demand Webinars
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="https://info.montecarlodata.com/get-resources/customer-onboarding?_gl=1*dlxzl3*_gcl_aw*R0NMLjE3NjY0Mjk4NTIuQ2p3S0NBaUE5YVBLQmhCaEVpd0F5ejgySnhtemZMSnEzeUFEUmdHaHRVb2FhX2xka0ltdEpkX1FaMDlqSkQybmtxd19fc2dUaE1rYjZCb0NzNm9RQXZEX0J3RQ..*_gcl_au*MTc4ODE1NDI3MS4xNzcwNzQ1Mzkz*_ga*MTQ2ODM5OTA3OC4xNzU2MDY5OTkw*_ga_SZGJ8KW5Z8*czE3NzI2NTU3NjMkbzExOCRnMCR0MTc3MjY1NTc2MyRqNjAkbDAkaDExNjk1NTI1NTU.&#038;_ga=2.160413823.319268347.1772483482-1468399078.1756069990"
|
||
class="block py-1 text-sm text-white hover:text-gray-200 hover:underline">
|
||
Product Certification
|
||
</a>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div>
|
||
<div class="text-xs font-semibold uppercase tracking-wider text-white opacity-60 mb-2">
|
||
Reviews & Reports
|
||
</div>
|
||
<ul class="space-y-2">
|
||
<li>
|
||
<a href="https://info.montecarlodata.com/resources/ebooks-reports-and-guides"
|
||
class="block py-1 text-sm text-white hover:text-gray-200 hover:underline">
|
||
eBooks, Reports, & Guides
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="https://info.montecarlodata.com/get-resources/forrester-total-economic-impact-report"
|
||
class="block py-1 text-sm text-white hover:text-gray-200 hover:underline">
|
||
Forrester's Total Economic Impact Of Monte Carlo’s Data + AI Observability Platform
|
||
</a>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div x-data="{ open: false }" class="border-b last:border-0 pb-2">
|
||
|
||
<button @click="open = !open"
|
||
class="w-full flex justify-between items-center px-4 py-3 text-lg font-medium text-white">
|
||
<span>Why Monte Carlo</span>
|
||
<svg class="w-4 h-4 transform transition-transform duration-150"
|
||
:class="open ? 'rotate-180' : ''" viewBox="0 0 10 6" fill="none"
|
||
stroke="currentColor" stroke-width="1.5">
|
||
<path d="M9 1 5 5 1 1" />
|
||
</svg>
|
||
</button>
|
||
|
||
|
||
<div x-show="open" x-collapse.duration.500ms class="overflow-hidden">
|
||
<div class="pl-8 pb-3 space-y-4">
|
||
<div>
|
||
<ul class="space-y-2">
|
||
<li>
|
||
<a href="https://montecarlo.ai/why-monte-carlo"
|
||
class="block py-1 text-sm text-white hover:text-gray-200 hover:underline">
|
||
Why Monte Carlo
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="https://montecarlo.ai/partners/"
|
||
class="block py-1 text-sm text-white hover:text-gray-200 hover:underline">
|
||
Partners
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="https://montecarlo.ai/about-us"
|
||
class="block py-1 text-sm text-white hover:text-gray-200 hover:underline">
|
||
About Us
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="https://montecarlo.ai/careers-at-monte-carlo/"
|
||
class="block py-1 text-sm text-white hover:text-gray-200 hover:underline">
|
||
Careers
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="https://montecarlo.ai/customers"
|
||
class="block py-1 text-sm text-white hover:text-gray-200 hover:underline">
|
||
Customers
|
||
</a>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div x-data="{ open: false }" class="border-b last:border-0 pb-2">
|
||
|
||
<a href="/request-for-pricing/"
|
||
class="w-full flex justify-between items-center px-4 py-3 text-lg font-medium text-white">
|
||
<span>Pricing</span>
|
||
</a>
|
||
|
||
|
||
</div>
|
||
</nav>
|
||
|
||
|
||
<div class="flex flex-col gap-3 px-4">
|
||
|
||
<div class="hidden lg:flex justify-center px-4">
|
||
<div x-data="{
|
||
expanded: false,
|
||
toggleSearch() {
|
||
this.expanded = !this.expanded;
|
||
if (this.expanded) {
|
||
setTimeout(() => {
|
||
const input = this.$refs.searchContainer.querySelector('input');
|
||
if (input) input.focus();
|
||
}, 100);
|
||
// Add global click and keydown listeners when expanded
|
||
this.$nextTick(() => {
|
||
document.addEventListener('click', this.handleClickOutside.bind(this));
|
||
document.addEventListener('keydown', this.handleKeydown.bind(this));
|
||
});
|
||
} else {
|
||
// Remove global listeners when collapsed
|
||
document.removeEventListener('click', this.handleClickOutside.bind(this));
|
||
document.removeEventListener('keydown', this.handleKeydown.bind(this));
|
||
}
|
||
},
|
||
handleClickOutside(event) {
|
||
if (!this.$el.contains(event.target)) {
|
||
this.expanded = false;
|
||
this.removeListeners();
|
||
}
|
||
},
|
||
handleKeydown(event) {
|
||
if (event.key === 'Escape') {
|
||
this.expanded = false;
|
||
this.removeListeners();
|
||
}
|
||
},
|
||
removeListeners() {
|
||
document.removeEventListener('click', this.handleClickOutside.bind(this));
|
||
document.removeEventListener('keydown', this.handleKeydown.bind(this));
|
||
},
|
||
closeSearch() {
|
||
this.expanded = false;
|
||
this.removeListeners();
|
||
}
|
||
}"
|
||
class="relative w-full max-w-md">
|
||
|
||
|
||
<div class="relative h-10 overflow-hidden transition-all duration-300"
|
||
:class="expanded ? 'w-80' : 'w-10'">
|
||
|
||
<button
|
||
@click="toggleSearch()"
|
||
x-show="!expanded"
|
||
class="absolute top-0 right-0 flex items-center justify-center w-10 h-10 text-white hover:text-gray-200 hover:underline transition-colors duration-200 z-10 cursor-pointer"
|
||
aria-label="Open search"
|
||
>
|
||
<span class="brightness-0 invert">
|
||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="22" height="22" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve" class="w-5 h-5 text-gray-200">
|
||
<path d="M460.355,421.59L353.844,315.078c20.041-27.553,31.885-61.437,31.885-98.037
|
||
C385.729,124.934,310.793,50,218.686,50C126.58,50,51.645,124.934,51.645,217.041c0,92.106,74.936,167.041,167.041,167.041
|
||
c34.912,0,67.352-10.773,94.184-29.158L419.945,462L460.355,421.59z M100.631,217.041c0-65.096,52.959-118.056,118.055-118.056
|
||
c65.098,0,118.057,52.959,118.057,118.056c0,65.096-52.959,118.056-118.057,118.056C153.59,335.097,100.631,282.137,100.631,217.041
|
||
z"></path>
|
||
</svg>
|
||
|
||
</span>
|
||
</button>
|
||
|
||
|
||
<div
|
||
x-show="expanded"
|
||
x-transition:enter="transition ease-out duration-300"
|
||
x-transition:enter-start="transform translate-x-full"
|
||
x-transition:enter-end="transform translate-x-0"
|
||
x-transition:leave="transition ease-in duration-300"
|
||
x-transition:leave-start="transform translate-x-0"
|
||
x-transition:leave-end="transform translate-x-full"
|
||
class="absolute right-0 top-1/2 z-20"
|
||
style="transform: translateY(-50%); width: 300px;"
|
||
x-ref="searchContainer"
|
||
>
|
||
<div class="w-full" style="min-width: 250px;">
|
||
<div class="asl_w_container asl_w_container_2" data-id="2" data-instance="1">
|
||
<div id='ajaxsearchlite2'
|
||
data-id="2"
|
||
data-instance="1"
|
||
class="asl_w asl_m asl_m_2 asl_m_2_1">
|
||
<div class="probox">
|
||
|
||
|
||
<div class='prosettings' style='display:none;' data-opened=0>
|
||
<div class='innericon'>
|
||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="22" height="22" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
|
||
<polygon transform = "rotate(90 256 256)" points="142.332,104.886 197.48,50 402.5,256 197.48,462 142.332,407.113 292.727,256 "/>
|
||
</svg>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
<div class='proinput'>
|
||
<form role="search" action='#' autocomplete="off"
|
||
aria-label="Search form">
|
||
<input aria-label="Search input"
|
||
type='search' class='orig'
|
||
tabindex="0"
|
||
name='phrase'
|
||
placeholder='Search here..'
|
||
value=''
|
||
autocomplete="off"/>
|
||
<input aria-label="Search autocomplete"
|
||
type='text'
|
||
class='autocomplete'
|
||
tabindex="-1"
|
||
name='phrase'
|
||
value=''
|
||
autocomplete="off" disabled/>
|
||
<input type='submit' value="Start search" style='width:0; height: 0; visibility: hidden;'>
|
||
</form>
|
||
</div>
|
||
|
||
|
||
|
||
<button class='promagnifier' tabindex="0" aria-label="Search magnifier">
|
||
<span class='innericon' style="display:block;">
|
||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="22" height="22" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
|
||
<path d="M460.355,421.59L353.844,315.078c20.041-27.553,31.885-61.437,31.885-98.037
|
||
C385.729,124.934,310.793,50,218.686,50C126.58,50,51.645,124.934,51.645,217.041c0,92.106,74.936,167.041,167.041,167.041
|
||
c34.912,0,67.352-10.773,94.184-29.158L419.945,462L460.355,421.59z M100.631,217.041c0-65.096,52.959-118.056,118.055-118.056
|
||
c65.098,0,118.057,52.959,118.057,118.056c0,65.096-52.959,118.056-118.057,118.056C153.59,335.097,100.631,282.137,100.631,217.041
|
||
z"/>
|
||
</svg>
|
||
</span>
|
||
</button>
|
||
|
||
|
||
|
||
<div class='proloading'>
|
||
|
||
<div class="asl_loader"><div class="asl_loader-inner asl_simple-circle"></div></div>
|
||
|
||
</div>
|
||
|
||
<div class='proclose'>
|
||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
|
||
y="0px"
|
||
width="12" height="12" viewBox="0 0 512 512" enable-background="new 0 0 512 512"
|
||
xml:space="preserve">
|
||
<polygon points="438.393,374.595 319.757,255.977 438.378,137.348 374.595,73.607 255.995,192.225 137.375,73.622 73.607,137.352 192.246,255.983 73.622,374.625 137.352,438.393 256.002,319.734 374.652,438.378 "/>
|
||
</svg>
|
||
</div>
|
||
|
||
|
||
</div> </div>
|
||
<div class='asl_data_container' style="display:none !important;">
|
||
<div class="asl_init_data wpdreams_asl_data_ct"
|
||
style="display:none !important;"
|
||
id="asl_init_id_2"
|
||
data-asl-id="2"
|
||
data-asl-instance="1"
|
||
data-settings="{"homeurl":"https:\/\/montecarlo.ai\/","resultstype":"vertical","resultsposition":"hover","itemscount":4,"charcount":0,"highlight":false,"highlightWholewords":true,"singleHighlight":false,"scrollToResults":{"enabled":false,"offset":0},"resultareaclickable":1,"autocomplete":{"enabled":false,"lang":"en","trigger_charcount":0},"mobile":{"menu_selector":"#menu-toggle, .menu-toggle"},"trigger":{"click":"results_page","click_location":"same","update_href":false,"return":"results_page","return_location":"same","facet":true,"type":true,"redirect_url":"?s={phrase}","delay":300},"animations":{"pc":{"settings":{"anim":"fadedrop","dur":300},"results":{"anim":"fadedrop","dur":300},"items":"voidanim"},"mob":{"settings":{"anim":"fadedrop","dur":300},"results":{"anim":"fadedrop","dur":300},"items":"voidanim"}},"autop":{"state":true,"phrase":"","count":"1"},"resPage":{"useAjax":false,"selector":"#main","trigger_type":true,"trigger_facet":true,"trigger_magnifier":false,"trigger_return":false},"resultsSnapTo":"left","results":{"width":"auto","width_tablet":"auto","width_phone":"auto"},"settingsimagepos":"right","closeOnDocClick":true,"overridewpdefault":true,"override_method":"get"}"></div>
|
||
</div>
|
||
|
||
<div id='ajaxsearchliteres2'
|
||
class='vertical wpdreams_asl_results asl_w asl_r asl_r_2 asl_r_2_1'>
|
||
|
||
|
||
<div class="results">
|
||
|
||
|
||
<div class="resdrg">
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
</div>
|
||
|
||
<div id='__original__ajaxsearchlitesettings2'
|
||
data-id="2"
|
||
class="searchsettings wpdreams_asl_settings asl_w asl_s asl_s_2">
|
||
<form name='options'
|
||
aria-label="Search settings form"
|
||
autocomplete = 'off'>
|
||
|
||
|
||
|
||
<input type="hidden" name="filters_changed" style="display:none;" value="0">
|
||
<input type="hidden" name="filters_initial" style="display:none;" value="1">
|
||
|
||
<div class="asl_option_inner hiddend">
|
||
<input type='hidden' name='qtranslate_lang' id='qtranslate_lang'
|
||
value='0'/>
|
||
</div>
|
||
|
||
|
||
|
||
<fieldset class="asl_sett_scroll">
|
||
<legend style="display: none;">Generic selectors</legend>
|
||
<div class="asl_option" tabindex="0">
|
||
<div class="asl_option_inner">
|
||
<input type="checkbox" value="exact"
|
||
aria-label="Exact matches only"
|
||
name="asl_gen[]" />
|
||
<div class="asl_option_checkbox"></div>
|
||
</div>
|
||
<div class="asl_option_label">
|
||
Exact matches only </div>
|
||
</div>
|
||
<div class="asl_option" tabindex="0">
|
||
<div class="asl_option_inner">
|
||
<input type="checkbox" value="title"
|
||
aria-label="Search in title"
|
||
name="asl_gen[]" checked="checked"/>
|
||
<div class="asl_option_checkbox"></div>
|
||
</div>
|
||
<div class="asl_option_label">
|
||
Search in title </div>
|
||
</div>
|
||
<div class="asl_option" tabindex="0">
|
||
<div class="asl_option_inner">
|
||
<input type="checkbox" value="content"
|
||
aria-label="Search in content"
|
||
name="asl_gen[]" checked="checked"/>
|
||
<div class="asl_option_checkbox"></div>
|
||
</div>
|
||
<div class="asl_option_label">
|
||
Search in content </div>
|
||
</div>
|
||
<div class="asl_option_inner hiddend">
|
||
<input type="checkbox" value="excerpt"
|
||
aria-label="Search in excerpt"
|
||
name="asl_gen[]" checked="checked"/>
|
||
<div class="asl_option_checkbox"></div>
|
||
</div>
|
||
</fieldset>
|
||
<fieldset class="asl_sett_scroll">
|
||
<legend style="display: none;">Post Type Selectors</legend>
|
||
<div class="asl_option_inner hiddend">
|
||
<input type="checkbox" value="post"
|
||
aria-label="Hidden option, ignore please"
|
||
name="customset[]" checked="checked"/>
|
||
</div>
|
||
<div class="asl_option_inner hiddend">
|
||
<input type="checkbox" value="page"
|
||
aria-label="Hidden option, ignore please"
|
||
name="customset[]" checked="checked"/>
|
||
</div>
|
||
</fieldset>
|
||
</form>
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
|
||
<div>
|
||
<a
|
||
href="https://getmontecarlo.com/signin"
|
||
|
||
|
||
|
||
class="btn-primary-dark-default !w-full justify-center"
|
||
role="button" >
|
||
<span aria-hidden="true"><svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="w-6 h-6">
|
||
<mask id="mask0_2688_4511" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24">
|
||
<rect width="24" height="24" fill="currentColor"/>
|
||
</mask>
|
||
<g mask="url(#mask0_2688_4511)">
|
||
<path d="M5.85 17.1C6.7 16.45 7.65 15.9375 8.7 15.5625C9.75 15.1875 10.85 15 12 15C13.15 15 14.25 15.1875 15.3 15.5625C16.35 15.9375 17.3 16.45 18.15 17.1C18.7333 16.4167 19.1875 15.6417 19.5125 14.775C19.8375 13.9083 20 12.9833 20 12C20 9.78333 19.2208 7.89583 17.6625 6.3375C16.1042 4.77917 14.2167 4 12 4C9.78333 4 7.89583 4.77917 6.3375 6.3375C4.77917 7.89583 4 9.78333 4 12C4 12.9833 4.1625 13.9083 4.4875 14.775C4.8125 15.6417 5.26667 16.4167 5.85 17.1ZM12 13C11.0167 13 10.1875 12.6625 9.5125 11.9875C8.8375 11.3125 8.5 10.4833 8.5 9.5C8.5 8.51667 8.8375 7.6875 9.5125 7.0125C10.1875 6.3375 11.0167 6 12 6C12.9833 6 13.8125 6.3375 14.4875 7.0125C15.1625 7.6875 15.5 8.51667 15.5 9.5C15.5 10.4833 15.1625 11.3125 14.4875 11.9875C13.8125 12.6625 12.9833 13 12 13ZM12 22C10.6167 22 9.31667 21.7375 8.1 21.2125C6.88333 20.6875 5.825 19.975 4.925 19.075C4.025 18.175 3.3125 17.1167 2.7875 15.9C2.2625 14.6833 2 13.3833 2 12C2 10.6167 2.2625 9.31667 2.7875 8.1C3.3125 6.88333 4.025 5.825 4.925 4.925C5.825 4.025 6.88333 3.3125 8.1 2.7875C9.31667 2.2625 10.6167 2 12 2C13.3833 2 14.6833 2.2625 15.9 2.7875C17.1167 3.3125 18.175 4.025 19.075 4.925C19.975 5.825 20.6875 6.88333 21.2125 8.1C21.7375 9.31667 22 10.6167 22 12C22 13.3833 21.7375 14.6833 21.2125 15.9C20.6875 17.1167 19.975 18.175 19.075 19.075C18.175 19.975 17.1167 20.6875 15.9 21.2125C14.6833 21.7375 13.3833 22 12 22ZM12 20C12.8833 20 13.7167 19.8708 14.5 19.6125C15.2833 19.3542 16 18.9833 16.65 18.5C16 18.0167 15.2833 17.6458 14.5 17.3875C13.7167 17.1292 12.8833 17 12 17C11.1167 17 10.2833 17.1292 9.5 17.3875C8.71667 17.6458 8 18.0167 7.35 18.5C8 18.9833 8.71667 19.3542 9.5 19.6125C10.2833 19.8708 11.1167 20 12 20ZM12 11C12.4333 11 12.7917 10.8583 13.075 10.575C13.3583 10.2917 13.5 9.93333 13.5 9.5C13.5 9.06667 13.3583 8.70833 13.075 8.425C12.7917 8.14167 12.4333 8 12 8C11.5667 8 11.2083 8.14167 10.925 8.425C10.6417 8.70833 10.5 9.06667 10.5 9.5C10.5 9.93333 10.6417 10.2917 10.925 10.575C11.2083 10.8583 11.5667 11 12 11Z" fill="currentColor"/>
|
||
</g>
|
||
</svg>
|
||
</span>
|
||
<span class="ml-2">Login</span>
|
||
</a>
|
||
|
||
</div>
|
||
|
||
|
||
<div>
|
||
<a
|
||
href="https://montecarlo.ai/request-a-demo"
|
||
|
||
|
||
|
||
class="btn-primary-2026-default !w-full justify-center"
|
||
role="button" >
|
||
Get a demo
|
||
|
||
</a>
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</header>
|
||
|
||
|
||
<div
|
||
class="pinned-nav fixed top-[-166px] left-0 sm:left-1/2 right-0 sm:-ml-[275px] md:-ml-[325px] z-50 transition-[top] duration-300 ease-in-out hidden">
|
||
<!-- Navigation container -->
|
||
<div
|
||
class="grid grid-cols-[3fr_9fr] items-center w-full sm:w-[450px] md:w-[550px] px-2 py-3 sm:p-4 sm:pb-4 bg-[#002135]/70 backdrop-blur-xl text-center drop-shadow-lg sm:rounded-b-xl">
|
||
|
||
|
||
<div class="text-center flex justify-center">
|
||
<a href="/"><img src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Monte Carlo"
|
||
class="w-24 h-auto md:w-auto md:h-8" data-lazy-src="https://montecarlo.ai/wp-content/themes/monte-carlo-2025/public/build/assets/logo-white-ZjpfLO5i.png"><noscript><img src="https://montecarlo.ai/wp-content/themes/monte-carlo-2025/public/build/assets/logo-white-ZjpfLO5i.png" alt="Monte Carlo"
|
||
class="w-24 h-auto md:w-auto md:h-8"></noscript></a>
|
||
</div>
|
||
<div class="flex gap-2 flex-row justify-center">
|
||
|
||
<a
|
||
href="https://info.montecarlodata.com/product-tour/monte-carlo-overview"
|
||
|
||
|
||
|
||
class="btn-primary-2026-default text-xs xl:text-base"
|
||
role="button" >
|
||
Product tour
|
||
|
||
</a>
|
||
|
||
|
||
|
||
<a
|
||
href="https://montecarlo.ai/request-a-demo"
|
||
|
||
|
||
|
||
class="btn-secondary-2026-default text-xs xl:text-base"
|
||
role="button" >
|
||
Schedule a demo
|
||
|
||
</a>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
<main data-rocket-location-hash="4d32a3d2f5d1e7ab9c9b17912d337def" id="main" class="main ">
|
||
<article data-rocket-location-hash="18f3e45ff3c2b136b40939ecaa3200df" class="blog-single mx-auto max-w-7xl px-4 md:px-8 lg:px-12">
|
||
|
||
<header class="pt-28 md:pt-40">
|
||
<div class="flex flex-wrap items-center gap-x-4 gap-y-1 mb-6 text-sm font-bold uppercase tracking-wider">
|
||
<a class="text-blue-600 no-underline" href="https://montecarlo.ai/category/data-reliability/">Data Reliability</a>
|
||
<span class="text-neutral-500 normal-case font-medium">Updated Feb 23 2023</span>
|
||
</div>
|
||
|
||
<div class="grid gap-8 md:grid-cols-2 md:gap-16 items-center">
|
||
<div>
|
||
<h1 class="text-3xl md:text-5xl font-bold leading-tight">The Chaos Data Engineering Manifesto: Spare The Rod, Spoil Prod</h1>
|
||
</div>
|
||
<div>
|
||
<img src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="The Chaos Data Engineering Manifesto: Spare The Rod, Spoil Prod"
|
||
class="w-full h-auto rounded-2xl" data-lazy-src="https://montecarlo.ai/wp-content/uploads/2023/02/chaos-data-engineering-1024x680.webp" /><noscript><img src="https://montecarlo.ai/wp-content/uploads/2023/02/chaos-data-engineering-1024x680.webp" alt="The Chaos Data Engineering Manifesto: Spare The Rod, Spoil Prod"
|
||
class="w-full h-auto rounded-2xl" /></noscript>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="mt-10 pt-6 pb-6 text-lg border-b border-neutral-200">
|
||
<span class="text-tertiary">AUTHOR</span> | Shane Murray
|
||
</div>
|
||
</header>
|
||
|
||
|
||
<div class="grid lg:grid-cols-[minmax(0,1fr)_minmax(0,2fr)_minmax(0,1fr)] gap-8 lg:gap-12 py-10">
|
||
|
||
<div class="hidden lg:block min-w-0 order-2 lg:order-1" aria-hidden="true"></div>
|
||
|
||
<div class="min-w-0 order-1 lg:order-2">
|
||
<div class="blog-single-body [&_nav]:hidden">
|
||
|
||
<p>It’s midnight in the dim and cluttered office of <em>The</em> <em>New York Times</em> currently serving as the “situation room.” </p>
|
||
|
||
|
||
|
||
<p>A powerful surge of traffic is inevitable. During every major election, the wave would crest and crash against our overwhelmed systems before receding, allowing us to assess the damage. </p>
|
||
|
||
|
||
|
||
<p>We had been in the cloud for years, which helped some. Our main systems would scale– our articles were always served– but integration points across backend services would eventually buckle and burst under the sustained pressure of insane traffic levels.</p>
|
||
|
||
|
||
|
||
<p>However, this night in 2020 was different from similar election nights in 2014, 2016, and 2018. That’s because this traffic surge was simulated and an election wasn’t taking place.</p>
|
||
|
||
|
||
<h2 class="wp-block-heading" id="pushing-to-the-point-of-failurenbsp">Pushing to the point of failure </h2>
|
||
|
||
|
||
<p>Simulation or not, this <em>was</em> prod so the stakes were high. There was suppressed horror as J-Kidd–our system that brought ad targeting parameters to the front end–went down hard. It was as if all the ligaments had been ripped from the knees of the pass-first point guard for which it had been named. Ouch.</p>
|
||
|
||
|
||
|
||
<figure class="wp-block-image aligncenter size-large is-resized"><img fetchpriority="high" decoding="async" width="1024" height="687" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201024%20687'%3E%3C/svg%3E" alt="" class="wp-image-8261" style="width:512px;height:344px" data-lazy-srcset="https://montecarlo.ai/wp-content/uploads/2023/02/Jason-Kidd--1024x687.webp 1024w, https://montecarlo.ai/wp-content/uploads/2023/02/Jason-Kidd--300x201.webp 300w, https://montecarlo.ai/wp-content/uploads/2023/02/Jason-Kidd--768x515.webp 768w, https://montecarlo.ai/wp-content/uploads/2023/02/Jason-Kidd--89x60.webp 89w, https://montecarlo.ai/wp-content/uploads/2023/02/Jason-Kidd--jpg.webp 1106w" data-lazy-sizes="(max-width: 1024px) 100vw, 1024px" data-lazy-src="https://montecarlo.ai/wp-content/uploads/2023/02/Jason-Kidd--1024x687.webp" /><noscript><img fetchpriority="high" decoding="async" width="1024" height="687" src="https://montecarlo.ai/wp-content/uploads/2023/02/Jason-Kidd--1024x687.webp" alt="" class="wp-image-8261" style="width:512px;height:344px" srcset="https://montecarlo.ai/wp-content/uploads/2023/02/Jason-Kidd--1024x687.webp 1024w, https://montecarlo.ai/wp-content/uploads/2023/02/Jason-Kidd--300x201.webp 300w, https://montecarlo.ai/wp-content/uploads/2023/02/Jason-Kidd--768x515.webp 768w, https://montecarlo.ai/wp-content/uploads/2023/02/Jason-Kidd--89x60.webp 89w, https://montecarlo.ai/wp-content/uploads/2023/02/Jason-Kidd--jpg.webp 1106w" sizes="(max-width: 1024px) 100vw, 1024px" /></noscript><figcaption class="wp-element-caption"><em>I’m sorry Jason, it was for the greater good. Via Wikimedia Commons. Credit: KeithAllisonPhoto.com</em></figcaption></figure>
|
||
|
||
|
||
|
||
<p>J-Kidd wasn’t the only system that found its way to the disabled list. That was the point of the whole exercise, to push our systems until they failed. We succeeded. Or failed depending on your point of view.</p>
|
||
|
||
|
||
|
||
<p>The next day the team made adjustments. We decoupled systems, implemented failsafes, and returned to the court for game 2. As a result, the 2020 election was the first I can remember where the on-call engineers weren’t on the edge of their seats, white knuckling their keyboards…At least not for system reliability reasons.</p>
|
||
|
||
|
||
<h2 class="wp-block-heading" id="premortems-and-chaos-engineering">Pre-Mortems and Chaos Engineering</h2>
|
||
|
||
|
||
<p>We referred to that exercise as a “pre-mortem.” Its conceptual roots can be traced back to the idea of <a href="https://principlesofchaos.org/" target="_blank" rel="noopener">chaos engineering</a> introduced by site reliability engineers.</p>
|
||
|
||
|
||
|
||
<p>For those unfamiliar, chaos engineering is a disciplined methodology for intentionally introducing points of failure within systems to better understand their thresholds and improve resilience. </p>
|
||
|
||
|
||
|
||
<p>It was popularized in large part by the success of <a href="https://netflixtechblog.com/the-netflix-simian-army-16e57fbab116" target="_blank" rel="noopener">Netflix’s Simian Army</a>, a suite of programs that would automatically introduce chaos by removing servers, regions, and introduce other points of failure into production. All in the name of reliability and resiliency. </p>
|
||
|
||
|
||
|
||
<p>While this idea isn’t <a href="https://lakefs.io/blog/chaos-data-engineering/" target="_blank" rel="noopener">completely</a> <a href="https://www.linkedin.com/posts/eczachly_dataengineering-activity-7033975323838877696-s4Qj?utm_source=share&utm_medium=member_desktop" target="_blank" rel="noopener">foreign</a> <a href="https://medium.com/geekculture/why-you-should-occasionally-kill-your-data-stack-613143c986ea" target="_blank" rel="noopener">to</a> data engineering, it can certainly be described as an extremely uncommon practice. </p>
|
||
|
||
|
||
|
||
<p>No data engineer in their right mind has looked at their to-do list, the unfilled roles on their team, the complexity of their pipelines, and then said: “This needs to be harder. Let’s introduce some chaos.” That may be part of the problem. </p>
|
||
|
||
|
||
|
||
<figure class="wp-block-image aligncenter size-large"><img decoding="async" width="794" height="1024" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20794%201024'%3E%3C/svg%3E" alt="" class="wp-image-8263" data-lazy-srcset="https://montecarlo.ai/wp-content/uploads/2023/02/Chaos-data-engineering-meme-794x1024.webp 794w, https://montecarlo.ai/wp-content/uploads/2023/02/Chaos-data-engineering-meme-233x300.webp 233w, https://montecarlo.ai/wp-content/uploads/2023/02/Chaos-data-engineering-meme-768x991.webp 768w, https://montecarlo.ai/wp-content/uploads/2023/02/Chaos-data-engineering-meme-47x60.webp 47w, https://montecarlo.ai/wp-content/uploads/2023/02/Chaos-data-engineering-meme-jpg.webp 1144w" data-lazy-sizes="(max-width: 794px) 100vw, 794px" data-lazy-src="https://montecarlo.ai/wp-content/uploads/2023/02/Chaos-data-engineering-meme-794x1024.webp" /><noscript><img decoding="async" width="794" height="1024" src="https://montecarlo.ai/wp-content/uploads/2023/02/Chaos-data-engineering-meme-794x1024.webp" alt="" class="wp-image-8263" srcset="https://montecarlo.ai/wp-content/uploads/2023/02/Chaos-data-engineering-meme-794x1024.webp 794w, https://montecarlo.ai/wp-content/uploads/2023/02/Chaos-data-engineering-meme-233x300.webp 233w, https://montecarlo.ai/wp-content/uploads/2023/02/Chaos-data-engineering-meme-768x991.webp 768w, https://montecarlo.ai/wp-content/uploads/2023/02/Chaos-data-engineering-meme-47x60.webp 47w, https://montecarlo.ai/wp-content/uploads/2023/02/Chaos-data-engineering-meme-jpg.webp 1144w" sizes="(max-width: 794px) 100vw, 794px" /></noscript></figure>
|
||
|
||
|
||
|
||
<p>Data teams need to think beyond providing snapshots of data quality to the business and start thinking about how to build and maintain reliable data systems at scale. </p>
|
||
|
||
|
||
|
||
<p>We cannot afford to overlook data’s increasingly large role in critical operations. Just this year, we witnessed how the deletion of one file and an out-of-sync legacy database <a href="https://www.nbcnews.com/news/us-news/us-flights-grounded-faa-outage-rcna65243" target="_blank" rel="noopener">could ground more than 4,000 flights</a>. </p>
|
||
|
||
|
||
|
||
<p>Of course, you can’t just copy and paste software engineering concepts straight into data engineering playbooks. Data is different. DataOps tweaks DevOps methodology as <a href="https://montecarlo.ai/blog-what-is-data-observability">data observability</a> does to observability. </p>
|
||
|
||
|
||
|
||
<p>Consider this manifesto then a proposal for how to take the proven concepts of chaos engineering and apply them to the eccentric world of data.</p>
|
||
|
||
|
||
<h2 class="wp-block-heading" id="the-5-laws-of-data-chaos-engineering">The 5 Laws Of Data Chaos Engineering</h2>
|
||
|
||
|
||
<p>The principles and lessons of chaos engineering are a good place to start defining the contours of a data chaos engineering discipline. Our first law combines two of the most important.</p>
|
||
|
||
|
||
<h3 class="wp-block-heading is-style-medium" id="first-law-have-a-bias-for-production-but-minimize-the-blast-radius">First Law: Have a bias for production, but minimize the blast radius</h3>
|
||
|
||
|
||
<p>There is a maxim among site reliability engineers that will ring true for every data engineer who has had the pleasure of the same SQL query return two different results across staging and production environments. That is, “Nothing acts like prod except for prod.”</p>
|
||
|
||
|
||
|
||
<p>To that I would add, “production data too.” Data is just too creative and fluid for humans to anticipate. <a href="https://medium.com/cord-tech/the-advantages-and-disadvantages-of-synthetic-training-data-b3acbb68e116" target="_blank" rel="noopener">Synthetic data</a> has come a long way, and don’t get me wrong it can be a piece of the puzzle, but it’s unlikely to simulate key edge cases.</p>
|
||
|
||
|
||
|
||
<p>Like me, the mere thought of introducing points of failure into production systems probably makes your stomach churn. It’s terrifying. Some data engineers justifiably wonder, “Is this even necessary within a modern data stack where so many tools abstract the underlying infrastructure?”</p>
|
||
|
||
|
||
|
||
<p>I’m afraid so. Remember, as the opening anecdote and J-Kidd’s snapped ligaments illustrated, the elasticity of the cloud is not a cure-all.</p>
|
||
|
||
|
||
|
||
<p>In fact, it’s that abstraction and opacity–along with the multiple integration points–that make it so important to stress test a modern data stack. An on-premise database may be more limiting, but data teams tend to understand its thresholds as they hit them more regularly during day to day operations.</p>
|
||
|
||
|
||
|
||
<p>Let’s move past the philosophical objections for the moment, and dive into the practical. Data is different. Introducing fake data into a system won’t be helpful because the input changes the output. It’s going to get really messy too.</p>
|
||
|
||
|
||
|
||
<p>That’s where the second part of the law comes into play: minimize the blast radius. There is a spectrum of chaos and tools that can be used:</p>
|
||
|
||
|
||
|
||
<ul class="wp-block-list">
|
||
<li>In words only, “let’s say this failed, what would we do?”</li>
|
||
|
||
|
||
|
||
<li>Synthetic data in production</li>
|
||
|
||
|
||
|
||
<li>Techniques like data diff that allow you to test snippets of SQL code on production data </li>
|
||
|
||
|
||
|
||
<li>Solutions like LakeFS allow you to do this on a bigger scale by creating “chaos branches” or complete snapshots of your production environment where you can use production data but with complete isolation.</li>
|
||
|
||
|
||
|
||
<li>Do it in prod, and practice your <a href="https://montecarlo.ai/blog-backfilling-data-guide">backfilling skills</a>. After all, nothing acts like prod, but prod.</li>
|
||
</ul>
|
||
|
||
|
||
|
||
<p>Starting with lesser chaotic scenarios is probably a good idea and will help you understand how to minimize the blast radius in production. </p>
|
||
|
||
|
||
|
||
<p>Deep diving into real production incidents is also a great place to start. Does everyone really understand what exactly happened? Production incidents are chaos experiments that you’ve already paid for, so make sure that you are getting the most out of them.</p>
|
||
|
||
|
||
|
||
<p>Mitigating the blast radius may also include strategies like backing up applicable systems or having data observability or data quality monitoring solution in place to assist with the detection and resolution of data incidents.</p>
|
||
|
||
|
||
<h3 class="wp-block-heading" id="second-law-understand-its-never-a-perfect-time-within-reason">Second Law: Understand it’s never a perfect time (within reason)</h3>
|
||
|
||
|
||
<p>Another chaos engineering principle holds to observe and understand “steady state behavior.” </p>
|
||
|
||
|
||
|
||
<p>There is wisdom in this principle, but it is also important to understand the field of data engineering isn’t quite ready to measure by the standard of “5 9s” or 99.999% uptime. </p>
|
||
|
||
|
||
|
||
<p>Data systems are constantly in flux and there is a wider range of “steady state behavior.” There will be the temptation to delay the introduction of chaos until you’ve reached the mythical point of “readiness.” Well you <a href="https://montecarlo.ai/blog-you-cant-out-architect-bad-data">can’t out-architect bad data</a> and no one is ever ready for chaos.</p>
|
||
|
||
|
||
|
||
<p>The Silicon Valley cliche of fail fast is applicable here. Or <a href="https://twitter.com/reidhoffman/status/847142924240379904?lang=en" target="_blank" rel="noopener">to paraphrase Reid Hoffman</a>, if you aren’t embarrassed by the results of your first pre-mortem/fire drill/chaos introducing event, you introduced it too late. </p>
|
||
|
||
|
||
|
||
<p>Introducing fake data incidents while you are dealing with real ones may seem silly, but ultimately this can help you get ahead by better understanding where you have been putting bandaids on larger issues that may need to be refactored.</p>
|
||
|
||
|
||
<h3 class="wp-block-heading" id="third-law-formulate-hypotheses-and-identify-variables-at-the-system-code-and-data-levels">Third Law: Formulate hypotheses and identify variables at the system, code, and data levels</h3>
|
||
|
||
|
||
<p>Chaos engineering encourages forming hypotheses of how systems will react to understand what thresholds to monitor. It also encourages leveraging or mimicing past real-world incidents or likely incidents. </p>
|
||
|
||
|
||
|
||
<p>We’ll dive deeper into the details of this in the next section, but the important modification here is to ensure these span the system, code, and data levels. Variables at each level can create data incidents, some quick examples:</p>
|
||
|
||
|
||
|
||
<ul class="wp-block-list">
|
||
<li><strong>System</strong>: You didn’t have the right permissions set in your data warehouse.</li>
|
||
|
||
|
||
|
||
<li><strong>Code</strong>: A bad left JOIN.</li>
|
||
|
||
|
||
|
||
<li><strong>Data</strong>: A third-party sent you garbage columns with a bunch of NULLS.</li>
|
||
</ul>
|
||
|
||
|
||
|
||
<p>Simulating increased traffic levels and shutting down servers impact data systems, and those are important tests, but don’t neglect some of the more unique and fun ways data systems can break bad.</p>
|
||
|
||
|
||
<h3 class="wp-block-heading" id="fourth-law-everyone-in-one-room-or-at-least-zoom-call">Fourth Law: Everyone in one room (or at least Zoom call)</h3>
|
||
|
||
|
||
<p>This law is based on the experience of my colleague, site reliability engineer, and chaos practitioner <a href="https://www.linkedin.com/in/timtischler" target="_blank" rel="noopener">Tim Tischler</a>.</p>
|
||
|
||
|
||
|
||
<p><em>“Chaos engineering is just as much about people as it is systems. They evolve together and they can’t be separated. Half of the value from these exercises come from putting all the engineers in a room and asking, ‘what happens if we do X or if we do Y?’ You are guaranteed to get different answers. Once you simulate the event and see the result, now everyone’s mental maps are aligned. That is incredibly valuable,” he said.</em></p>
|
||
|
||
|
||
|
||
<p>Also, the interdependence of data systems and responsibilities creates blurry lines of ownership even on the most well-run teams. Breaks often happen, and are overlooked, in those overlaps and gaps in responsibility where the data engineer, analytical engineer, and data analyst are pointing at the other. </p>
|
||
|
||
|
||
|
||
<p>In many organizations, the product engineers creating the data and the data engineers managing it are separated and siloed by team structures. They also often have different tools and models of the same system and data. Feel free to pull these product engineers in as well, especially when the data has been generated from internally built systems.</p>
|
||
|
||
|
||
|
||
<p align="center"> <iframe src="https://giphy.com/embed/YyQvRbtIpO5XZqidg6" width="480" height="269" frameBorder="0" class="giphy-embed" allowFullScreen></iframe><p align="center"><a href="https://giphy.com/gifs/Jomboy-yankees-aaron-judge-hicks-YyQvRbtIpO5XZqidg6" target="_blank" rel="noopener">via GIPHY</a></p>
|
||
|
||
|
||
|
||
<p>Good incident management and triage can often involve multiple teams and having everyone in one room can make the exercise more productive.</p>
|
||
|
||
|
||
|
||
<p>I’ll also add from personal experience that these exercises can be fun (in the same weird way putting all your chips on red is fun). I’d encourage data teams to consider a chaos data engineering fire drill or pre-mortem event at the next offsite. It makes for a much more practical team bonding exercise than getting out of an escape room.</p>
|
||
|
||
|
||
<h3 class="wp-block-heading" id="fifth-law-hold-off-on-the-automation-for-now"> Fifth Law: Hold off on the automation for now</h3>
|
||
|
||
|
||
<p>Truly mature chaos engineering programs like Netflix’s Simian Army are automated and even unscheduled. While this may create a more accurate simulation, the reality is that the automated tools don’t currently exist for data engineering. If they did, I’m unsure if I would be brave enough to use them. </p>
|
||
|
||
|
||
|
||
<p>To this point, one of the original Netflix chaos engineers <a href="https://medium.com/@njones_18523/chaos-engineering-traps-e3486c526059" target="_blank" rel="noopener">has described</a> how they didn’t always use automation as the chaos could create more problems than they could fix (especially in collaboration with those running the system) in a reasonable period of time. </p>
|
||
|
||
|
||
|
||
<p>Given data engineering’s current reliability evolution and the greater potential for an unintentionally large blast radius, I would recommend data teams lean more towards scheduled, carefully managed events.</p>
|
||
|
||
|
||
<h2 class="wp-block-heading" id="data-chaos-engineering-variables-aka-what-to-break">Data Chaos Engineering Variables AKA What To Break</h2>
|
||
|
||
|
||
<p>It would be a bit of a cop out to suggest data engineers overhaul their processes and introduce greater levels of risk without providing more concrete examples of tests or the value that can be derived from them. Here are some suggestions.</p>
|
||
|
||
|
||
<h3 class="wp-block-heading" id="systems-level">Systems Level</h3>
|
||
|
||
|
||
<p>At this level you should be testing the integration points across your IT and data systems. This includes your data pipelines from ingestion and storage to orchestration and visualization. You could create some chaos by:</p>
|
||
|
||
|
||
|
||
<ul class="wp-block-list">
|
||
<li><strong>Creating problems in Postgres</strong>– You may discover you need to decouple operational systems from your analytical systems. </li>
|
||
</ul>
|
||
|
||
|
||
|
||
<ul class="wp-block-list">
|
||
<li><strong>Killing Airflow jobs or Spark clusters- </strong>You may discover you need alerts to notify the team when these failures occur and<a href="https://www.startdataengineering.com/post/design-patterns/#32-behavioral" target="_blank" rel="noopener"> self-healing pipeline design</a>.</li>
|
||
</ul>
|
||
|
||
|
||
|
||
<ul class="wp-block-list">
|
||
<li><strong>Changing up your number of Spark core executors</strong>–<a href="https://www.linkedin.com/posts/eczachly_dataengineering-activity-7023802704107888640-kAtW?utm_source=share&utm_medium=member_desktop" target="_blank" rel="noopener"> Zach Wilson has pointed out </a>how adding more Spark executor cores can negatively impact reliability without boosting performance. Experiment with that.</li>
|
||
</ul>
|
||
|
||
|
||
|
||
<ul class="wp-block-list">
|
||
<li><strong>Adjust the auto-suspend policy in Snowflake</strong>– A lot of teams are working to optimize their data cloud costs and it’s easy to cut a bit too deep and cause reliability issues. For example, if you set the auto-suspend more tightly than any gaps in your query workload, the warehouse could end up in a continual state of auto-suspend and auto-resume. This might help you discover you need to re-organize and categorize your data workloads by data warehouse size. Or, maybe be a bit more judicious on who has permission and authority to make these types of changes.</li>
|
||
</ul>
|
||
|
||
|
||
|
||
<ul class="wp-block-list">
|
||
<li><strong>Unpublish a dashboard</strong>– I call this the scream test. If no one says anything weeks after unpublishing a dashboard, chances are you can retire it. This can also help test your detection and communication skills across data engineering and analyst teams.</li>
|
||
</ul>
|
||
|
||
|
||
|
||
<ul class="wp-block-list">
|
||
<li><strong>Simulate a connection failure with your streaming pipelines</strong>– The Mercari data team <a href="https://montecarlo.ai/blog-mercari-data-reliability-engineering">deftly fixed this issue quickly</a> thanks to data monitoring alerts. They are tentatively planning to simulate similar issues to drill their detection, triage, and resolution processes.</li>
|
||
</ul>
|
||
|
||
|
||
|
||
<p><em>“The idea is we’ll roleplay an alert from a particular dataset and walk through the steps for triage, root cause analysis, and communicating with the business,” said Daniel, member of the Mercari data reliability engineering team. “By seeing them in action, we can better understand the recovery plans, how we prioritize to ensure the most essential tables are recovered first, and how we communicate this with a team that spans across four time zones.”</em></p>
|
||
|
||
|
||
<h3 class="wp-block-heading" id="code-level">Code Level</h3>
|
||
|
||
|
||
<figure class="wp-block-image aligncenter size-large is-resized"><img decoding="async" width="1024" height="675" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201024%20675'%3E%3C/svg%3E" alt="Jenna game representing chaos data engineering" class="wp-image-8264" style="width:512px;height:338px" data-lazy-srcset="https://montecarlo.ai/wp-content/uploads/2023/02/Jenga-1024x675.webp 1024w, https://montecarlo.ai/wp-content/uploads/2023/02/Jenga-300x198.webp 300w, https://montecarlo.ai/wp-content/uploads/2023/02/Jenga-768x506.webp 768w, https://montecarlo.ai/wp-content/uploads/2023/02/Jenga-1536x1013.webp 1536w, https://montecarlo.ai/wp-content/uploads/2023/02/Jenga-91x60.webp 91w, https://montecarlo.ai/wp-content/uploads/2023/02/Jenga-jpg.webp 1679w" data-lazy-sizes="(max-width: 1024px) 100vw, 1024px" data-lazy-src="https://montecarlo.ai/wp-content/uploads/2023/02/Jenga-1024x675.webp" /><noscript><img decoding="async" width="1024" height="675" src="https://montecarlo.ai/wp-content/uploads/2023/02/Jenga-1024x675.webp" alt="Jenna game representing chaos data engineering" class="wp-image-8264" style="width:512px;height:338px" srcset="https://montecarlo.ai/wp-content/uploads/2023/02/Jenga-1024x675.webp 1024w, https://montecarlo.ai/wp-content/uploads/2023/02/Jenga-300x198.webp 300w, https://montecarlo.ai/wp-content/uploads/2023/02/Jenga-768x506.webp 768w, https://montecarlo.ai/wp-content/uploads/2023/02/Jenga-1536x1013.webp 1536w, https://montecarlo.ai/wp-content/uploads/2023/02/Jenga-91x60.webp 91w, https://montecarlo.ai/wp-content/uploads/2023/02/Jenga-jpg.webp 1679w" sizes="(max-width: 1024px) 100vw, 1024px" /></noscript><figcaption class="wp-element-caption"><em>What happens when you remove that block (of code) does it all come crashing down? Photo by </em><a href="https://unsplash.com/@mparzuchowski?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText" target="_blank" rel="noopener"><em>Michał Parzuchowski</em></a><em> on </em><a href="https://unsplash.com/s/photos/jenga?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText" target="_blank" rel="noopener"><em>Unsplash</em></a></figcaption></figure>
|
||
|
||
|
||
|
||
<p>This level is the T (transformation) in the ETL or ELT process. What happens when something goes wrong in your dbt models or SQL queries? Time to find out!</p>
|
||
|
||
|
||
|
||
<ul class="wp-block-list">
|
||
<li><strong>Archive a dbt model-</strong> Similar to the dashboard scream test or Jenga. Is that model really needed or does the structure hold just fine when you remove a block? This can help evaluate your testing and monitoring; whether there are unknown dependencies; and lines of ownership.</li>
|
||
</ul>
|
||
|
||
|
||
|
||
<ul class="wp-block-list">
|
||
<li><strong>Adjust how a key metric is calculated-</strong>When there are multiple versions of truth within an organization, trust in data is inevitably undermined by conflicting trends. Do changes to a key metric flow to all your downstream reports? Are there rogue definitions floating around? This can help evaluate the organizational process for defining key metrics and whether you might need to invest in a <a href="https://www.getdbt.com/product/semantic-layer/" target="_blank" rel="noopener">semantic layer</a>.</li>
|
||
</ul>
|
||
|
||
|
||
|
||
<ul class="wp-block-list">
|
||
<li><strong>Have other domains interpret your models or SQL code</strong>– Sure, one engineer or team might understand the models in a particular domain, but what happens when others need to understand? Is it well documented? Can others help triage incidents?</li>
|
||
</ul>
|
||
|
||
|
||
<h3 class="wp-block-heading" id="data-level">Data Level</h3>
|
||
|
||
|
||
<figure class="wp-block-image aligncenter size-full"><img decoding="async" width="577" height="433" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20577%20433'%3E%3C/svg%3E" alt="Data pipeline chaos" class="wp-image-12188" data-lazy-srcset="https://montecarlo.ai/wp-content/uploads/2023/11/data-pipelines-chaos.png 577w, https://montecarlo.ai/wp-content/uploads/2023/11/data-pipelines-chaos-300x225.png 300w" data-lazy-sizes="(max-width: 577px) 100vw, 577px" data-lazy-src="https://montecarlo.ai/wp-content/uploads/2023/11/data-pipelines-chaos.png" /><noscript><img decoding="async" width="577" height="433" src="https://montecarlo.ai/wp-content/uploads/2023/11/data-pipelines-chaos.png" alt="Data pipeline chaos" class="wp-image-12188" srcset="https://montecarlo.ai/wp-content/uploads/2023/11/data-pipelines-chaos.png 577w, https://montecarlo.ai/wp-content/uploads/2023/11/data-pipelines-chaos-300x225.png 300w" sizes="(max-width: 577px) 100vw, 577px" /></noscript></figure>
|
||
|
||
|
||
|
||
<p>Where software engineers also deal with reliability issues at the code and system level, only data engineers must address potential issues at the data level. Have I mentioned that data is different? </p>
|
||
|
||
|
||
|
||
<p>This level can’t be neglected because your Airflow jobs may be running fine, your data diff may check out, but the data running across them might just be complete garbage. Garbage in, garbage out (and maybe systems down)</p>
|
||
|
||
|
||
|
||
<ul class="wp-block-list">
|
||
<li><strong>Change the schema-</strong> Software engineers regularly and unintentionally commit code that changes how the data is output in a service, breaking downstream data pipelines. You may need to decouple systems and, for some operational pipelines, require a <a href="https://montecarlo.ai/blog-data-contracts">data contract </a>architecture in place (or some other process for better engineering coordination).</li>
|
||
</ul>
|
||
|
||
|
||
|
||
<ul class="wp-block-list">
|
||
<li><strong>Create bad data- </strong>This may reveal your models aren’t robust against spikes of volume, NULLs, etc in their source tables.</li>
|
||
</ul>
|
||
|
||
|
||
|
||
<ul class="wp-block-list">
|
||
<li><strong>Duplicate the data</strong>– Does a spike in data reveal bottlenecks causing jobs to fail? Do you need to microbatch certain pipelines? Are your pipelines idempotent where they need to be?</li>
|
||
</ul>
|
||
|
||
|
||
<h2 class="wp-block-heading" id="were-talking-about-practice">We’re Talking About Practice</h2>
|
||
|
||
|
||
<p>We started this manifesto with a point guard, perhaps it’s fitting we conclude with <a href="https://www.facebook.com/SportsCenter/videos/allen-iversons-practice-rant/470685314188618/" target="_blank" rel="noopener">this infamous 2002 quote</a> from shooting guard Allen Iverson as a warning for those who don’t buy into the practice like you play concept:</p>
|
||
|
||
|
||
|
||
<p><em>We’re in here talking about practice. I mean, listen, we’re talking about practice. Not a game! Not a game! Not a game! We’re talking about practice. Not a game; not the game that I go out there and die for and play every game like it’s my last, not the game, we’re talking about practice, man. I mean, how silly is that? We’re talking about practice.</em></p>
|
||
|
||
|
||
|
||
<p><em>I know I’m supposed to be there, I know I’m supposed to lead by example, I know that. And I’m not shoving it aside like it don’t mean anything. I know it’s important. I do. I honestly do. But we’re talking about practice, man. What are we talking about? Practice? We’re talking about practice, man!</em></p>
|
||
|
||
|
||
|
||
<p><em>We’re talking about practice! We’re talking about practice… We ain’t talking about the game! We’re talking about practice, man! </em></p>
|
||
|
||
|
||
|
||
<p>That year the 76ers lost in the Eastern Conference First Round of the playoffs to the Boston Celtics in five games. Iveson’s field goal percentage for the series was a tepid 38.1%.</p>
|
||
|
||
|
||
|
||
<p><strong><em>Ryan Kearns, Tim Tischler, and Michael Segner contributed to this article.</em></strong></p>
|
||
|
||
|
||
|
||
<p><strong><em>What do you think? Leave your comments below.</em></strong></p>
|
||
|
||
|
||
|
||
</div>
|
||
|
||
|
||
<div class="mc-cta-card rounded-2xl border border-neutral-700 p-8 md:p-10 mt-12">
|
||
<h2 class="mc-cta-card__title text-2xl md:text-3xl font-bold text-white leading-tight mb-6">See how you can trust your agents in production</h2>
|
||
<div class="flex flex-wrap gap-4">
|
||
<a href="/request-a-demo" class="btn-primary-2026-default no-underline">Get a demo</a>
|
||
<a href="https://info.montecarlodata.com/product-tour/monte-carlo-overview" class="btn-secondary-2026-default no-underline">Take a tour</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<aside class="blog-single-rail min-w-0 order-3">
|
||
|
||
<div class="blog-single-rail-card rounded-xl p-8 md:p-10">
|
||
<p class="blog-single-rail-quote text-xl font-bold leading-tight">“You cannot separate data observability from agent observability — because the data feeding the agent matters as much as the agent itself.”</p>
|
||
<p class="blog-single-rail-text mt-6 text-sm leading-relaxed">Experience a live demo of Monte Carlo’s Agent Trust platform</p>
|
||
<a href="https://montecarlo.ai/agent-trust-live-demo" class="blog-single-rail-link mt-6 inline-block text-sm font-bold no-underline">Watch the webinar →</a>
|
||
</div>
|
||
</aside>
|
||
</div>
|
||
</article>
|
||
|
||
|
||
|
||
<section data-rocket-location-hash="6845d6b19e6ac6e8565a2733edbec0a7" class="mx-auto max-w-7xl px-4 md:px-8 lg:px-12 py-12 border-t border-neutral-200">
|
||
<h2 class="text-2xl md:text-3xl font-bold text-center mb-8">Recommended for you</h2>
|
||
<div class="grid md:grid-cols-2 lg:grid-cols-3 gap-6 md:gap-8">
|
||
<div class="featured-blog-card theme-2026 overflow-hidden rounded-2xl border border-gray-200 flex flex-col h-full transition-shadow hover:shadow-lg relative">
|
||
|
||
<div class="fbc-thumb bg-gray-50 flex items-center justify-center overflow-hidden " >
|
||
<img src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Data Engineer Roadmap: Skills, Tools, And The Rise Of AI" class="object-cover w-full h-full " data-lazy-src="https://montecarlo.ai/wp-content/uploads/2025/06/data-engineer-roadmap.webp" /><noscript><img src="https://montecarlo.ai/wp-content/uploads/2025/06/data-engineer-roadmap.webp" alt="Data Engineer Roadmap: Skills, Tools, And The Rise Of AI" class="object-cover w-full h-full " /></noscript>
|
||
</div>
|
||
<div class="flex-1 flex flex-col p-6 md:p-8">
|
||
<div class="fbc-category text-sm font-bold tracking-widest uppercase mb-4 text-left">AI Culture</div>
|
||
|
||
<a href="https://montecarlo.ai/blog-data-engineer-roadmap" class="block after:content-[''] after:absolute after:inset-0 after:z-10">
|
||
<h3 class="fbc-title text-2xl font-extrabold mb-4 text-left leading-snug line-clamp-2">Data Engineer Roadmap: Skills, Tools, And The Rise Of AI</h3>
|
||
</a>
|
||
<div class="fbc-excerpt mb-8 text-left line-clamp-2">Prepare for the future of data engineering with this 2025 roadmap. Understand the shift from building pipelines to designing critical data architectures.</div>
|
||
<div class="fbc-readmore mt-auto pt-2">
|
||
<a href="https://montecarlo.ai/blog-data-engineer-roadmap" class="text-xl font-extrabold text-neutral-800 text-left block">Read more</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="featured-blog-card theme-2026 overflow-hidden rounded-2xl border border-gray-200 flex flex-col h-full transition-shadow hover:shadow-lg relative">
|
||
|
||
<div class="fbc-thumb bg-gray-50 flex items-center justify-center overflow-hidden " >
|
||
<img src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="The Future of Data Engineering as a Data Engineer" class="object-cover w-full h-full " data-lazy-src="https://montecarlo.ai/wp-content/uploads/2022/08/The-Future-of-Data-engineering-for-the-data-engineer.png" /><noscript><img src="https://montecarlo.ai/wp-content/uploads/2022/08/The-Future-of-Data-engineering-for-the-data-engineer.png" alt="The Future of Data Engineering as a Data Engineer" class="object-cover w-full h-full " /></noscript>
|
||
</div>
|
||
<div class="flex-1 flex flex-col p-6 md:p-8">
|
||
<div class="fbc-category text-sm font-bold tracking-widest uppercase mb-4 text-left">Data Observability</div>
|
||
|
||
<a href="https://montecarlo.ai/blog-the-future-of-the-data-engineer" class="block after:content-[''] after:absolute after:inset-0 after:z-10">
|
||
<h3 class="fbc-title text-2xl font-extrabold mb-4 text-left leading-snug line-clamp-2">The Future of Data Engineering as a Data Engineer</h3>
|
||
</a>
|
||
<div class="fbc-excerpt mb-8 text-left line-clamp-2">Is the data engineer still the "worst seat at the table?" Maxime Beauchemin, creator of Apache Airflow, weighs in on the future of data engineering. </div>
|
||
<div class="fbc-readmore mt-auto pt-2">
|
||
<a href="https://montecarlo.ai/blog-the-future-of-the-data-engineer" class="text-xl font-extrabold text-neutral-800 text-left block">Read more</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="featured-blog-card theme-2026 overflow-hidden rounded-2xl border border-gray-200 flex flex-col h-full transition-shadow hover:shadow-lg relative">
|
||
|
||
<div class="fbc-thumb bg-gray-50 flex items-center justify-center overflow-hidden " >
|
||
<img src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="They Handle 500B Events Daily. Here&#8217;s Their Data Engineering Architecture." class="object-cover w-full h-full " data-lazy-src="https://montecarlo.ai/wp-content/uploads/2024/11/data-engineering-architecture-1024x683.png" /><noscript><img src="https://montecarlo.ai/wp-content/uploads/2024/11/data-engineering-architecture-1024x683.png" alt="They Handle 500B Events Daily. Here&#8217;s Their Data Engineering Architecture." class="object-cover w-full h-full " /></noscript>
|
||
</div>
|
||
<div class="flex-1 flex flex-col p-6 md:p-8">
|
||
<div class="fbc-category text-sm font-bold tracking-widest uppercase mb-4 text-left">Data Platforms</div>
|
||
|
||
<a href="https://montecarlo.ai/blog-data-engineering-architecture" class="block after:content-[''] after:absolute after:inset-0 after:z-10">
|
||
<h3 class="fbc-title text-2xl font-extrabold mb-4 text-left leading-snug line-clamp-2">They Handle 500B Events Daily. Here’s Their Data Engineering Architecture.</h3>
|
||
</a>
|
||
<div class="fbc-excerpt mb-8 text-left line-clamp-2">Netflix, Uber, Spotify, Meta, and Airbnb offer a masterclass in scaling data operations via their data engineering architecture.</div>
|
||
<div class="fbc-readmore mt-auto pt-2">
|
||
<a href="https://montecarlo.ai/blog-data-engineering-architecture" class="text-xl font-extrabold text-neutral-800 text-left block">Read more</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="featured-blog-card theme-2026 overflow-hidden rounded-2xl border border-gray-200 flex flex-col h-full transition-shadow hover:shadow-lg relative">
|
||
|
||
<div class="fbc-thumb bg-gray-50 flex items-center justify-center overflow-hidden " >
|
||
<img src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="A Data Engineer’s Guide to Building Reliable Systems" class="object-cover w-full h-full " data-lazy-src="https://montecarlo.ai/wp-content/uploads/2022/08/image1-1-1024x618.png" /><noscript><img src="https://montecarlo.ai/wp-content/uploads/2022/08/image1-1-1024x618.png" alt="A Data Engineer’s Guide to Building Reliable Systems" class="object-cover w-full h-full " /></noscript>
|
||
</div>
|
||
<div class="flex-1 flex flex-col p-6 md:p-8">
|
||
<div class="fbc-category text-sm font-bold tracking-widest uppercase mb-4 text-left">Data Observability</div>
|
||
|
||
<a href="https://montecarlo.ai/blog-a-data-engineers-guide-to-building-reliable-systems" class="block after:content-[''] after:absolute after:inset-0 after:z-10">
|
||
<h3 class="fbc-title text-2xl font-extrabold mb-4 text-left leading-snug line-clamp-2">A Data Engineer’s Guide to Building Reliable Systems</h3>
|
||
</a>
|
||
<div class="fbc-excerpt mb-8 text-left line-clamp-2">Over the years, I’ve helped companies of all sizes build and maintain data systems—from my days as a data engineer at Facebook to my current role as an end-to-end data solutions consultant. As a YouTuber and blogger, I’ve connected with data engineers from all over the world. And these days, everyone seems to share a …</div>
|
||
<div class="fbc-readmore mt-auto pt-2">
|
||
<a href="https://montecarlo.ai/blog-a-data-engineers-guide-to-building-reliable-systems" class="text-xl font-extrabold text-neutral-800 text-left block">Read more</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="featured-blog-card theme-2026 overflow-hidden rounded-2xl border border-gray-200 flex flex-col h-full transition-shadow hover:shadow-lg relative">
|
||
|
||
<div class="fbc-thumb bg-gray-50 flex items-center justify-center overflow-hidden " >
|
||
<img src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Reflections on tech, trust, and data adoption" class="object-cover w-full h-full " data-lazy-src="https://montecarlo.ai/wp-content/uploads/2021/12/reflections-on-tech-trust-and-adoption.webp" /><noscript><img src="https://montecarlo.ai/wp-content/uploads/2021/12/reflections-on-tech-trust-and-adoption.webp" alt="Reflections on tech, trust, and data adoption" class="object-cover w-full h-full " /></noscript>
|
||
</div>
|
||
<div class="flex-1 flex flex-col p-6 md:p-8">
|
||
<div class="fbc-category text-sm font-bold tracking-widest uppercase mb-4 text-left">Announcements</div>
|
||
|
||
<a href="https://montecarlo.ai/blog-announcing-the-2022-data-engineering-predictions-guide" class="block after:content-[''] after:absolute after:inset-0 after:z-10">
|
||
<h3 class="fbc-title text-2xl font-extrabold mb-4 text-left leading-snug line-clamp-2">Reflections on tech, trust, and data adoption</h3>
|
||
</a>
|
||
<div class="fbc-excerpt mb-8 text-left line-clamp-2">A few quick thoughts on why trust, and not technology, is stopping today's leader's from driving adoption and impact with data. </div>
|
||
<div class="fbc-readmore mt-auto pt-2">
|
||
<a href="https://montecarlo.ai/blog-announcing-the-2022-data-engineering-predictions-guide" class="text-xl font-extrabold text-neutral-800 text-left block">Read more</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="featured-blog-card theme-2026 overflow-hidden rounded-2xl border border-gray-200 flex flex-col h-full transition-shadow hover:shadow-lg relative">
|
||
|
||
<div class="fbc-thumb bg-gray-50 flex items-center justify-center overflow-hidden " >
|
||
<img src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="The No-Panic Guide to Building a Data Engineering Pipeline That Actually Scales" class="object-cover w-full h-full " data-lazy-src="https://montecarlo.ai/wp-content/uploads/2024/11/data-engineering-pipeline.png" /><noscript><img src="https://montecarlo.ai/wp-content/uploads/2024/11/data-engineering-pipeline.png" alt="The No-Panic Guide to Building a Data Engineering Pipeline That Actually Scales" class="object-cover w-full h-full " /></noscript>
|
||
</div>
|
||
<div class="flex-1 flex flex-col p-6 md:p-8">
|
||
<div class="fbc-category text-sm font-bold tracking-widest uppercase mb-4 text-left">Data Discovery</div>
|
||
|
||
<a href="https://montecarlo.ai/blog-data-engineering-pipeline-guide" class="block after:content-[''] after:absolute after:inset-0 after:z-10">
|
||
<h3 class="fbc-title text-2xl font-extrabold mb-4 text-left leading-snug line-clamp-2">The No-Panic Guide to Building a Data Engineering Pipeline That Actually Scales</h3>
|
||
</a>
|
||
<div class="fbc-excerpt mb-8 text-left line-clamp-2">Turn messy scripts into a scalable data architecture. Discover the 4 key data engineering pipeline layers, best practices for monitoring, and how to avoid common scaling pitfalls.</div>
|
||
<div class="fbc-readmore mt-auto pt-2">
|
||
<a href="https://montecarlo.ai/blog-data-engineering-pipeline-guide" class="text-xl font-extrabold text-neutral-800 text-left block">Read more</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
</main>
|
||
|
||
|
||
<footer data-rocket-location-hash="02e9ad780430fd30df18a555ff295a56" class="bg-[#00111d] text-white py-20 relative">
|
||
<div data-rocket-location-hash="d1764fb83f2a3cd64c3cbb4220fc8d65" class="container mx-auto px-6 md:px-10">
|
||
|
||
|
||
<hr class="mb-12 border-white/20">
|
||
|
||
|
||
<div class="flex flex-col md:flex-row md:gap-12">
|
||
<div
|
||
class="flex-1 grid grid-cols-2 gap-x-14 gap-y-10
|
||
md:flex md:flex-row md:justify-between md:gap-x-12 md:gap-y-0">
|
||
<div>
|
||
<div class="nav-col"><h3 class="nav-title font-medium text-xs tracking-[2px] text-white/60 uppercase mb-4">Platform</h3><ul class="space-y-1"><li class="nav-link text-[15px] md:text-[17px] mb-4"><a href="https://montecarlo.ai/agent-trust" target="" class="text-white hover:text-yellow-100 transition">Agent Trust</a></li><li class="nav-link text-[15px] md:text-[17px] mb-4"><a href="https://montecarlo.ai/platform/agent-observability/" target="" class="text-white hover:text-yellow-100 transition">Agent Observability</a></li><li class="nav-link text-[15px] md:text-[17px] mb-4"><a href="/platform/data-quality/" target="" class="text-white hover:text-yellow-100 transition">Data Observability</a></li><li class="nav-link text-[15px] md:text-[17px] mb-4"><a href="https://montecarlo.ai/platform/data-ai-observability-platform" target="" class="text-white hover:text-yellow-100 transition">What is data + AI observability?</a></li><li class="nav-link text-[15px] md:text-[17px] mb-4"><a href="https://montecarlo.ai/product/integrations" target="" class="text-white hover:text-yellow-100 transition">Integrations</a></li></ul></div>
|
||
</div>
|
||
<div>
|
||
<div class="nav-col"><h3 class="nav-title font-medium text-xs tracking-[2px] text-white/60 uppercase mb-4">Solutions</h3><ul class="space-y-1"><li class="nav-link text-[15px] md:text-[17px] mb-4"><a href="https://montecarlo.ai/solutions/ai-engineers" target="" class="text-white hover:text-yellow-100 transition">AI Engineers</a></li><li class="nav-link text-[15px] md:text-[17px] mb-4"><a href="https://montecarlo.ai/solutions/cios-and-ctos" target="" class="text-white hover:text-yellow-100 transition">CIOs and CTOs</a></li><li class="nav-link text-[15px] md:text-[17px] mb-4"><a href="https://montecarlo.ai/solutions/data-engineers" target="" class="text-white hover:text-yellow-100 transition">Data Engineers</a></li><li class="nav-link text-[15px] md:text-[17px] mb-4"><a href="/solutions/data-analysts/" target="" class="text-white hover:text-yellow-100 transition">Data Analysts</a></li><li class="nav-link text-[15px] md:text-[17px] mb-4"><a href="https://montecarlo.ai/solutions/data-governance" target="" class="text-white hover:text-yellow-100 transition">Data Governance</a></li><li class="nav-link text-[15px] md:text-[17px] mb-4"><a href="https://montecarlo.ai/solutions/chief-data-ai-officers" target="" class="text-white hover:text-yellow-100 transition">CDAOs</a></li><li class="nav-link text-[15px] md:text-[17px] mb-4"><a href="https://montecarlo.ai/use-cases/business-analytics/" target="" class="text-white hover:text-yellow-100 transition">Business Analytics</a></li><li class="nav-link text-[15px] md:text-[17px] mb-4"><a href="https://montecarlo.ai/use-cases/data-democratization/" target="" class="text-white hover:text-yellow-100 transition">Data Democratization</a></li><li class="nav-link text-[15px] md:text-[17px] mb-4"><a href="https://montecarlo.ai/use-cases/ai-ml-models/" target="" class="text-white hover:text-yellow-100 transition">AI & ML Models</a></li><li class="nav-link text-[15px] md:text-[17px] mb-4"><a href="/use-cases/data-migration/" target="" class="text-white hover:text-yellow-100 transition">Data Migration</a></li></ul></div>
|
||
</div>
|
||
<div>
|
||
<div class="nav-col"><h3 class="nav-title font-medium text-xs tracking-[2px] text-white/60 uppercase mb-4">Resources</h3><ul class="space-y-1"><li class="nav-link text-[15px] md:text-[17px] mb-4"><a href="https://montecarlo.ai/blog" target="" class="text-white hover:text-yellow-100 transition">Blog</a></li><li class="nav-link text-[15px] md:text-[17px] mb-4"><a href="https://info.montecarlodata.com/resources/case-studies" target="_blank" class="text-white hover:text-yellow-100 transition">Case Studies</a></li><li class="nav-link text-[15px] md:text-[17px] mb-4"><a href="http://docs.getmontecarlo.com/" target="_blank" class="text-white hover:text-yellow-100 transition">Docs</a></li><li class="nav-link text-[15px] md:text-[17px] mb-4"><a href="https://info.montecarlodata.com/resources/ebooks-reports-and-guides" target="_blank" class="text-white hover:text-yellow-100 transition">eBooks, Reports, & Guides</a></li><li class="nav-link text-[15px] md:text-[17px] mb-4"><a href="https://info.montecarlodata.com/resources/webinars" target="_blank" class="text-white hover:text-yellow-100 transition">Webinars</a></li><li class="nav-link text-[15px] md:text-[17px] mb-4"><a href="https://montecarlo.ai/blog-ai-observability" target="" class="text-white hover:text-yellow-100 transition">AI Observability Guide</a></li><li class="nav-link text-[15px] md:text-[17px] mb-4"><a href="https://montecarlo.ai/blog-best-ai-observability-tools" target="" class="text-white hover:text-yellow-100 transition">AI Observability Tools</a></li><li class="nav-link text-[15px] md:text-[17px] mb-4"><a href="https://montecarlo.ai/blog-what-is-llm-observability" target="" class="text-white hover:text-yellow-100 transition">LLM Observability vs Agent Observability</a></li><li class="nav-link text-[15px] md:text-[17px] mb-4"><a href="https://info.montecarlodata.com/get-resources/the-observer-newsletter" target="" class="text-white hover:text-yellow-100 transition">Subscribe To Our Newsletter</a></li></ul></div>
|
||
</div>
|
||
<div>
|
||
<div class="nav-col"><h3 class="nav-title font-medium text-xs tracking-[2px] text-white/60 uppercase mb-4">Company</h3><ul class="space-y-1"><li class="nav-link text-[15px] md:text-[17px] mb-4"><a href="https://montecarlo.ai/about-us" target="" class="text-white hover:text-yellow-100 transition">About</a></li><li class="nav-link text-[15px] md:text-[17px] mb-4"><a href="https://montecarlo.ai/customers" target="" class="text-white hover:text-yellow-100 transition">Customers</a></li><li class="nav-link text-[15px] md:text-[17px] mb-4"><a href="https://montecarlo.ai/careers-at-monte-carlo/" target="" class="text-white hover:text-yellow-100 transition">Careers</a></li><li class="nav-link text-[15px] md:text-[17px] mb-4"><a href="https://montecarlo.ai/request-for-pricing/" target="" class="text-white hover:text-yellow-100 transition">Pricing</a></li><li class="nav-link text-[15px] md:text-[17px] mb-4"><a href="https://info.montecarlodata.com/customer-onboarding" target="" class="text-white hover:text-yellow-100 transition">Product Certification </a></li></ul></div>
|
||
</div>
|
||
<div>
|
||
<div class="nav-col"><h3 class="nav-title font-medium text-xs tracking-[2px] text-white/60 uppercase mb-4">Trust</h3><ul class="space-y-1"><li class="nav-link text-[15px] md:text-[17px] mb-4"><a href="https://montecarlo.ai/terms-and-conditions" target="" class="text-white hover:text-yellow-100 transition">Terms and Conditions</a></li><li class="nav-link text-[15px] md:text-[17px] mb-4"><a href="/data-processing-addendum/" target="" class="text-white hover:text-yellow-100 transition">Data Processing Adendum</a></li><li class="nav-link text-[15px] md:text-[17px] mb-4"><a href="https://montecarlo.ai/terms-of-use" target="" class="text-white hover:text-yellow-100 transition">Terms of use</a></li><li class="nav-link text-[15px] md:text-[17px] mb-4"><a href="https://trust.montecarlodata.com/?_gl=1*1lglywc*_gcl_au*MTMzNzMzMDc4NS4xNzc4NTI0MTQ3*_ga*NTA2NDE0NzE3LjE3Nzg1MjQxNDY.*_ga_SZGJ8KW5Z8*czE3NzkyMTAwNjUkbzMkZzAkdDE3NzkyMTAwNjckajU4JGwwJGgyMDExMjAyMDM0&_ga=2.264955535.1229609615.1779210065-506414717.1778524146" target="" class="text-white hover:text-yellow-100 transition">Security</a></li><li class="nav-link text-[15px] md:text-[17px] mb-4"><a href="/report-issues" target="" class="text-white hover:text-yellow-100 transition">Report issues</a></li><li class="nav-link text-[15px] md:text-[17px] mb-4"><a href="/privacy-policy" target="" class="text-white hover:text-yellow-100 transition">Privacy Policy</a></li></ul></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
<div class="mt-16 flex flex-col md:flex-row md:items-center md:justify-between gap-10 relative z-1">
|
||
|
||
<div class="flex gap-6">
|
||
<a href="https://www.facebook.com/montecarlodata/" target="_blank" aria-label="Facebook"
|
||
class="inline-block">
|
||
<span aria-hidden="true"
|
||
class="block w-6 h-6 bg-[#6E7F8B] hover:bg-white transition-colors"
|
||
style="-webkit-mask: url('https://montecarlo.ai/wp-content/themes/monte-carlo-2025/public/build/assets/icon-facebook-DVQF7Qit.svg') center/contain no-repeat; mask: url('https://montecarlo.ai/wp-content/themes/monte-carlo-2025/public/build/assets/icon-facebook-DVQF7Qit.svg') center/contain no-repeat;"></span>
|
||
</a>
|
||
<a href="https://www.instagram.com/montecarlodata/" target="_blank" aria-label="Instagram"
|
||
class="inline-block">
|
||
<span aria-hidden="true"
|
||
class="block w-6 h-6 bg-[#6E7F8B] hover:bg-white transition-colors"
|
||
style="-webkit-mask: url('https://montecarlo.ai/wp-content/themes/monte-carlo-2025/public/build/assets/icon-instagram-qNaDKD18.svg') center/contain no-repeat; mask: url('https://montecarlo.ai/wp-content/themes/monte-carlo-2025/public/build/assets/icon-instagram-qNaDKD18.svg') center/contain no-repeat;"></span>
|
||
</a>
|
||
<a href="https://x.com/montecarlo_ai" target="_blank" aria-label="Twitter"
|
||
class="inline-block">
|
||
<span aria-hidden="true"
|
||
class="block w-6 h-6 bg-[#6E7F8B] hover:bg-white transition-colors"
|
||
style="-webkit-mask: url('https://montecarlo.ai/wp-content/themes/monte-carlo-2025/public/build/assets/icon-twitter-Bbz7Tm8K.svg') center/contain no-repeat; mask: url('https://montecarlo.ai/wp-content/themes/monte-carlo-2025/public/build/assets/icon-twitter-Bbz7Tm8K.svg') center/contain no-repeat;"></span>
|
||
</a>
|
||
<a href="https://www.linkedin.com/company/monte-carlo-data/" target="_blank" aria-label="LinkedIn"
|
||
class="inline-block">
|
||
<span aria-hidden="true"
|
||
class="block w-6 h-6 bg-[#6E7F8B] hover:bg-white transition-colors"
|
||
style="-webkit-mask: url('https://montecarlo.ai/wp-content/themes/monte-carlo-2025/public/build/assets/icon-linked-in-ubekIHWl.svg') center/contain no-repeat; mask: url('https://montecarlo.ai/wp-content/themes/monte-carlo-2025/public/build/assets/icon-linked-in-ubekIHWl.svg') center/contain no-repeat;"></span>
|
||
</a>
|
||
</div>
|
||
|
||
|
||
<div class="flex items-center md:gap-4 gap-2 justify-between md:justify-end w-full md:w-auto">
|
||
<span class="text-xs text-white/70 tracking-wide order-2 md:order-1">
|
||
COPYRIGHT MONTE CARLO
|
||
</span>
|
||
<span role="img" aria-label="Monte Carlo"
|
||
class="block h-8 aspect-[61/20] bg-[#6E7F8B] order-1 md:order-2"
|
||
style="-webkit-mask: url('https://montecarlo.ai/wp-content/themes/monte-carlo-2025/public/build/assets/mc-logo-footer-Dr03nARm.svg') center/contain no-repeat; mask: url('https://montecarlo.ai/wp-content/themes/monte-carlo-2025/public/build/assets/mc-logo-footer-Dr03nARm.svg') center/contain no-repeat;"></span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</footer>
|
||
</div>
|
||
|
||
<div class="mysticky-welcomebar-fixed mysticky-site-front mysticky-welcomebar-position-top mysticky-welcomebar-showx-desktop mysticky-welcomebar-showx-mobile mysticky-welcomebar-btn-desktop mysticky-welcomebar-btn-mobile mysticky-welcomebar-display-desktop mysticky-welcomebar-display-mobile mysticky-welcomebar-entry-effect-slide-in" data-after-triger="after_a_few_seconds" data-triger-sec="1" data-position="top" data-height="60" data-rediect="redirect_to_url" data-aftersubmission="dont_show_welcomebar" data-show-success-message="0">
|
||
<div data-rocket-location-hash="fc3202eb5c884426af35824c6da0c9bc" class="mysticky-welcomebar-fixed-wrap ">
|
||
<div data-rocket-location-hash="ceb2fa628cb93a9f0598c1c85adaa01b" class="mysticky-welcomebar-content">
|
||
<p style="text-align: center">G2 names Monte Carlo as #1 leader for the 13th consecutive quarter</p>
|
||
</div>
|
||
|
||
|
||
<div class="mysticky-welcomebar-btn " >
|
||
|
||
<a class="msb-welcomebar-btn mysticky-welcomebar-btn-a msb-welcomebar-btn"
|
||
href="https://lnkd.in/p/eR5wx2Vi" data-animation="default"
|
||
data-fill-style="fill1"
|
||
data-border-style="border1"
|
||
>
|
||
<span class="button-text">
|
||
Read more </span>
|
||
</a>
|
||
</div>
|
||
<span class="mysticky-welcomebar-close" style="color:#ffffff">X</span>
|
||
</div>
|
||
</div>
|
||
<script id="leadin-script-loader-js-js-extra">
|
||
var leadin_wordpress = {"userRole":"visitor","pageType":"post","leadinPluginVersion":"11.3.73"};
|
||
</script>
|
||
<script type="rocketlazyloadscript" data-minify="1" data-rocket-src="https://montecarlo.ai/wp-content/cache/min/1/20172935.js?ver=1788405332" async defer id='hs-script-loader'></script>
|
||
<script type="rocketlazyloadscript" data-minify="1" data-rocket-src="https://montecarlo.ai/wp-content/cache/min/1/wp-content/plugins/mystickymenu/dist/js/morphext.js?ver=1788405332" id="morphext-js-js" defer data-wp-strategy="defer"></script>
|
||
<script id="welcomebar-frontjs-js-extra">
|
||
var welcomebar_frontjs = {"ajaxurl":"https:\/\/montecarlo.ai\/wp-admin\/admin-ajax.php","days":"Days","hours":"Hours","minutes":"Minutes","seconds":"Seconds","ajax_nonce":"0959fce39c"};
|
||
</script>
|
||
<script type="rocketlazyloadscript" data-minify="1" data-rocket-src="https://montecarlo.ai/wp-content/cache/min/1/wp-content/plugins/mystickymenu/dist/js/welcomebar-front.js?ver=1788405332" id="welcomebar-frontjs-js" defer data-wp-strategy="defer"></script>
|
||
<script type="rocketlazyloadscript" data-rocket-type="module" data-rocket-src="https://montecarlo.ai/wp-content/plugins/hubspot-content-embed/build/hsEmbedInjector.js?ver=1.3.7"></script><script type="rocketlazyloadscript" id="rocket-browser-checker-js-after">
|
||
"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 id="rocket-preload-links-js-extra">
|
||
var RocketPreloadLinksConfig = {"excludeUris":"\/(.*)sitemap(.*).xml|\/(.*)sitemap.xsl|\/(?:.+\/)?feed(?:\/(?:.+\/?)?)?$|\/(?:.+\/)?embed\/|\/(index.php\/)?(.*)wp-json(\/.*|$)|\/refer\/|\/go\/|\/recommend\/|\/recommends\/","usesTrailingSlash":"","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:\/\/montecarlo.ai","onHoverDelay":"100","rateThrottle":"3"};
|
||
</script>
|
||
<script type="rocketlazyloadscript" id="rocket-preload-links-js-after">
|
||
(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 id="rocket_lazyload_css-js-extra">
|
||
var rocket_lazyload_css_data = {"threshold":"300"};
|
||
</script>
|
||
<script id="rocket_lazyload_css-js-after">
|
||
!function o(n,c,a){function u(t,e){if(!c[t]){if(!n[t]){var r="function"==typeof require&&require;if(!e&&r)return r(t,!0);if(s)return s(t,!0);throw(e=new Error("Cannot find module '"+t+"'")).code="MODULE_NOT_FOUND",e}r=c[t]={exports:{}},n[t][0].call(r.exports,function(e){return u(n[t][1][e]||e)},r,r.exports,o,n,c,a)}return c[t].exports}for(var s="function"==typeof require&&require,e=0;e<a.length;e++)u(a[e]);return u}({1:[function(e,t,r){"use strict";{const c="undefined"==typeof rocket_pairs?[]:rocket_pairs,a=(("undefined"==typeof rocket_excluded_pairs?[]:rocket_excluded_pairs).map(t=>{var e=t.selector;document.querySelectorAll(e).forEach(e=>{e.setAttribute("data-rocket-lazy-bg-"+t.hash,"excluded")})}),document.querySelector("#wpr-lazyload-bg-container"));var o=rocket_lazyload_css_data.threshold||300;const u=new IntersectionObserver(e=>{e.forEach(t=>{t.isIntersecting&&c.filter(e=>t.target.matches(e.selector)).map(t=>{var e;t&&((e=document.createElement("style")).textContent=t.style,a.insertAdjacentElement("afterend",e),t.elements.forEach(e=>{u.unobserve(e),e.setAttribute("data-rocket-lazy-bg-"+t.hash,"loaded")}))})})},{rootMargin:o+"px"});function n(){0<(0<arguments.length&&void 0!==arguments[0]?arguments[0]:[]).length&&c.forEach(t=>{try{document.querySelectorAll(t.selector).forEach(e=>{"loaded"!==e.getAttribute("data-rocket-lazy-bg-"+t.hash)&&"excluded"!==e.getAttribute("data-rocket-lazy-bg-"+t.hash)&&(u.observe(e),(t.elements||=[]).push(e))})}catch(e){console.error(e)}})}n(),function(){const r=window.MutationObserver;return function(e,t){if(e&&1===e.nodeType)return(t=new r(t)).observe(e,{attributes:!0,childList:!0,subtree:!0}),t}}()(document.querySelector("body"),n)}},{}]},{},[1]);
|
||
</script>
|
||
<script type="rocketlazyloadscript" id="wd-asl-ajaxsearchlite-js-before">
|
||
window.ASL = typeof window.ASL !== 'undefined' ? window.ASL : {}; window.ASL.wp_rocket_exception = "DOMContentLoaded"; window.ASL.ajaxurl = "https:\/\/montecarlo.ai\/wp-admin\/admin-ajax.php"; window.ASL.backend_ajaxurl = "https:\/\/montecarlo.ai\/wp-admin\/admin-ajax.php"; window.ASL.asl_url = "https:\/\/montecarlo.ai\/wp-content\/plugins\/ajax-search-lite\/"; window.ASL.detect_ajax = 1; window.ASL.media_query = 4780; window.ASL.version = 4780; window.ASL.pageHTML = ""; window.ASL.additional_scripts = []; window.ASL.script_async_load = false; window.ASL.init_only_in_viewport = true; window.ASL.font_url = "https:\/\/montecarlo.ai\/wp-content\/plugins\/ajax-search-lite\/css\/fonts\/icons2.woff2"; window.ASL.highlight = {"enabled":false,"data":[]}; window.ASL.analytics = {"method":0,"tracking_id":"","string":"?ajax_search={asl_term}","event":{"focus":{"active":true,"action":"focus","category":"ASL","label":"Input focus","value":"1"},"search_start":{"active":false,"action":"search_start","category":"ASL","label":"Phrase: {phrase}","value":"1"},"search_end":{"active":true,"action":"search_end","category":"ASL","label":"{phrase} | {results_count}","value":"1"},"magnifier":{"active":true,"action":"magnifier","category":"ASL","label":"Magnifier clicked","value":"1"},"return":{"active":true,"action":"return","category":"ASL","label":"Return button pressed","value":"1"},"facet_change":{"active":false,"action":"facet_change","category":"ASL","label":"{option_label} | {option_value}","value":"1"},"result_click":{"active":true,"action":"result_click","category":"ASL","label":"{result_title} | {result_url}","value":"1"}}};
|
||
window.ASL_INSTANCES = [];window.ASL_INSTANCES[1] = {"homeurl":"https:\/\/montecarlo.ai\/","resultstype":"vertical","resultsposition":"hover","itemscount":4,"charcount":0,"highlight":false,"highlightWholewords":true,"singleHighlight":false,"scrollToResults":{"enabled":false,"offset":0},"resultareaclickable":1,"autocomplete":{"enabled":false,"lang":"en","trigger_charcount":0},"mobile":{"menu_selector":"#menu-toggle, .menu-toggle"},"trigger":{"click":"results_page","click_location":"same","update_href":false,"return":"results_page","return_location":"same","facet":true,"type":true,"redirect_url":"?s={phrase}","delay":300},"animations":{"pc":{"settings":{"anim":"fadedrop","dur":300},"results":{"anim":"fadedrop","dur":300},"items":"voidanim"},"mob":{"settings":{"anim":"fadedrop","dur":300},"results":{"anim":"fadedrop","dur":300},"items":"voidanim"}},"autop":{"state":true,"phrase":"","count":"1"},"resPage":{"useAjax":false,"selector":"#main","trigger_type":true,"trigger_facet":true,"trigger_magnifier":false,"trigger_return":false},"resultsSnapTo":"left","results":{"width":"auto","width_tablet":"auto","width_phone":"auto"},"settingsimagepos":"right","closeOnDocClick":true,"overridewpdefault":true,"override_method":"get"};window.ASL_INSTANCES[2] = {"homeurl":"https:\/\/montecarlo.ai\/","resultstype":"vertical","resultsposition":"hover","itemscount":4,"charcount":0,"highlight":false,"highlightWholewords":true,"singleHighlight":false,"scrollToResults":{"enabled":false,"offset":0},"resultareaclickable":1,"autocomplete":{"enabled":false,"lang":"en","trigger_charcount":0},"mobile":{"menu_selector":"#menu-toggle, .menu-toggle"},"trigger":{"click":"results_page","click_location":"same","update_href":false,"return":"results_page","return_location":"same","facet":true,"type":true,"redirect_url":"?s={phrase}","delay":300},"animations":{"pc":{"settings":{"anim":"fadedrop","dur":300},"results":{"anim":"fadedrop","dur":300},"items":"voidanim"},"mob":{"settings":{"anim":"fadedrop","dur":300},"results":{"anim":"fadedrop","dur":300},"items":"voidanim"}},"autop":{"state":true,"phrase":"","count":"1"},"resPage":{"useAjax":false,"selector":"#main","trigger_type":true,"trigger_facet":true,"trigger_magnifier":false,"trigger_return":false},"resultsSnapTo":"left","results":{"width":"auto","width_tablet":"auto","width_phone":"auto"},"settingsimagepos":"right","closeOnDocClick":true,"overridewpdefault":true,"override_method":"get"};
|
||
</script>
|
||
<script type="rocketlazyloadscript" data-rocket-src="https://montecarlo.ai/wp-content/plugins/ajax-search-lite/js/min/plugin/merged/asl.min.js?ver=4780" id="wd-asl-ajaxsearchlite-js"></script>
|
||
<script>window.lazyLoadOptions=[{elements_selector:"img[data-lazy-src],.rocket-lazyload",data_src:"lazy-src",data_srcset:"lazy-srcset",data_sizes:"lazy-sizes",class_loading:"lazyloading",class_loaded:"lazyloaded",threshold:300,callback_loaded:function(element){if(element.tagName==="IFRAME"&&element.dataset.rocketLazyload=="fitvidscompatible"){if(element.classList.contains("lazyloaded")){if(typeof window.jQuery!="undefined"){if(jQuery.fn.fitVids){jQuery(element).parent().fitVids()}}}}}},{elements_selector:".rocket-lazyload",data_src:"lazy-src",data_srcset:"lazy-srcset",data_sizes:"lazy-sizes",class_loading:"lazyloading",class_loaded:"lazyloaded",threshold:300,}];window.addEventListener('LazyLoad::Initialized',function(e){var lazyLoadInstance=e.detail.instance;if(window.MutationObserver){var observer=new MutationObserver(function(mutations){var image_count=0;var iframe_count=0;var rocketlazy_count=0;mutations.forEach(function(mutation){for(var i=0;i<mutation.addedNodes.length;i++){if(typeof mutation.addedNodes[i].getElementsByTagName!=='function'){continue}
|
||
if(typeof mutation.addedNodes[i].getElementsByClassName!=='function'){continue}
|
||
images=mutation.addedNodes[i].getElementsByTagName('img');is_image=mutation.addedNodes[i].tagName=="IMG";iframes=mutation.addedNodes[i].getElementsByTagName('iframe');is_iframe=mutation.addedNodes[i].tagName=="IFRAME";rocket_lazy=mutation.addedNodes[i].getElementsByClassName('rocket-lazyload');image_count+=images.length;iframe_count+=iframes.length;rocketlazy_count+=rocket_lazy.length;if(is_image){image_count+=1}
|
||
if(is_iframe){iframe_count+=1}}});if(image_count>0||iframe_count>0||rocketlazy_count>0){lazyLoadInstance.update()}});var b=document.getElementsByTagName("body")[0];var config={childList:!0,subtree:!0};observer.observe(b,config)}},!1)</script><script data-no-minify="1" async src="https://montecarlo.ai/wp-content/plugins/wp-rocket/assets/js/lazyload/17.8.3/lazyload.min.js"></script>
|
||
<!-- 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://montecarlo.ai/wp-content/cache/min/1/20172935.js?ver=1788405332"></script>
|
||
<!-- End of HubSpot Embed Code -->
|
||
|
||
<!-- Mutiny -->
|
||
<script>
|
||
(function(){var a=window.mutiny=window.mutiny||{};if(!window.mutiny.client){a.client={_queue:{}};var b=["identify","trackConversion"];var c=[].concat(b,["defaultOptOut","optOut","optIn"]);var d=function factory(c){return function(){for(var d=arguments.length,e=new Array(d),f=0;f<d;f++){e[f]=arguments[f]}a.client._queue[c]=a.client._queue[c]||[];if(b.includes(c)){return new Promise(function(b,d){a.client._queue[c].push({args:e,resolve:b,reject:d})})}else{a.client._queue[c].push({args:e})}}};c.forEach(function(b){a.client[b]=d(b)})}})();
|
||
</script>
|
||
<script data-cfasync="false" src="https://client-registry.mutinycdn.com/personalize/client/813b436159f68e1a.js"></script>
|
||
<!-- End Mutiny -->
|
||
<script>var rocket_beacon_data = {"ajax_url":"https:\/\/montecarlo.ai\/wp-admin\/admin-ajax.php","nonce":"03db8d832f","url":"https:\/\/montecarlo.ai\/blog-chaos-data-engineering-manifesto","is_mobile":false,"width_threshold":1600,"height_threshold":700,"delay":500,"debug":null,"status":{"atf":true,"lrc":true},"elements":"img, video, picture, p, main, div, li, svg, section, header, span","lrc_threshold":1800}</script><script data-name="wpr-wpr-beacon" src='https://montecarlo.ai/wp-content/plugins/wp-rocket/assets/js/wpr-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 - Debug: cached@1789138715 --> |