1254 lines
127 KiB
HTML
1254 lines
127 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<link rel="profile" href="http://gmpg.org/xfn/11">
|
|
|
|
<title>Omnipresent availability risks in cloud software – Surfing Complexity</title>
|
|
<meta name='robots' content='max-image-preview:large' />
|
|
|
|
<!-- Async WordPress.com Remote Login -->
|
|
<script id="wpcom_remote_login_js">
|
|
var wpcom_remote_login_extra_auth = '';
|
|
function wpcom_remote_login_remove_dom_node_id( element_id ) {
|
|
var dom_node = document.getElementById( element_id );
|
|
if ( dom_node ) { dom_node.parentNode.removeChild( dom_node ); }
|
|
}
|
|
function wpcom_remote_login_remove_dom_node_classes( class_name ) {
|
|
var dom_nodes = document.querySelectorAll( '.' + class_name );
|
|
for ( var i = 0; i < dom_nodes.length; i++ ) {
|
|
dom_nodes[ i ].parentNode.removeChild( dom_nodes[ i ] );
|
|
}
|
|
}
|
|
function wpcom_remote_login_final_cleanup() {
|
|
wpcom_remote_login_remove_dom_node_classes( "wpcom_remote_login_msg" );
|
|
wpcom_remote_login_remove_dom_node_id( "wpcom_remote_login_key" );
|
|
wpcom_remote_login_remove_dom_node_id( "wpcom_remote_login_validate" );
|
|
wpcom_remote_login_remove_dom_node_id( "wpcom_remote_login_js" );
|
|
wpcom_remote_login_remove_dom_node_id( "wpcom_request_access_iframe" );
|
|
wpcom_remote_login_remove_dom_node_id( "wpcom_request_access_styles" );
|
|
}
|
|
|
|
// Watch for messages back from the remote login
|
|
window.addEventListener( "message", function( e ) {
|
|
if ( e.origin === "https://r-login.wordpress.com" ) {
|
|
var data = {};
|
|
try {
|
|
data = JSON.parse( e.data );
|
|
} catch( e ) {
|
|
wpcom_remote_login_final_cleanup();
|
|
return;
|
|
}
|
|
|
|
if ( data.msg === 'LOGIN' ) {
|
|
// Clean up the login check iframe
|
|
wpcom_remote_login_remove_dom_node_id( "wpcom_remote_login_key" );
|
|
|
|
var id_regex = new RegExp( /^[0-9]+$/ );
|
|
var token_regex = new RegExp( /^.*|.*|.*$/ );
|
|
if (
|
|
token_regex.test( data.token )
|
|
&& id_regex.test( data.wpcomid )
|
|
) {
|
|
// We have everything we need to ask for a login
|
|
var script = document.createElement( "script" );
|
|
script.setAttribute( "id", "wpcom_remote_login_validate" );
|
|
script.src = '/remote-login.php?wpcom_remote_login=validate'
|
|
+ '&wpcomid=' + data.wpcomid
|
|
+ '&token=' + encodeURIComponent( data.token )
|
|
+ '&host=' + window.location.protocol
|
|
+ '//' + window.location.hostname
|
|
+ '&postid=7912'
|
|
+ '&is_singular=1';
|
|
document.body.appendChild( script );
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
// Safari ITP, not logged in, so redirect
|
|
if ( data.msg === 'LOGIN-REDIRECT' ) {
|
|
window.location = 'https://wordpress.com/log-in?redirect_to=' + window.location.href;
|
|
return;
|
|
}
|
|
|
|
// Safari ITP, storage access failed, remove the request
|
|
if ( data.msg === 'LOGIN-REMOVE' ) {
|
|
var css_zap = 'html { -webkit-transition: margin-top 1s; transition: margin-top 1s; } /* 9001 */ html { margin-top: 0 !important; } * html body { margin-top: 0 !important; } @media screen and ( max-width: 782px ) { html { margin-top: 0 !important; } * html body { margin-top: 0 !important; } }';
|
|
var style_zap = document.createElement( 'style' );
|
|
style_zap.type = 'text/css';
|
|
style_zap.appendChild( document.createTextNode( css_zap ) );
|
|
document.body.appendChild( style_zap );
|
|
|
|
var e = document.getElementById( 'wpcom_request_access_iframe' );
|
|
e.parentNode.removeChild( e );
|
|
|
|
document.cookie = 'wordpress_com_login_access=denied; path=/; max-age=31536000';
|
|
|
|
return;
|
|
}
|
|
|
|
// Safari ITP
|
|
if ( data.msg === 'REQUEST_ACCESS' ) {
|
|
console.log( 'request access: safari' );
|
|
|
|
// Check ITP iframe enable/disable knob
|
|
if ( wpcom_remote_login_extra_auth !== 'safari_itp_iframe' ) {
|
|
return;
|
|
}
|
|
|
|
// If we are in a "private window" there is no ITP.
|
|
var private_window = false;
|
|
try {
|
|
var opendb = window.openDatabase( null, null, null, null );
|
|
} catch( e ) {
|
|
private_window = true;
|
|
}
|
|
|
|
if ( private_window ) {
|
|
console.log( 'private window' );
|
|
return;
|
|
}
|
|
|
|
var iframe = document.createElement( 'iframe' );
|
|
iframe.id = 'wpcom_request_access_iframe';
|
|
iframe.setAttribute( 'scrolling', 'no' );
|
|
iframe.setAttribute( 'sandbox', 'allow-storage-access-by-user-activation allow-scripts allow-same-origin allow-top-navigation-by-user-activation' );
|
|
iframe.src = 'https://r-login.wordpress.com/remote-login.php?wpcom_remote_login=request_access&origin=' + encodeURIComponent( data.origin ) + '&wpcomid=' + encodeURIComponent( data.wpcomid );
|
|
|
|
var css = 'html { -webkit-transition: margin-top 1s; transition: margin-top 1s; } /* 9001 */ html { margin-top: 46px !important; } * html body { margin-top: 46px !important; } @media screen and ( max-width: 660px ) { html { margin-top: 71px !important; } * html body { margin-top: 71px !important; } #wpcom_request_access_iframe { display: block; height: 71px !important; } } #wpcom_request_access_iframe { border: 0px; height: 46px; position: fixed; top: 0; left: 0; width: 100%; min-width: 100%; z-index: 99999; background: #23282d; } ';
|
|
|
|
var style = document.createElement( 'style' );
|
|
style.type = 'text/css';
|
|
style.id = 'wpcom_request_access_styles';
|
|
style.appendChild( document.createTextNode( css ) );
|
|
document.body.appendChild( style );
|
|
|
|
document.body.appendChild( iframe );
|
|
}
|
|
|
|
if ( data.msg === 'DONE' ) {
|
|
wpcom_remote_login_final_cleanup();
|
|
}
|
|
}
|
|
}, false );
|
|
|
|
// Inject the remote login iframe after the page has had a chance to load
|
|
// more critical resources
|
|
window.addEventListener( "DOMContentLoaded", function( e ) {
|
|
var iframe = document.createElement( "iframe" );
|
|
iframe.style.display = "none";
|
|
iframe.setAttribute( "scrolling", "no" );
|
|
iframe.setAttribute( "id", "wpcom_remote_login_key" );
|
|
iframe.src = "https://r-login.wordpress.com/remote-login.php"
|
|
+ "?wpcom_remote_login=key"
|
|
+ "&origin=aHR0cHM6Ly9zdXJmaW5nY29tcGxleGl0eS5ibG9n"
|
|
+ "&wpcomid=30291541"
|
|
+ "&time=" + Math.floor( Date.now() / 1000 );
|
|
document.body.appendChild( iframe );
|
|
}, false );
|
|
</script>
|
|
<link rel='dns-prefetch' href='//s2.wp.com' />
|
|
<link rel='dns-prefetch' href='//widgets.wp.com' />
|
|
<link rel='dns-prefetch' href='//s1.wp.com' />
|
|
<link rel='dns-prefetch' href='//s0.wp.com' />
|
|
<link rel="alternate" type="application/rss+xml" title="Surfing Complexity » Feed" href="https://surfingcomplexity.blog/feed/" />
|
|
<link rel="alternate" type="application/rss+xml" title="Surfing Complexity » Comments Feed" href="https://surfingcomplexity.blog/comments/feed/" />
|
|
<link rel="alternate" type="application/rss+xml" title="Surfing Complexity » Omnipresent availability risks in cloud software Comments Feed" href="https://surfingcomplexity.blog/2026/08/29/omnipresent-availability-risks-in-cloud-software/feed/" />
|
|
<script type="text/javascript">
|
|
/* <![CDATA[ */
|
|
function addLoadEvent(func) {
|
|
var oldonload = window.onload;
|
|
if (typeof window.onload != 'function') {
|
|
window.onload = func;
|
|
} else {
|
|
window.onload = function () {
|
|
oldonload();
|
|
func();
|
|
}
|
|
}
|
|
}
|
|
/* ]]> */
|
|
</script>
|
|
<style id="wp-img-auto-sizes-contain-inline-css">
|
|
img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}
|
|
/*# sourceURL=wp-img-auto-sizes-contain-inline-css */
|
|
</style>
|
|
<link crossorigin='anonymous' rel='stylesheet' id='all-css-2-1' href='/_static/??-eJxtjEsKgDAMBS9kjbqwuBDPUtog9o9J8fpaEQSRBw8GhoEjC50iY2QIRWRf1i0SWOSstHsYQkr1TPFIsKNXjEbkRPyhVhM18J/0m8M3fFPVlzD3UnbTtWG0J2CTNNk=&cssminify=yes' type='text/css' 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;
|
|
}
|
|
/*# sourceURL=wp-emoji-styles-inline-css */
|
|
</style>
|
|
<style id="wp-block-library-inline-css">
|
|
:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}:root .has-text-align-center{text-align:center}:root .has-text-align-left{text-align:left}:root .has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-break:normal!important}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style^=border-color],[style*=";border-color"],[style*="; border-color"]){border-style:solid}html :where([style^=border-top-color],[style*=";border-top-color"],[style*="; border-top-color"]){border-top-style:solid}html :where([style^=border-right-color],[style*=";border-right-color"],[style*="; border-right-color"]){border-right-style:solid}html :where([style^=border-bottom-color],[style*=";border-bottom-color"],[style*="; border-bottom-color"]){border-bottom-style:solid}html :where([style^=border-left-color],[style*=";border-left-color"],[style*="; border-left-color"]){border-left-style:solid}html :where([style^=border-width],[style*=";border-width"],[style*="; border-width"]){border-style:solid}html :where([style^=border-top-width],[style*=";border-top-width"],[style*="; border-top-width"]){border-top-style:solid}html :where([style^=border-right-width],[style*=";border-right-width"],[style*="; border-right-width"]){border-right-style:solid}html :where([style^=border-bottom-width],[style*=";border-bottom-width"],[style*="; border-bottom-width"]){border-bottom-style:solid}html :where([style^=border-left-width],[style*=";border-left-width"],[style*="; border-left-width"]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}}
|
|
|
|
/*# sourceURL=/wp-content/plugins/gutenberg-core/v24.0.0/build/styles/block-library/common.min.css */
|
|
</style>
|
|
<style id="wp-block-heading-inline-css">
|
|
h1:where(.wp-block-heading).has-background,h2:where(.wp-block-heading).has-background,h3:where(.wp-block-heading).has-background,h4:where(.wp-block-heading).has-background,h5:where(.wp-block-heading).has-background,h6:where(.wp-block-heading).has-background{padding:var(--wp--style--block-background-padding,1.25em 2.375em)}h1.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h1.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h2.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h2.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h3.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h3.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h4.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h4.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h5.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h5.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h6.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h6.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]){rotate:180deg}
|
|
/*# sourceURL=/wp-content/plugins/gutenberg-core/v24.0.0/build/styles/block-library/heading/style.min.css */
|
|
</style>
|
|
<style id="wp-block-image-inline-css">
|
|
.wp-block-image>a,.wp-block-image>figure>a{display:inline-block}.wp-block-image img{box-sizing:border-box;height:auto;max-width:100%;vertical-align:bottom}@media not (prefers-reduced-motion){.wp-block-image img.hide{visibility:hidden}.wp-block-image img.show{animation:show-content-image .4s}}.wp-block-image[style*=border-radius] img,.wp-block-image[style*=border-radius]>a{border-radius:inherit}.wp-block-image.has-custom-border img{box-sizing:border-box}.wp-block-image.aligncenter{text-align:center}.wp-block-image.alignfull>a,.wp-block-image.alignwide>a{width:100%}.wp-block-image.alignfull img,.wp-block-image.alignwide img{height:auto;width:100%}.wp-block-image .aligncenter,.wp-block-image .alignleft,.wp-block-image .alignright,.wp-block-image.aligncenter,.wp-block-image.alignleft,.wp-block-image.alignright{display:table}.wp-block-image .aligncenter>figcaption,.wp-block-image .alignleft>figcaption,.wp-block-image .alignright>figcaption,.wp-block-image.aligncenter>figcaption,.wp-block-image.alignleft>figcaption,.wp-block-image.alignright>figcaption{caption-side:bottom;display:table-caption}.wp-block-image .alignleft{float:left;margin:.5em 1em .5em 0}.wp-block-image .alignright{float:right;margin:.5em 0 .5em 1em}.wp-block-image .aligncenter{margin-left:auto;margin-right:auto}.wp-block-image :where(figcaption){margin-bottom:1em;margin-top:.5em}.wp-block-image.is-style-circle-mask img{border-radius:9999px}@supports ((-webkit-mask-image:none) or (mask-image:none)) or (-webkit-mask-image:none){.wp-block-image.is-style-circle-mask img{border-radius:0;-webkit-mask-image:url('data:image/svg+xml;utf8,<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="50"/></svg>');mask-image:url('data:image/svg+xml;utf8,<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="50"/></svg>');mask-mode:alpha;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}}:root :where(.wp-block-image.is-style-rounded img,.wp-block-image .is-style-rounded img){border-radius:9999px}.wp-block-image figure{margin:0}.wp-lightbox-container{display:flex;flex-direction:column;position:relative}.wp-lightbox-container img{cursor:zoom-in}.wp-lightbox-container img:hover+button{opacity:1}.wp-lightbox-container button{align-items:center;backdrop-filter:blur(16px) saturate(180%);background-color:rgba(90,90,90,.25);border:none;border-radius:4px;cursor:zoom-in;display:flex;height:20px;justify-content:center;opacity:0;padding:0;position:absolute;right:16px;text-align:center;top:16px;width:20px;z-index:100}@media not (prefers-reduced-motion){.wp-lightbox-container button{transition:opacity .2s ease}}.wp-lightbox-container button:focus-visible{outline:3px auto rgba(90,90,90,.25);outline:3px auto -webkit-focus-ring-color;outline-offset:3px}.wp-lightbox-container button:hover{cursor:pointer;opacity:1}.wp-lightbox-container button:focus{opacity:1}.wp-lightbox-container button:focus,.wp-lightbox-container button:hover,.wp-lightbox-container button:not(:hover):not(:active):not(.has-background){background-color:rgba(90,90,90,.25);border:none}.wp-lightbox-overlay{box-sizing:border-box;cursor:zoom-out;height:100vh;left:0;overflow:hidden;position:fixed;top:0;visibility:hidden;width:100%;z-index:100000}.wp-lightbox-overlay .wp-lightbox-close-button{align-items:center;cursor:pointer;display:flex;font-family:inherit;gap:8px;justify-content:center;line-height:1;min-height:40px;min-width:40px;padding:0 4px;position:absolute;right:calc(env(safe-area-inset-right) + 16px);top:calc(env(safe-area-inset-top) + 16px);z-index:5000000}.wp-lightbox-overlay .wp-lightbox-close-button:focus,.wp-lightbox-overlay .wp-lightbox-close-button:hover,.wp-lightbox-overlay .wp-lightbox-close-button:not(:hover):not(:active):not(.has-background){background:none;border:none}.wp-lightbox-overlay .wp-lightbox-close-button:has(.wp-lightbox-close-text:not([hidden])) .wp-lightbox-close-icon svg{height:1em;width:1em}.wp-lightbox-overlay .wp-lightbox-close-icon svg{display:block}.wp-lightbox-overlay .wp-lightbox-navigation-button-next,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev{align-items:center;bottom:16px;cursor:pointer;display:flex;font-family:inherit;gap:4px;justify-content:center;line-height:1;min-height:40px;min-width:40px;padding:0 8px;position:absolute;z-index:2000002}.wp-lightbox-overlay .wp-lightbox-navigation-button-next[hidden],.wp-lightbox-overlay .wp-lightbox-navigation-button-prev[hidden]{display:none}@media (min-width:960px){.wp-lightbox-overlay .wp-lightbox-navigation-button-next,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev{bottom:50%;transform:translateY(-50%)}}.wp-lightbox-overlay .wp-lightbox-navigation-button-next:focus,.wp-lightbox-overlay .wp-lightbox-navigation-button-next:hover,.wp-lightbox-overlay .wp-lightbox-navigation-button-next:not(:hover):not(:active):not(.has-background),.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:focus,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:hover,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:not(:hover):not(:active):not(.has-background){background:none;border:none;padding:0 8px}.wp-lightbox-overlay .wp-lightbox-navigation-button-next:has(.wp-lightbox-navigation-text:not([hidden])) .wp-lightbox-navigation-icon svg,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:has(.wp-lightbox-navigation-text:not([hidden])) .wp-lightbox-navigation-icon svg{display:block;height:1.5em;width:1.5em}.wp-lightbox-overlay .wp-lightbox-navigation-button-prev{left:calc(env(safe-area-inset-left) + 16px)}.wp-lightbox-overlay .wp-lightbox-navigation-button-next{right:calc(env(safe-area-inset-right) + 16px)}.wp-lightbox-overlay .wp-lightbox-navigation-icon svg{vertical-align:middle}.wp-lightbox-overlay .lightbox-image-container{height:var(--wp--lightbox-container-height);left:50%;overflow:hidden;position:absolute;top:50%;transform:translate(-50%,-50%);transform-origin:top left;width:var(--wp--lightbox-container-width);z-index:2000001}.wp-lightbox-overlay .wp-block-image{align-items:center;box-sizing:border-box;display:flex;height:100%;justify-content:center;margin:0;position:relative;transform-origin:0 0;width:100%;z-index:3000000}.wp-lightbox-overlay .wp-block-image img{height:var(--wp--lightbox-image-height);min-height:var(--wp--lightbox-image-height);min-width:var(--wp--lightbox-image-width);width:var(--wp--lightbox-image-width)}.wp-lightbox-overlay .wp-block-image figcaption{display:none}.wp-lightbox-overlay button{background:none;border:none}.wp-lightbox-overlay .scrim{background-color:#fff;height:100%;opacity:.9;position:absolute;width:100%;z-index:2000000}.wp-lightbox-overlay.active{visibility:visible}@media not (prefers-reduced-motion){.wp-lightbox-overlay.active{animation:turn-on-visibility .25s both}.wp-lightbox-overlay.active img{animation:turn-on-visibility .35s both}.wp-lightbox-overlay.show-closing-animation:not(.active){animation:turn-off-visibility .35s both}.wp-lightbox-overlay.show-closing-animation:not(.active) img{animation:turn-off-visibility .25s both}.wp-lightbox-overlay.zoom.active{animation:none;opacity:1;visibility:visible}.wp-lightbox-overlay.zoom.active .lightbox-image-container{animation:lightbox-zoom-in .4s}.wp-lightbox-overlay.zoom.active .lightbox-image-container img{animation:none}.wp-lightbox-overlay.zoom.active .scrim{animation:turn-on-visibility .4s forwards}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active){animation:none}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .lightbox-image-container{animation:lightbox-zoom-out .4s}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .lightbox-image-container img{animation:none}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .scrim{animation:turn-off-visibility .4s forwards}}@keyframes show-content-image{0%{visibility:hidden}99%{visibility:hidden}to{visibility:visible}}@keyframes turn-on-visibility{0%{opacity:0}to{opacity:1}}@keyframes turn-off-visibility{0%{opacity:1;visibility:visible}99%{opacity:0;visibility:visible}to{opacity:0;visibility:hidden}}@keyframes lightbox-zoom-in{0%{transform:translate(calc((-100vw + var(--wp--lightbox-scrollbar-width))/2 + var(--wp--lightbox-initial-left-position)),calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale))}to{transform:translate(-50%,-50%) scale(1)}}@keyframes lightbox-zoom-out{0%{transform:translate(-50%,-50%) scale(1);visibility:visible}99%{visibility:visible}to{transform:translate(calc((-100vw + var(--wp--lightbox-scrollbar-width))/2 + var(--wp--lightbox-initial-left-position)),calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale));visibility:hidden}}
|
|
/*# sourceURL=/wp-content/plugins/gutenberg-core/v24.0.0/build/styles/block-library/image/style.min.css */
|
|
</style>
|
|
<style id="wp-block-image-theme-inline-css">
|
|
:root :where(.wp-block-image figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme :root :where(.wp-block-image figcaption){color:hsla(0,0%,100%,.65)}.wp-block-image{margin:0 0 1em}
|
|
/*# sourceURL=/wp-content/plugins/gutenberg-core/v24.0.0/build/styles/block-library/image/theme.min.css */
|
|
</style>
|
|
<style id="wp-block-latest-posts-inline-css">
|
|
.wp-block-latest-posts{box-sizing:border-box}.wp-block-latest-posts.alignleft{margin-right:2em}.wp-block-latest-posts.alignright{margin-left:2em}.wp-block-latest-posts.wp-block-latest-posts__list{list-style:none}.wp-block-latest-posts.wp-block-latest-posts__list li{clear:both;overflow-wrap:break-word}.wp-block-latest-posts.is-grid:not(.is-layout-grid){display:flex;flex-wrap:wrap}.wp-block-latest-posts.is-grid:not(.is-layout-grid) li{margin:0 1.25em 1.25em 0;width:100%}@media (min-width:600px){.wp-block-latest-posts.columns-2:not(.is-layout-grid) li{width:calc(50% - .625em)}.wp-block-latest-posts.columns-2:not(.is-layout-grid) li:nth-child(2n){margin-right:0}.wp-block-latest-posts.columns-3:not(.is-layout-grid) li{width:calc(33.33333% - .83333em)}.wp-block-latest-posts.columns-3:not(.is-layout-grid) li:nth-child(3n){margin-right:0}.wp-block-latest-posts.columns-4:not(.is-layout-grid) li{width:calc(25% - .9375em)}.wp-block-latest-posts.columns-4:not(.is-layout-grid) li:nth-child(4n){margin-right:0}.wp-block-latest-posts.columns-5:not(.is-layout-grid) li{width:calc(20% - 1em)}.wp-block-latest-posts.columns-5:not(.is-layout-grid) li:nth-child(5n){margin-right:0}.wp-block-latest-posts.columns-6:not(.is-layout-grid) li{width:calc(16.66667% - 1.04167em)}.wp-block-latest-posts.columns-6:not(.is-layout-grid) li:nth-child(6n){margin-right:0}}@media (max-width:600px){.wp-block-latest-posts-is-layout-grid[class*=columns-]:not(.has-native-responsive-grid){grid-template-columns:1fr}}:root :where(.wp-block-latest-posts.is-grid){padding:0}:root :where(.wp-block-latest-posts.wp-block-latest-posts__list){padding-left:0}.wp-block-latest-posts__post-author,.wp-block-latest-posts__post-date{display:block;font-size:.8125em}.wp-block-latest-posts__post-excerpt,.wp-block-latest-posts__post-full-content{margin-bottom:1em;margin-top:.5em}.wp-block-latest-posts__featured-image a{display:inline-block}.wp-block-latest-posts__featured-image img{height:auto;max-width:100%;width:auto}.wp-block-latest-posts__featured-image.alignleft{float:left;margin-right:1em}.wp-block-latest-posts__featured-image.alignright{float:right;margin-left:1em}.wp-block-latest-posts__featured-image.aligncenter{margin-bottom:1em;text-align:center}
|
|
/*# sourceURL=/wp-content/plugins/gutenberg-core/v24.0.0/build/styles/block-library/latest-posts/style.min.css */
|
|
</style>
|
|
<style id="wp-block-list-inline-css">
|
|
ol,ul{box-sizing:border-box}:root :where(.wp-block-list.has-background){padding:var(--wp--style--block-background-padding,1.25em 2.375em)}
|
|
/*# sourceURL=/wp-content/plugins/gutenberg-core/v24.0.0/build/styles/block-library/list/style.min.css */
|
|
</style>
|
|
<style id="wp-block-paragraph-inline-css">
|
|
.is-small-text{font-size:.875em}.is-regular-text{font-size:1em}.is-large-text{font-size:2.25em}.is-larger-text{font-size:3em}.has-drop-cap:not(:focus):first-letter{float:left;font-size:8.4em;font-style:normal;font-weight:100;line-height:.68;margin:.05em .1em 0 0;text-transform:uppercase}body.rtl .has-drop-cap:not(:focus):first-letter{float:none;margin-left:.1em}p.has-drop-cap.has-background{overflow:hidden}:root :where(p.has-background){padding:var(--wp--style--block-background-padding,1.25em 2.375em)}:where(p.has-text-color:not(.has-link-color)) a{color:inherit}p.has-text-align-left[style*="writing-mode:vertical-lr"],p.has-text-align-right[style*="writing-mode:vertical-rl"]{rotate:180deg}
|
|
/*# sourceURL=/wp-content/plugins/gutenberg-core/v24.0.0/build/styles/block-library/paragraph/style.min.css */
|
|
</style>
|
|
<style id="wp-block-search-inline-css">
|
|
.wp-block-search__button{margin-left:10px;word-break:normal}.wp-block-search__button.has-icon{line-height:0}.wp-block-search__button svg{fill:currentColor;height:1.25em;min-height:24px;min-width:24px;vertical-align:text-bottom;width:1.25em}:where(.wp-block-search__button){border:1px solid #ccc;padding:6px 10px}.wp-block-search__inside-wrapper{display:flex;flex:auto;flex-wrap:nowrap;max-width:100%}:where(.wp-block-search__label){width:100%}.wp-block-search.wp-block-search__button-only .wp-block-search__button{box-sizing:border-box;display:flex;flex-shrink:0;justify-content:center;margin-left:0;max-width:100%}.wp-block-search.wp-block-search__button-only .wp-block-search__inside-wrapper{min-width:0!important;transition-property:width}.wp-block-search.wp-block-search__button-only .wp-block-search__input{flex-basis:100%;transition-duration:.3s}.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden,.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden .wp-block-search__inside-wrapper{overflow:hidden}.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden .wp-block-search__input{border-left-width:0!important;border-right-width:0!important;flex-basis:0;flex-grow:0;margin:0;min-width:0!important;padding-left:0!important;padding-right:0!important;width:0!important}:where(.wp-block-search__input){appearance:none;border:1px solid #949494;flex-grow:1;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin-left:0;margin-right:0;min-width:3rem;padding:8px;text-decoration:unset!important;text-transform:inherit}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper){background-color:#fff;border:1px solid #949494;box-sizing:border-box;padding:4px}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) .wp-block-search__input{border:none;border-radius:0;padding:0 4px}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) .wp-block-search__input:focus{outline:none}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) :where(.wp-block-search__button){padding:4px 8px}.wp-block-search.aligncenter .wp-block-search__inside-wrapper{margin:auto}.wp-block[data-align=right] .wp-block-search.wp-block-search__button-only .wp-block-search__inside-wrapper{float:right}
|
|
/*# sourceURL=/wp-content/plugins/gutenberg-core/v24.0.0/build/styles/block-library/search/style.min.css */
|
|
</style>
|
|
<style id="wp-block-search-theme-inline-css">
|
|
:where(.wp-block-search .wp-block-search__label){font-weight:700}.wp-block-search__button{border:1px solid #ccc;padding:.375em .625em}
|
|
/*# sourceURL=/wp-content/plugins/gutenberg-core/v24.0.0/build/styles/block-library/search/theme.min.css */
|
|
</style>
|
|
<style id="wp-block-library-inline-css-extra">
|
|
.has-text-align-justify {
|
|
text-align:justify;
|
|
}
|
|
.has-text-align-justify{text-align:justify;}
|
|
/*# sourceURL=wp-block-library-inline-css */
|
|
</style>
|
|
|
|
<style id="classic-theme-styles-inline-css">
|
|
.wp-block-button__link{background-color:#32373c;border-radius:9999px;box-shadow:none;color:#fff;font-size:1.125em;padding:calc(.667em + 2px) calc(1.333em + 2px);text-decoration:none}.wp-block-file__button{background:#32373c;color:#fff}.wp-block-accordion-heading{margin:0}.wp-block-accordion-heading__toggle{background-color:inherit!important;color:inherit!important}.wp-block-accordion-heading__toggle:not(:focus-visible){outline:none}.wp-block-accordion-heading__toggle:focus,.wp-block-accordion-heading__toggle:hover{background-color:inherit!important;border:none;box-shadow:none;color:inherit;padding:var(--wp--preset--spacing--20,1em) 0;text-decoration:none}.wp-block-accordion-heading__toggle:focus-visible{outline:auto;outline-offset:0}.wp-block-tab:not(.has-text-color){color:inherit!important}.wp-block-tab:not(.has-background){background-color:inherit!important}.wp-block-tab:focus,.wp-block-tab:hover{text-decoration:none}.wp-block-tab:focus-visible{outline:auto;outline-offset:0}
|
|
/*# sourceURL=/wp-content/plugins/gutenberg-core/v24.0.0/build/styles/block-library/classic.min.css */
|
|
</style>
|
|
|
|
<style id="coblocks-inline-format-inline-css">
|
|
.uppercase{text-transform:uppercase}
|
|
/*# sourceURL=coblocks-inline-format-inline-css */
|
|
</style>
|
|
<link crossorigin='anonymous' rel='stylesheet' id='all-css-12-1' href='/_static/??-eJx9jEEOAiEQBD/kQECjeDC+ZWEnijIwYWA3/l72op689KFTVXplCCU3zE1z6reYRYfiUwlP0VYZpwxIJE4IFRd10HOU9iFA2iuhCiI7/ROiDt9WxfETT20jCOc4YUIa2D9t5eGA91xRBMZS7ATtPkTZvCtdzNEZt7f2fHq8Afl7R7w=&cssminify=yes' type='text/css' media='all' />
|
|
<style id="global-styles-inline-css">
|
|
:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #fff;--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--medium-blue: #0087be;--wp--preset--color--bright-blue: #00aadc;--wp--preset--color--dark-gray: #4d4d4b;--wp--preset--color--light-gray: #b3b3b1;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 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,rgb(252,185,0) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--font-family--albert-sans: 'Albert Sans', sans-serif;--wp--preset--font-family--alegreya: Alegreya, serif;--wp--preset--font-family--arvo: Arvo, serif;--wp--preset--font-family--bodoni-moda: 'Bodoni Moda', serif;--wp--preset--font-family--bricolage-grotesque: 'Bricolage Grotesque', sans-serif;--wp--preset--font-family--cabin: Cabin, sans-serif;--wp--preset--font-family--chivo: Chivo, sans-serif;--wp--preset--font-family--commissioner: Commissioner, sans-serif;--wp--preset--font-family--cormorant: Cormorant, serif;--wp--preset--font-family--courier-prime: 'Courier Prime', monospace;--wp--preset--font-family--crimson-pro: 'Crimson Pro', serif;--wp--preset--font-family--dm-mono: 'DM Mono', monospace;--wp--preset--font-family--dm-sans: 'DM Sans', sans-serif;--wp--preset--font-family--dm-serif-display: 'DM Serif Display', serif;--wp--preset--font-family--domine: Domine, serif;--wp--preset--font-family--eb-garamond: 'EB Garamond', serif;--wp--preset--font-family--epilogue: Epilogue, sans-serif;--wp--preset--font-family--fahkwang: Fahkwang, sans-serif;--wp--preset--font-family--figtree: Figtree, sans-serif;--wp--preset--font-family--fira-sans: 'Fira Sans', sans-serif;--wp--preset--font-family--fjalla-one: 'Fjalla One', sans-serif;--wp--preset--font-family--fraunces: Fraunces, serif;--wp--preset--font-family--gabarito: Gabarito, system-ui;--wp--preset--font-family--ibm-plex-mono: 'IBM Plex Mono', monospace;--wp--preset--font-family--ibm-plex-sans: 'IBM Plex Sans', sans-serif;--wp--preset--font-family--ibarra-real-nova: 'Ibarra Real Nova', serif;--wp--preset--font-family--instrument-serif: 'Instrument Serif', serif;--wp--preset--font-family--inter: Inter, sans-serif;--wp--preset--font-family--josefin-sans: 'Josefin Sans', sans-serif;--wp--preset--font-family--jost: Jost, sans-serif;--wp--preset--font-family--libre-baskerville: 'Libre Baskerville', serif;--wp--preset--font-family--libre-franklin: 'Libre Franklin', sans-serif;--wp--preset--font-family--literata: Literata, serif;--wp--preset--font-family--lora: Lora, serif;--wp--preset--font-family--merriweather: Merriweather, serif;--wp--preset--font-family--montserrat: Montserrat, sans-serif;--wp--preset--font-family--newsreader: Newsreader, serif;--wp--preset--font-family--noto-sans-mono: 'Noto Sans Mono', sans-serif;--wp--preset--font-family--nunito: Nunito, sans-serif;--wp--preset--font-family--open-sans: 'Open Sans', sans-serif;--wp--preset--font-family--overpass: Overpass, sans-serif;--wp--preset--font-family--pt-serif: 'PT Serif', serif;--wp--preset--font-family--petrona: Petrona, serif;--wp--preset--font-family--piazzolla: Piazzolla, serif;--wp--preset--font-family--playfair-display: 'Playfair Display', serif;--wp--preset--font-family--plus-jakarta-sans: 'Plus Jakarta Sans', sans-serif;--wp--preset--font-family--poppins: Poppins, sans-serif;--wp--preset--font-family--raleway: Raleway, sans-serif;--wp--preset--font-family--roboto: Roboto, sans-serif;--wp--preset--font-family--roboto-slab: 'Roboto Slab', serif;--wp--preset--font-family--rubik: Rubik, sans-serif;--wp--preset--font-family--rufina: Rufina, serif;--wp--preset--font-family--sora: Sora, sans-serif;--wp--preset--font-family--source-sans-3: 'Source Sans 3', sans-serif;--wp--preset--font-family--source-serif-4: 'Source Serif 4', serif;--wp--preset--font-family--space-mono: 'Space Mono', monospace;--wp--preset--font-family--syne: Syne, sans-serif;--wp--preset--font-family--texturina: Texturina, serif;--wp--preset--font-family--urbanist: Urbanist, sans-serif;--wp--preset--font-family--work-sans: 'Work Sans', 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 rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}.wp-block-button{--wp--preset--dimension--25: 25%;--wp--preset--dimension--50: 50%;--wp--preset--dimension--75: 75%;--wp--preset--dimension--100: 100%;}:where(body) { margin: 0; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.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-medium-blue-color{color: var(--wp--preset--color--medium-blue) !important;}.has-bright-blue-color{color: var(--wp--preset--color--bright-blue) !important;}.has-dark-gray-color{color: var(--wp--preset--color--dark-gray) !important;}.has-light-gray-color{color: var(--wp--preset--color--light-gray) !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-medium-blue-background-color{background-color: var(--wp--preset--color--medium-blue) !important;}.has-bright-blue-background-color{background-color: var(--wp--preset--color--bright-blue) !important;}.has-dark-gray-background-color{background-color: var(--wp--preset--color--dark-gray) !important;}.has-light-gray-background-color{background-color: var(--wp--preset--color--light-gray) !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-medium-blue-border-color{border-color: var(--wp--preset--color--medium-blue) !important;}.has-bright-blue-border-color{border-color: var(--wp--preset--color--bright-blue) !important;}.has-dark-gray-border-color{border-color: var(--wp--preset--color--dark-gray) !important;}.has-light-gray-border-color{border-color: var(--wp--preset--color--light-gray) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}.has-albert-sans-font-family{font-family: var(--wp--preset--font-family--albert-sans) !important;}.has-alegreya-font-family{font-family: var(--wp--preset--font-family--alegreya) !important;}.has-arvo-font-family{font-family: var(--wp--preset--font-family--arvo) !important;}.has-bodoni-moda-font-family{font-family: var(--wp--preset--font-family--bodoni-moda) !important;}.has-bricolage-grotesque-font-family{font-family: var(--wp--preset--font-family--bricolage-grotesque) !important;}.has-cabin-font-family{font-family: var(--wp--preset--font-family--cabin) !important;}.has-chivo-font-family{font-family: var(--wp--preset--font-family--chivo) !important;}.has-commissioner-font-family{font-family: var(--wp--preset--font-family--commissioner) !important;}.has-cormorant-font-family{font-family: var(--wp--preset--font-family--cormorant) !important;}.has-courier-prime-font-family{font-family: var(--wp--preset--font-family--courier-prime) !important;}.has-crimson-pro-font-family{font-family: var(--wp--preset--font-family--crimson-pro) !important;}.has-dm-mono-font-family{font-family: var(--wp--preset--font-family--dm-mono) !important;}.has-dm-sans-font-family{font-family: var(--wp--preset--font-family--dm-sans) !important;}.has-dm-serif-display-font-family{font-family: var(--wp--preset--font-family--dm-serif-display) !important;}.has-domine-font-family{font-family: var(--wp--preset--font-family--domine) !important;}.has-eb-garamond-font-family{font-family: var(--wp--preset--font-family--eb-garamond) !important;}.has-epilogue-font-family{font-family: var(--wp--preset--font-family--epilogue) !important;}.has-fahkwang-font-family{font-family: var(--wp--preset--font-family--fahkwang) !important;}.has-figtree-font-family{font-family: var(--wp--preset--font-family--figtree) !important;}.has-fira-sans-font-family{font-family: var(--wp--preset--font-family--fira-sans) !important;}.has-fjalla-one-font-family{font-family: var(--wp--preset--font-family--fjalla-one) !important;}.has-fraunces-font-family{font-family: var(--wp--preset--font-family--fraunces) !important;}.has-gabarito-font-family{font-family: var(--wp--preset--font-family--gabarito) !important;}.has-ibm-plex-mono-font-family{font-family: var(--wp--preset--font-family--ibm-plex-mono) !important;}.has-ibm-plex-sans-font-family{font-family: var(--wp--preset--font-family--ibm-plex-sans) !important;}.has-ibarra-real-nova-font-family{font-family: var(--wp--preset--font-family--ibarra-real-nova) !important;}.has-instrument-serif-font-family{font-family: var(--wp--preset--font-family--instrument-serif) !important;}.has-inter-font-family{font-family: var(--wp--preset--font-family--inter) !important;}.has-josefin-sans-font-family{font-family: var(--wp--preset--font-family--josefin-sans) !important;}.has-jost-font-family{font-family: var(--wp--preset--font-family--jost) !important;}.has-libre-baskerville-font-family{font-family: var(--wp--preset--font-family--libre-baskerville) !important;}.has-libre-franklin-font-family{font-family: var(--wp--preset--font-family--libre-franklin) !important;}.has-literata-font-family{font-family: var(--wp--preset--font-family--literata) !important;}.has-lora-font-family{font-family: var(--wp--preset--font-family--lora) !important;}.has-merriweather-font-family{font-family: var(--wp--preset--font-family--merriweather) !important;}.has-montserrat-font-family{font-family: var(--wp--preset--font-family--montserrat) !important;}.has-newsreader-font-family{font-family: var(--wp--preset--font-family--newsreader) !important;}.has-noto-sans-mono-font-family{font-family: var(--wp--preset--font-family--noto-sans-mono) !important;}.has-nunito-font-family{font-family: var(--wp--preset--font-family--nunito) !important;}.has-open-sans-font-family{font-family: var(--wp--preset--font-family--open-sans) !important;}.has-overpass-font-family{font-family: var(--wp--preset--font-family--overpass) !important;}.has-pt-serif-font-family{font-family: var(--wp--preset--font-family--pt-serif) !important;}.has-petrona-font-family{font-family: var(--wp--preset--font-family--petrona) !important;}.has-piazzolla-font-family{font-family: var(--wp--preset--font-family--piazzolla) !important;}.has-playfair-display-font-family{font-family: var(--wp--preset--font-family--playfair-display) !important;}.has-plus-jakarta-sans-font-family{font-family: var(--wp--preset--font-family--plus-jakarta-sans) !important;}.has-poppins-font-family{font-family: var(--wp--preset--font-family--poppins) !important;}.has-raleway-font-family{font-family: var(--wp--preset--font-family--raleway) !important;}.has-roboto-font-family{font-family: var(--wp--preset--font-family--roboto) !important;}.has-roboto-slab-font-family{font-family: var(--wp--preset--font-family--roboto-slab) !important;}.has-rubik-font-family{font-family: var(--wp--preset--font-family--rubik) !important;}.has-rufina-font-family{font-family: var(--wp--preset--font-family--rufina) !important;}.has-sora-font-family{font-family: var(--wp--preset--font-family--sora) !important;}.has-source-sans-3-font-family{font-family: var(--wp--preset--font-family--source-sans-3) !important;}.has-source-serif-4-font-family{font-family: var(--wp--preset--font-family--source-serif-4) !important;}.has-space-mono-font-family{font-family: var(--wp--preset--font-family--space-mono) !important;}.has-syne-font-family{font-family: var(--wp--preset--font-family--syne) !important;}.has-texturina-font-family{font-family: var(--wp--preset--font-family--texturina) !important;}.has-urbanist-font-family{font-family: var(--wp--preset--font-family--urbanist) !important;}.has-work-sans-font-family{font-family: var(--wp--preset--font-family--work-sans) !important;}
|
|
:where(.wp-block-latest-posts.is-layout-flex){gap: 1.25em;}:where(.wp-block-latest-posts.is-layout-grid){gap: 1.25em;}
|
|
/*# sourceURL=global-styles-inline-css */
|
|
</style>
|
|
|
|
<link crossorigin='anonymous' rel='stylesheet' id='all-css-14-1' href='/wp-content/mu-plugins/jetpack-mu-wpcom-plugin/moon/jetpack_vendor/automattic/jetpack-mu-wpcom/src/build/verbum-comments/verbum-comments.css?m=1790593351i&cssminify=yes' type='text/css' media='all' />
|
|
<link rel='stylesheet' id='verbum-gutenberg-css-css' href='https://widgets.wp.com/verbum-block-editor/block-editor.css?ver=1771405207' media='all' />
|
|
<link crossorigin='anonymous' rel='stylesheet' id='all-css-16-1' href='/_static/??-eJydkNEKwjAMRX/IGh0D7YP4KbLV2GVr09J2DP/ebAgOFB/2Eu59OPcmgSkqE7ggF/Cjim60xBl6LLExw9uDD4HhRmzAImMiIfJvuTc572AVWjr0mCGOLRDfMaIMLkq8o9xhUhXk8nS4BRQEWhfMsKl2PmepVlM0wX9FrN6RUGqsSLt0fuw/yGJQslxTSJ63NurhGkozevWX4+lcaX3Qte5fvXGUcQ==&cssminify=yes' type='text/css' media='all' />
|
|
<link crossorigin='anonymous' rel='stylesheet' id='print-css-17-1' href='/wp-content/mu-plugins/global-print/global-print.css?m=1465851035i&cssminify=yes' type='text/css' media='print' />
|
|
<style id="jetpack-global-styles-frontend-style-inline-css">
|
|
:root { --font-headings: unset; --font-base: unset; --font-headings-default: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif; --font-base-default: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;}
|
|
/*# sourceURL=jetpack-global-styles-frontend-style-inline-css */
|
|
</style>
|
|
<link crossorigin='anonymous' rel='stylesheet' id='all-css-20-1' href='/_static/??-eJyNjcEKAjEMRH/ImhVlqwfxU6TbhrZrmhTTIv69u+JFvHgZ5sHwBh7VeOGG3KB0U6nHzAoztur87cNQRNYInVBBk7tjcCE83zVz3HrVDfxvumb2MPVMAVR8dmRIougX/DhbwrK8pwNEksnROriU884e9+PJDnaYXxwFS20=&cssminify=yes' type='text/css' media='all' />
|
|
<script id="jetpack_related-posts-js-extra">
|
|
var related_posts_js_options = {"post_heading":"h4"};
|
|
//# sourceURL=jetpack_related-posts-js-extra
|
|
</script>
|
|
<script id="wpcom-actionbar-placeholder-js-extra">
|
|
var actionbardata = {"siteID":"30291541","postID":"7912","siteURL":"https://surfingcomplexity.blog","xhrURL":"https://surfingcomplexity.blog/wp-admin/admin-ajax.php","nonce":"21e4bcedd9","isLoggedIn":"","statusMessage":"","subsEmailDefault":"instantly","proxyScriptUrl":"https://s0.wp.com/wp-content/js/wpcom-proxy-request.js?m=1513050504i&ver=20211021","shortlink":"https://wp.me/p236df-23C","i18n":{"followedText":"New posts from this site will now appear in your \u003Ca href=\"https://wordpress.com/reader\"\u003EReader\u003C/a\u003E","foldBar":"Collapse this bar","unfoldBar":"Expand this bar","shortLinkCopied":"Copied to clipboard."}};
|
|
//# sourceURL=wpcom-actionbar-placeholder-js-extra
|
|
</script>
|
|
<script id="jetpack-mu-wpcom-settings-js-before">
|
|
var JETPACK_MU_WPCOM_SETTINGS = {"assetsUrl":"https://s1.wp.com/wp-content/mu-plugins/jetpack-mu-wpcom-plugin/moon/jetpack_vendor/automattic/jetpack-mu-wpcom/src/build/"};
|
|
//# sourceURL=jetpack-mu-wpcom-settings-js-before
|
|
</script>
|
|
<script crossorigin='anonymous' type='text/javascript' src='/_static/??/wp-content/mu-plugins/jetpack-plugin/moon/_inc/build/related-posts/related-posts.min.js,/wp-content/js/rlt-proxy.js?m=1788798821j'></script>
|
|
<script id="rlt-proxy-js-after">
|
|
rltInitialize( {"token":null,"iframeOrigins":["https:\/\/widgets.wp.com"]} );
|
|
//# sourceURL=rlt-proxy-js-after
|
|
</script>
|
|
<link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://lorinhochstein.wordpress.com/xmlrpc.php?rsd" />
|
|
<meta name="generator" content="WordPress.com" />
|
|
<link rel="canonical" href="https://surfingcomplexity.blog/2026/08/29/omnipresent-availability-risks-in-cloud-software/" />
|
|
<link rel='shortlink' href='https://wp.me/p236df-23C' />
|
|
<link rel="alternate" type="application/json+oembed" href="https://public-api.wordpress.com/oembed/?format=json&url=https%3A%2F%2Fsurfingcomplexity.blog%2F2026%2F08%2F29%2Fomnipresent-availability-risks-in-cloud-software%2F&for=wpcom-auto-discovery" /><link rel="alternate" type="application/xml+oembed" href="https://public-api.wordpress.com/oembed/?format=xml&url=https%3A%2F%2Fsurfingcomplexity.blog%2F2026%2F08%2F29%2Fomnipresent-availability-risks-in-cloud-software%2F&for=wpcom-auto-discovery" />
|
|
<!-- Jetpack Open Graph Tags -->
|
|
<meta property="og:type" content="article" />
|
|
<meta property="og:title" content="Omnipresent availability risks in cloud software" />
|
|
<meta property="og:url" content="https://surfingcomplexity.blog/2026/08/29/omnipresent-availability-risks-in-cloud-software/" />
|
|
<meta property="og:description" content="I’m using this post to gather together some common threads I’ve noticed after reading write-ups of major cloud software incidents. By cloud software, I’m referring to software-as-…" />
|
|
<meta property="article:published_time" content="2026-08-29T22:07:04+00:00" />
|
|
<meta property="article:modified_time" content="2026-08-30T00:25:50+00:00" />
|
|
<meta property="og:site_name" content="Surfing Complexity" />
|
|
<meta property="og:image" content="https://surfingcomplexity.blog/wp-content/uploads/2026/08/image-3.png" />
|
|
<meta property="og:image:width" content="2188" />
|
|
<meta property="og:image:height" content="1599" />
|
|
<meta property="og:image:alt" content="" />
|
|
<meta property="og:locale" content="en_US" />
|
|
<meta property="article:publisher" content="https://www.facebook.com/WordPresscom" />
|
|
<meta name="twitter:text:title" content="Omnipresent availability risks in cloud software" />
|
|
<meta name="twitter:image" content="https://surfingcomplexity.blog/wp-content/uploads/2026/08/image-3.png?w=640" />
|
|
<meta name="twitter:card" content="summary_large_image" />
|
|
|
|
<!-- End Jetpack Open Graph Tags -->
|
|
<link rel='openid.server' href='https://surfingcomplexity.blog/?openidserver=1' />
|
|
<link rel='openid.delegate' href='https://surfingcomplexity.blog/' />
|
|
<link rel="search" type="application/opensearchdescription+xml" href="https://surfingcomplexity.blog/osd.xml" title="Surfing Complexity" />
|
|
<link rel="search" type="application/opensearchdescription+xml" href="https://s1.wp.com/opensearch.xml" title="WordPress.com" />
|
|
<link rel="pingback" href="https://surfingcomplexity.blog/xmlrpc.php"> <style type="text/css">
|
|
.recentcomments a {
|
|
display: inline !important;
|
|
padding: 0 !important;
|
|
margin: 0 !important;
|
|
}
|
|
|
|
table.recentcommentsavatartop img.avatar, table.recentcommentsavatarend img.avatar {
|
|
border: 0px;
|
|
margin: 0;
|
|
}
|
|
|
|
table.recentcommentsavatartop a, table.recentcommentsavatarend a {
|
|
border: 0px !important;
|
|
background-color: transparent !important;
|
|
}
|
|
|
|
td.recentcommentsavatarend, td.recentcommentsavatartop {
|
|
padding: 0px 0px 1px 0px;
|
|
margin: 0px;
|
|
}
|
|
|
|
td.recentcommentstextend {
|
|
border: none !important;
|
|
padding: 0px 0px 2px 10px;
|
|
}
|
|
|
|
.rtl td.recentcommentstextend {
|
|
padding: 0px 10px 2px 0px;
|
|
}
|
|
|
|
td.recentcommentstexttop {
|
|
border: none;
|
|
padding: 0px 0px 0px 10px;
|
|
}
|
|
|
|
.rtl td.recentcommentstexttop {
|
|
padding: 0px 10px 0px 0px;
|
|
}
|
|
</style>
|
|
<meta name="description" content="I'm using this post to gather together some common threads I've noticed after reading write-ups of major cloud software incidents. By cloud software, I'm referring to software-as-a-service (do people even say that anymore? in the cloud. This doesn't just apply to cloud providers, although it does apply to them as well. Here's an outline of…" />
|
|
<link rel="icon" href="https://surfingcomplexity.blog/wp-content/uploads/2020/05/surfer_1f3c4.png?w=32" sizes="32x32" />
|
|
<link rel="icon" href="https://surfingcomplexity.blog/wp-content/uploads/2020/05/surfer_1f3c4.png?w=120" sizes="192x192" />
|
|
<link rel="apple-touch-icon" href="https://surfingcomplexity.blog/wp-content/uploads/2020/05/surfer_1f3c4.png?w=120" />
|
|
<meta name="msapplication-TileImage" content="https://surfingcomplexity.blog/wp-content/uploads/2020/05/surfer_1f3c4.png?w=120" />
|
|
<link crossorigin='anonymous' rel='stylesheet' id='all-css-0-5' href='/_static/??-eJyNjMEKhDAMBX9IfaiIXsRPWdxskGqbFNPi7y+CevY4wzA4YkkqiSUh5DL6vDgxrJziTNvFCKqCjxPC1yttBjtc5L0iswLvD0F/2bOB5l2zsX+iW5zDKYx1P3RN07b1sP4BKPs7aw==&cssminify=yes' type='text/css' media='all' />
|
|
|
|
</head>
|
|
|
|
<body class="wp-singular post-template-default single single-post postid-7912 single-format-standard wp-embed-responsive wp-theme-pubindependent-publisher-2 customizer-styles-applied has-sidebar jetpack-reblog-enabled">
|
|
|
|
<div id="page" class="hfeed site">
|
|
<a class="skip-link screen-reader-text" href="#content">Skip to content</a>
|
|
|
|
<div id="hero-header" class="site-hero-section">
|
|
<header id="masthead" class="site-header" role="banner">
|
|
<div class="inner">
|
|
<div class="site-branding">
|
|
|
|
<a class="site-logo-link" href="https://surfingcomplexity.blog/">
|
|
<img referrerpolicy="no-referrer" alt='Unknown's avatar' src='https://0.gravatar.com/avatar/f2641f12e815a54896f8f2ac04660c52efb896e09131390ad2a6f2f5fca81432?s=80&d=identicon&r=G' srcset='https://0.gravatar.com/avatar/f2641f12e815a54896f8f2ac04660c52efb896e09131390ad2a6f2f5fca81432?s=80&d=identicon&r=G 1x, https://0.gravatar.com/avatar/f2641f12e815a54896f8f2ac04660c52efb896e09131390ad2a6f2f5fca81432?s=120&d=identicon&r=G 1.5x, https://0.gravatar.com/avatar/f2641f12e815a54896f8f2ac04660c52efb896e09131390ad2a6f2f5fca81432?s=160&d=identicon&r=G 2x, https://0.gravatar.com/avatar/f2641f12e815a54896f8f2ac04660c52efb896e09131390ad2a6f2f5fca81432?s=240&d=identicon&r=G 3x, https://0.gravatar.com/avatar/f2641f12e815a54896f8f2ac04660c52efb896e09131390ad2a6f2f5fca81432?s=320&d=identicon&r=G 4x' class='avatar avatar-80 site-logo-image' height='80' width='80' loading='eager' decoding='async' /> </a><!-- .site-logo-link -->
|
|
<p class="site-title"><a href="https://surfingcomplexity.blog/" rel="home">Surfing Complexity</a></p>
|
|
<p class="site-description">Lorin Hochstein's ramblings about software, complex systems, and incidents.</p>
|
|
</div><!-- .site-branding -->
|
|
|
|
|
|
|
|
</div><!-- .inner -->
|
|
</header><!-- #masthead -->
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div id="content-wrapper" class="content-wrapper">
|
|
<div id="content" class="site-content">
|
|
|
|
<div id="primary" class="content-area">
|
|
<main id="main" class="site-main" role="main">
|
|
|
|
|
|
|
|
<article id="post-7912" class="post-7912 post type-post status-publish format-standard hentry category-incidents category-resilience category-software category-systems category-uncategorized">
|
|
<header class="entry-header">
|
|
<h1 class="entry-title">Omnipresent availability risks in cloud software</h1> </header><!-- .entry-header --> <div class="entry-meta">
|
|
<span class="byline">
|
|
<a href="https://surfingcomplexity.blog/author/lorinh/" rel="author">Lorin Hochstein</a> </span>
|
|
<span class="cat-links">
|
|
<a href="https://surfingcomplexity.blog/category/systems/incidents/" rel="category tag">incidents</a>, <a href="https://surfingcomplexity.blog/category/resilience/" rel="category tag">resilience</a>, <a href="https://surfingcomplexity.blog/category/software/" rel="category tag">software</a>, <a href="https://surfingcomplexity.blog/category/systems/" rel="category tag">systems</a>, <a href="https://surfingcomplexity.blog/category/uncategorized/" rel="category tag">Uncategorized</a> </span><!-- .cat-links -->
|
|
|
|
|
|
<span class="published-on">
|
|
<time class="entry-date published" datetime="2026-08-29T15:07:04-07:00">August 29, 2026</time><time class="updated" datetime="2026-08-29T17:25:50-07:00">August 29, 2026</time> </span>
|
|
|
|
<span class="word-count">7 Minutes</span> </div><!-- .entry-meta -->
|
|
|
|
<div class="entry-content">
|
|
|
|
<p class="wp-block-paragraph">I’m using this post to gather together some common threads I’ve noticed after reading write-ups of major cloud software incidents. By <em>cloud software</em>, I’m referring to software-as-a-service (do people even say that anymore? in the cloud. This doesn’t just apply to cloud providers, although it does apply to them as well. </p>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">Here’s an outline of the topics in this post:</p>
|
|
|
|
|
|
|
|
<ul class="wp-block-list">
|
|
<li>problem areas
|
|
<ul class="wp-block-list">
|
|
<li>saturation
|
|
<ul class="wp-block-list">
|
|
<li>example: databases</li>
|
|
</ul>
|
|
</li>
|
|
|
|
|
|
|
|
<li>networking (traffic routing failure)
|
|
<ul class="wp-block-list">
|
|
<li>example: DNS</li>
|
|
</ul>
|
|
</li>
|
|
|
|
|
|
|
|
<li>security (deny valid access)
|
|
<ul class="wp-block-list">
|
|
<li>example: SSL certificates</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
|
|
|
|
|
|
<li>essential non-standard changes
|
|
<ul class="wp-block-list">
|
|
<li>mitigating an operational issue</li>
|
|
|
|
|
|
|
|
<li>migration</li>
|
|
</ul>
|
|
</li>
|
|
|
|
|
|
|
|
<li>essential increase in essential complexity
|
|
<ul class="wp-block-list">
|
|
<li>reliability subsystem</li>
|
|
|
|
|
|
|
|
<li>migration</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">I think of all of these as <em>omnipresent availability risks</em>: I think these are fundamentally unavoidable, and will be contributing to software incidents until the end of time; or, at the very least, until the end of my own career in software.</p>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">There are three general areas that most major incidents seem to fall into: saturation, networking, and security. So, let’s start with those.</p>
|
|
|
|
|
|
|
|
<h2 class="wp-block-heading">Saturation</h2>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph"><em>Saturation</em> is probably the topic I talk about most frequently, both <a href="https://surfingcomplexity.blog/?s=saturation">on this blog</a> and elsewhere (e.g.,: the <a href="https://resilienceinsoftware.org/news/11475336">saturation post</a> I wrote for the Resilience in Software Foundation and my <a href="https://youtu.be/PHYCRubnmSM">saturation talk</a> at the Software Should Work conference). The system becomes <em>saturated</em> when it reaches a limit. That’s a pretty generic description, but there are many limits! </p>
|
|
|
|
|
|
|
|
<h3 class="wp-block-heading">Databases</h3>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">Many major incidents involve some system component becoming saturated in one form or another. I personally worry about database saturation the most. That’s because it’s difficult to recover from an overloaded production database. In addition, because database systems are such complex beasts, it can be quite difficult to even determine what the specific performance issue actually is. This is why having in-house database operational expertise is critical.</p>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">Saturation is an omnipresent risk because the finite nature of resources is a hard constraint in the world that we live in. Eventually, some resource in your system is going to run out. </p>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">Example: <a href="https://www.githubstatus.com/incidents/y1t7p9fzrlj2">GitHub Incident, Aug 26, 2026</a></p>
|
|
|
|
|
|
|
|
<h2 class="wp-block-heading">Networking</h2>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">While I prattle on endlessly about saturation, not every major incident involves saturation. You can encounter scenarios where all of your internal subsystems are reporting healthy, but from your customer’s point of view, your site is down: they can’t use it. One way this can happen is if your users can’t even reach your site, and that’s where the networking problem area comes in. </p>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">A networking problem can lead to packets being misrouted. These requests might be <em>black-holed</em> (i.e., silently dropped), or they might be incorrectly routed to a service that doesn’t have the capacity to respond to all of these requests, in which case you’ve got both a network routing issue and a saturation issue.</p>
|
|
|
|
|
|
|
|
<figure class="wp-block-image size-large is-resized"><a href="https://surfingcomplexity.blog/wp-content/uploads/2026/08/image-3.png"><img data-attachment-id="7940" data-permalink="https://surfingcomplexity.blog/2026/08/29/omnipresent-availability-risks-in-cloud-software/image-553/" data-orig-file="https://surfingcomplexity.blog/wp-content/uploads/2026/08/image-3.png" data-orig-size="2188,1599" data-comments-opened="1" data-image-title="image" data-image-description="" data-image-caption="" data-large-file="https://surfingcomplexity.blog/wp-content/uploads/2026/08/image-3.png?w=1024" width="1024" height="748" src="https://surfingcomplexity.blog/wp-content/uploads/2026/08/image-3.png?w=1024" alt="" class="wp-image-7940" style="aspect-ratio:1.369002972469928;width:531px;height:auto" srcset="https://surfingcomplexity.blog/wp-content/uploads/2026/08/image-3.png?w=1024 1024w, https://surfingcomplexity.blog/wp-content/uploads/2026/08/image-3.png?w=2048 2048w, https://surfingcomplexity.blog/wp-content/uploads/2026/08/image-3.png?w=150 150w, https://surfingcomplexity.blog/wp-content/uploads/2026/08/image-3.png?w=300 300w, https://surfingcomplexity.blog/wp-content/uploads/2026/08/image-3.png?w=768 768w, https://surfingcomplexity.blog/wp-content/uploads/2026/08/image-3.png?w=1440 1440w" sizes="(max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">A visual depiction of an actual black hole. Image source: <a href="https://science.nasa.gov/resource/black-hole/">NASA</a></figcaption></figure>
|
|
|
|
|
|
|
|
<h3 class="wp-block-heading">DNS</h3>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">DNS issues are an example of this kind of network-related failure mode. There’s no way those packets are going to make it to their destination if the client can’t even determine which IP address to send them to. And when DNS breaks, that’s what happens.</p>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">I bring DNS up because it’s bitten folks enough times that there’s a famous haiku:</p>
|
|
|
|
|
|
|
|
<figure class="wp-block-image size-large is-resized"><a href="https://surfingcomplexity.blog/wp-content/uploads/2026/08/image-1.png"><img data-attachment-id="7919" data-permalink="https://surfingcomplexity.blog/2026/08/29/omnipresent-availability-risks-in-cloud-software/image-551/" data-orig-file="https://surfingcomplexity.blog/wp-content/uploads/2026/08/image-1.png" data-orig-size="550,707" data-comments-opened="1" data-image-title="image" data-image-description="" data-image-caption="" data-large-file="https://surfingcomplexity.blog/wp-content/uploads/2026/08/image-1.png?w=550" width="550" height="707" src="https://surfingcomplexity.blog/wp-content/uploads/2026/08/image-1.png?w=550" alt="" class="wp-image-7919" style="width:405px;height:auto" srcset="https://surfingcomplexity.blog/wp-content/uploads/2026/08/image-1.png 550w, https://surfingcomplexity.blog/wp-content/uploads/2026/08/image-1.png?w=117 117w, https://surfingcomplexity.blog/wp-content/uploads/2026/08/image-1.png?w=233 233w" sizes="(max-width: 550px) 100vw, 550px" /></a></figure>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">More generally, networking is an omnipresent risk because cloud software is inherently distributed, so networking is always a critical service. Now, I don’t work in networking, but from the outside, networking just feels like a dangerous domain to do operational stuff in. The blast radius of a networking issue can be very large. And, because network behavior is inherently distributed, reasoning about the behavior of operational changes is just inherently difficult. Honestly, that’s probably why I don’t work in networking.</p>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">And, so, I predict we’ll continue to see networking issues contribute to large-scale incidents.</p>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">Example: <a href="https://www.buildkitestatus.com/incidents/tm6746k61p73">Buildkite incident, Aug 25, 2026</a></p>
|
|
|
|
|
|
|
|
<h2 class="wp-block-heading">Security</h2>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">There’s a fundamental tradeoff between availability and security: availability is about ensuring that the good people can access the system. Security is about ensuring that the bad people cannot access the system. This means that there’s always a risk that a security system designed to prevent bad actors from accessing the system can lead to good actors also being blocked. Consider this scenario: there’s an internal security subsystem that goes unhealthy (possibly due to saturation). Is your policy to fail closed or fail open in the event that this subsystem is erroring? Answering that requires making an availability-security tradeoff.</p>
|
|
|
|
|
|
|
|
<h3 class="wp-block-heading">SSL certificate expiration</h3>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">Another example of this failure mode, which keeps biting our industry again and again, is SSL certificate expiration. Here you have the behavior of a security system that is preventing legitimate access because the cert wasn’t renewed. </p>
|
|
|
|
|
|
|
|
<figure class="wp-block-image size-large"><a href="https://surfingcomplexity.blog/wp-content/uploads/2025/12/image-4.png"><img data-attachment-id="7101" data-permalink="https://surfingcomplexity.blog/2025/12/27/the-dangers-of-ssl-certificates/image-473/" data-orig-file="https://surfingcomplexity.blog/wp-content/uploads/2025/12/image-4.png" data-orig-size="1915,1057" data-comments-opened="1" data-image-title="image" data-image-description="" data-image-caption="" data-large-file="https://surfingcomplexity.blog/wp-content/uploads/2025/12/image-4.png?w=1024" width="1024" height="565" src="https://surfingcomplexity.blog/wp-content/uploads/2025/12/image-4.png?w=1024" alt="Bazel expired certificate" class="wp-image-7101" srcset="https://surfingcomplexity.blog/wp-content/uploads/2025/12/image-4.png?w=1024 1024w, https://surfingcomplexity.blog/wp-content/uploads/2025/12/image-4.png?w=150 150w, https://surfingcomplexity.blog/wp-content/uploads/2025/12/image-4.png?w=300 300w, https://surfingcomplexity.blog/wp-content/uploads/2025/12/image-4.png?w=768 768w, https://surfingcomplexity.blog/wp-content/uploads/2025/12/image-4.png?w=1440 1440w, https://surfingcomplexity.blog/wp-content/uploads/2025/12/image-4.png 1915w" sizes="(max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Even the mighty Google encounters SSL certificate expirations. This is from the Bazel incident</figcaption></figure>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">And so, my claim is availability incidents that involve security subsystems will continue to be a thing forever.</p>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">Example: <a href="/2025/12/27/the-dangers-of-ssl-certificates/">Bazel incident, Sep 27, 2025</a></p>
|
|
|
|
|
|
|
|
<h2 class="wp-block-heading">Essential uncommon changes</h2>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">Your system is constantly undergoing change. Heck, if you stopped making changes, the system would eventually stop working properly. Now, there are some changes that your org does very frequently. Hopefully, you’re deploying often, flipping feature flags a lot, and so on. But there are other changes that your org has less experience with, because they happen much less often. That means that there hasn’t been as much investment in tooling to support these sorts of changes, and it means that the people making these changes don’t have the same level of expertise as they do with the more common changes. That makes these sorts of changes more dangerous: less mature tooling and less experienced humans.</p>
|
|
|
|
|
|
|
|
<h3 class="wp-block-heading">Mitigating an operational issue</h3>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">A few years ago, I wrote a post titled <a href="/2017/06/24/a-conjecture-on-why-reliable-systems-fail/">a conjecture on why reliable systems fail</a> where I speculated on two common contributors to major incidents. One of those contributors was <em><strong>a manual intervention that was intended to mitigate a minor incident</strong></em>. Now, it may be that you frequently have to do manual interventions to mitigate system issues, in which case you’ll have a lot of experience with those sorts of interventions. But you’ll also be more motivated to put in the engineering effort to automate away those sorts of common issues.</p>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">It’s exactly the <em>uncommon </em>issues that require a human operator to intervene to mitigate that are dangerous, because they are uncommon. But they’re essential: there’s a problem in the system, and you need to fix it! But because <a href="https://www.adaptivecapacitylabs.com/HowComplexSystemsFail.pdf">all practitioner actions are gambles</a>, the manual mitigation carries risk that you could make the problem even worse. And, eventually, this will happen to you. </p>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">Example: <a href="/2026/08/16/quick-thoughts-on-azure-regional-outage-from-july-23-26/">Azure Regional Outage, Jul 23, 2026</a></p>
|
|
|
|
|
|
|
|
<h3 class="wp-block-heading">Migration</h3>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">If you’re at a tech company, unless it’s a start-up, you’ll be dealing with migrations, as old tech gets replaced by newer tech that is better suited to the problems that your org is currently facing. While migrations as a general category are extremely common, each migration is itself a snowflake. This means that the specific details of the migration work is an <em>uncommon change</em>. The work of migration involves making a kind of change to your system that you haven’t made before.</p>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">To make things worse, one of the dangers of migration is that, as you go along, you start to build confidence that your changes are safe, but there are actually hidden dangers lurking in the system for the next migration. The confidence in the safety of the work exceeds the actual safety. I mean, you made n-1 changes as part of the migration, and none of those changes had negative consequences. It’s natural to assume that the same outcome will occur with the <em>nth</em> change. </p>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">Example: <a href="/2024/07/06/quick-takes-on-rogers-network-outage-executive-summary/">Rogers Network outage, Jul 8, 2022</a></p>
|
|
|
|
|
|
|
|
<h2 class="wp-block-heading">Essential increase in essential complexity</h2>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">The late American computer scientist Fred Brooks wrote a famous software engineering essay titled <em><a href="https://worrydream.com/refs/Brooks_1986_-_No_Silver_Bullet.pdf">No Silver Bullet</a></em> where he drew a distinction between <em>accidental complexity</em> and <em>essential complexity.</em> The general idea was that there was some amount of complexity in a software system that didn’t need to be there (accidental complexity) and some amount that was just inherent to the nature of the problem space and solution space and so could not be removed (essential complexity). </p>
|
|
|
|
|
|
|
|
<h3 class="wp-block-heading">Reliability subsystem</h3>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">We’ve developed multiple techniques to improve the reliability of software systems, including retries, concurrency limiting, autoscaling, automated failover, circuit breakers, health checks, canaries, outlier detection, the list goes on and on. There’s one thing that all of these techniques have in common: they increase the complexity of the overall system! And they do this because they have to increase complexity in order to do their job. This is a consequence of <a href="/2026/01/31/ashby-taught-us-we-have-to-fight-fire-with-fire/">Ashby’s Law</a>, which states that if you want to build a control system that handles more scenarios, you have to increase the complexity of the controller itself.</p>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">This means that reliability subsystems result in a complexity trade-off. On the one hand, our system can now automatically recover from failure modes that previously required manual intervention. On the other hand, as we all know, increase in complexity is itself dangerous because it can introduce entirely new failure modes that weren’t there before. </p>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">Going back to my <em>conjecture</em> blog post, the second contributor I posited was: <strong><em>unexpected behavior of a subsystem whose primary purpose was to improve reliability</em></strong>. And this is exactly why. Adding reliability subsystems improves the <em>robustness</em> of our system, but it adds essential complexity to our system, which can lead to novel incidents.</p>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">Example: <a href="/2024/12/14/quick-takes-on-the-recent-openai-public-incident-write-up/">OpenAI incident, Dec 11, 2024</a></p>
|
|
|
|
|
|
|
|
<h3 class="wp-block-heading">Migration</h3>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">Like all engineers, I’m a big fan of giving the answer “it depends” if somebody asks me a question about whether they should do X or Y. However, if someone came up to me and said, “Lorin, I’m preparing to do a migration at my company, and I’m trying to decide whether to do a big-bang migration or an incremental one”, then I would almost certainly say, “For the love of God, please do an incremental migration!”. Sometimes big-bang migrations are unavoidable, but when given a choice, I’m going to go for the incremental migration as the safer option. </p>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">However, when you do an incremental migration, it means that you need to simultaneously support the old system and the new system at the same time while you’re doing the migration. This means that even if the new system yields a net decrease in overall complexity over the old system, while the migration is happening, you’re going to see an <em>increase</em> in system complexity. And that means that you’ll see incidents arise as a byproduct of this increased complexity.</p>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">Example: <a href="/2025/07/21/cloudflare-and-the-infinite-sadness-of-migrations/">Cloudflare incident, Jul 14, 2025</a></p>
|
|
|
|
|
|
|
|
<h2 class="wp-block-heading">Incidents are inevitable, so you’d better be ready</h2>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">To reiterate, I think all of the risks mentioned here are <em>omnipresent</em>: they are fundamental to the nature of cloud software. I don’t think that any of these risks can be eliminated. That’s why I believe so strongly in the value of getting better at incident response. Because, if you prepare, you can get better at dealing with problems that arise as a result of these risks. </p>
|
|
<div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"><div class="sharedaddy sd-sharing-enabled"><div class="robots-nocontent sd-block sd-social sd-social-icon-text sd-sharing"><h3 class="sd-title">Share this:</h3><div class="sd-content"><ul><li class="share-twitter"><a rel="nofollow noopener noreferrer"
|
|
data-shared="sharing-twitter-7912"
|
|
class="share-twitter sd-button share-icon"
|
|
href="https://surfingcomplexity.blog/2026/08/29/omnipresent-availability-risks-in-cloud-software/?share=twitter"
|
|
target="_blank"
|
|
aria-labelledby="sharing-twitter-7912"
|
|
>
|
|
<span id="sharing-twitter-7912" hidden>Share on X (Opens in new window)</span>
|
|
<span>X</span>
|
|
</a></li><li class="share-facebook"><a rel="nofollow noopener noreferrer"
|
|
data-shared="sharing-facebook-7912"
|
|
class="share-facebook sd-button share-icon"
|
|
href="https://surfingcomplexity.blog/2026/08/29/omnipresent-availability-risks-in-cloud-software/?share=facebook"
|
|
target="_blank"
|
|
aria-labelledby="sharing-facebook-7912"
|
|
>
|
|
<span id="sharing-facebook-7912" hidden>Share on Facebook (Opens in new window)</span>
|
|
<span>Facebook</span>
|
|
</a></li><li class="share-end"></li></ul></div></div></div><div class='sharedaddy sd-block sd-like jetpack-likes-widget-wrapper jetpack-likes-widget-unloaded' id='like-post-wrapper-30291541-7912-6abae37494454' data-src='//widgets.wp.com/likes/index.html?ver=20260928#blog_id=30291541&post_id=7912&origin=lorinhochstein.wordpress.com&obj_id=30291541-7912-6abae37494454&domain=surfingcomplexity.blog' data-name='like-post-frame-30291541-7912-6abae37494454' data-title='Like or Reblog'><div class='likes-widget-placeholder post-likes-widget-placeholder' style='height: 55px;'><span class='button'><span>Like</span></span> <span class='loading'>Loading...</span></div><span class='sd-text-color'></span><a class='sd-link-color'></a></div>
|
|
<div id='jp-relatedposts' class='jp-relatedposts' >
|
|
|
|
</div></div> </div><!-- .entry-content -->
|
|
|
|
<div class="entry-footer">
|
|
</div><!-- .entry-footer -->
|
|
|
|
<div class="entry-author-wrapper">
|
|
<div class="entry-author author-avatar-show">
|
|
<div class="author-avatar">
|
|
<img referrerpolicy="no-referrer" alt='Unknown's avatar' src='https://0.gravatar.com/avatar/f2641f12e815a54896f8f2ac04660c52efb896e09131390ad2a6f2f5fca81432?s=80&d=identicon&r=G' srcset='https://0.gravatar.com/avatar/f2641f12e815a54896f8f2ac04660c52efb896e09131390ad2a6f2f5fca81432?s=80&d=identicon&r=G 1x, https://0.gravatar.com/avatar/f2641f12e815a54896f8f2ac04660c52efb896e09131390ad2a6f2f5fca81432?s=120&d=identicon&r=G 1.5x, https://0.gravatar.com/avatar/f2641f12e815a54896f8f2ac04660c52efb896e09131390ad2a6f2f5fca81432?s=160&d=identicon&r=G 2x, https://0.gravatar.com/avatar/f2641f12e815a54896f8f2ac04660c52efb896e09131390ad2a6f2f5fca81432?s=240&d=identicon&r=G 3x, https://0.gravatar.com/avatar/f2641f12e815a54896f8f2ac04660c52efb896e09131390ad2a6f2f5fca81432?s=320&d=identicon&r=G 4x' class='avatar avatar-80' height='80' width='80' loading='lazy' decoding='async' /> </div><!-- .author-avatar -->
|
|
|
|
<div class="author-heading">
|
|
<h2 class="author-title">
|
|
Published by <span class="author-name">Lorin Hochstein</span> </h2>
|
|
</div><!-- .author-heading -->
|
|
|
|
<p class="author-bio">
|
|
<a class="author-link" href="https://surfingcomplexity.blog/author/lorinh/" rel="author">
|
|
View all posts by Lorin Hochstein </a>
|
|
</p><!-- .author-bio -->
|
|
</div><!-- .entry-auhtor -->
|
|
<div class="site-posted-on">
|
|
<strong>Published</strong>
|
|
<time class="entry-date published" datetime="2026-08-29T15:07:04-07:00">August 29, 2026</time><time class="updated" datetime="2026-08-29T17:25:50-07:00">August 29, 2026</time> </div><!-- .site-posted-on -->
|
|
</div>
|
|
</article><!-- #post-## -->
|
|
|
|
|
|
<nav class="navigation post-navigation" aria-label="Posts">
|
|
<h2 class="screen-reader-text">Post navigation</h2>
|
|
<div class="nav-links"><div class="nav-previous"><a href="https://surfingcomplexity.blog/2026/08/22/wild-ai-related-reliability-incidents-are-coming/" rel="prev"><span class="meta-nav screen-reader-text">Previous Post</span> Wild AI-related reliability incidents are coming</a></div><div class="nav-next"><a href="https://surfingcomplexity.blog/2026/08/29/quick-thoughts-on-github-actions-aug-26-incident/" rel="next"><span class="meta-nav screen-reader-text">Next Post</span> Quick thoughts on GitHub Actions Aug 26 incident</a></div></div>
|
|
</nav>
|
|
|
|
<div id="comments" class="comments-area">
|
|
|
|
|
|
|
|
|
|
<div id="respond" class="comment-respond">
|
|
<h3 id="reply-title" class="comment-reply-title">Leave a comment <small><a rel="nofollow" id="cancel-comment-reply-link" href="/2026/08/29/omnipresent-availability-risks-in-cloud-software/#respond" style="display:none;">Cancel reply</a></small></h3><form action="https://surfingcomplexity.blog/wp-comments-post.php" method="post" id="commentform" class="comment-form">
|
|
|
|
|
|
<div class="comment-form__verbum transparent"></div><div class="verbum-form-meta"><input type='hidden' name='comment_post_ID' value='7912' id='comment_post_ID' />
|
|
<input type='hidden' name='comment_parent' id='comment_parent' value='0' />
|
|
|
|
<input type="hidden" name="highlander_comment_nonce" id="highlander_comment_nonce" value="f67dfce0d2" />
|
|
<input type="hidden" name="verbum_show_subscription_modal" value="" /></div><p style="display: none;"><input type="hidden" id="akismet_comment_nonce" name="akismet_comment_nonce" value="9256b19e4c" /></p><p style="display: none !important;" class="akismet-fields-container" data-prefix="ak_"><label>Δ<textarea name="ak_hp_textarea" cols="45" rows="8" maxlength="100"></textarea></label><input type="hidden" id="ak_js_1" name="ak_js" value="154"/><script>
|
|
document.getElementById( "ak_js_1" ).setAttribute( "value", ( new Date() ).getTime() );
|
|
</script>
|
|
</p></form> </div><!-- #respond -->
|
|
|
|
</div><!-- #comments -->
|
|
|
|
|
|
</main><!-- #main -->
|
|
</div><!-- #primary -->
|
|
|
|
<div id="secondary" class="widget-area" role="complementary">
|
|
<aside id="block-3" class="widget widget_block widget_search"><form role="search" method="get" action="https://surfingcomplexity.blog/" class="wp-block-search__button-outside wp-block-search__text-button wp-block-search" ><label class="wp-block-search__label" for="wp-block-search__input-1" >Search</label><div class="wp-block-search__inside-wrapper" ><input class="wp-block-search__input" id="wp-block-search__input-1" placeholder="" value="" type="search" name="s" required /><button aria-label="Search" class="wp-block-search__button wp-element-button" type="submit" >Search</button></div></form></aside><aside id="block-7" class="widget widget_block">
|
|
<ul class="wp-block-list">
|
|
<li><a href="https://lorinhochstein.org">lorinhochstein.org</a></li>
|
|
|
|
|
|
|
|
<li><a href="https://bsky.app/profile/norootcause.surfingcomplexity.com">Bluesky</a></li>
|
|
|
|
|
|
|
|
<li><a href="https://hachyderm.io/@norootcause">Mastodon</a></li>
|
|
</ul>
|
|
</aside><aside id="block-4" class="widget widget_block widget_recent_entries"><ul class="wp-block-latest-posts__list wp-block-latest-posts is-layout-flow wp-block-latest-posts-is-layout-flow"><li><a class="wp-block-latest-posts__post-title" href="https://surfingcomplexity.blog/2026/09/19/saturation-at-github-the-saga-continues/">Saturation at GitHub: the saga continues</a></li>
|
|
<li><a class="wp-block-latest-posts__post-title" href="https://surfingcomplexity.blog/2026/09/19/how-the-incident-happened-a-play-in-one-act/">How the incident happened: a play in one act</a></li>
|
|
<li><a class="wp-block-latest-posts__post-title" href="https://surfingcomplexity.blog/2026/09/12/thoughts-on-the-july-8th-telestra-outage-report/">Thoughts on the July 8th Telstra outage report</a></li>
|
|
<li><a class="wp-block-latest-posts__post-title" href="https://surfingcomplexity.blog/2026/09/01/thoughts-on-the-buildkite-aug-25-incident/">Thoughts on the Buildkite Aug 25 incident</a></li>
|
|
<li><a class="wp-block-latest-posts__post-title" href="https://surfingcomplexity.blog/2026/08/29/quick-thoughts-on-github-actions-aug-26-incident/">Quick thoughts on GitHub Actions Aug 26 incident</a></li>
|
|
</ul></aside></div><!-- #secondary -->
|
|
|
|
</div><!-- #content -->
|
|
|
|
<footer id="colophon" class="site-footer" role="contentinfo">
|
|
<div class="site-info">
|
|
<a href="https://wordpress.com/?ref=footer_blog" rel="nofollow">Blog at WordPress.com.</a>
|
|
|
|
</div><!-- .site-info -->
|
|
</footer><!-- #colophon -->
|
|
</div><!-- #content-wrapper -->
|
|
</div><!-- #page -->
|
|
|
|
<!-- -->
|
|
<script type="speculationrules">
|
|
{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/files/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/pub/independent-publisher-2/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
|
|
</script>
|
|
<script id="grofiles-cards-js" src="//0.gravatar.com/js/hovercards/hovercards.min.js?ver=202640d1133547e8a1f2801609f51cef12522abe7f6647d869e9fbc974fe356a37e613"></script>
|
|
<script id="wpgroho-js-extra">
|
|
var WPGroHo = {"my_hash":""};
|
|
//# sourceURL=wpgroho-js-extra
|
|
</script>
|
|
<script crossorigin='anonymous' type='text/javascript' src='/wp-content/mu-plugins/gravatar-hovercards/wpgroho.js?m=1610363240i'></script>
|
|
|
|
<script>
|
|
// Initialize and attach hovercards to all gravatars
|
|
( function() {
|
|
function init() {
|
|
if ( typeof Gravatar === 'undefined' ) {
|
|
return;
|
|
}
|
|
|
|
if ( typeof Gravatar.init !== 'function' ) {
|
|
return;
|
|
}
|
|
|
|
Gravatar.profile_cb = function ( hash, id ) {
|
|
WPGroHo.syncProfileData( hash, id );
|
|
};
|
|
|
|
Gravatar.my_hash = WPGroHo.my_hash;
|
|
Gravatar.init(
|
|
'body',
|
|
'#wp-admin-bar-my-account',
|
|
{
|
|
i18n: {
|
|
'Edit your profile →': 'Edit your profile →',
|
|
'View profile →': 'View profile →',
|
|
'Contact': 'Contact',
|
|
'Send money': 'Send money',
|
|
'Sorry, we are unable to load this Gravatar profile.': 'Sorry, we are unable to load this Gravatar profile.',
|
|
'Gravatar not found.': 'Gravatar not found.',
|
|
'Too Many Requests.': 'Too Many Requests.',
|
|
'Internal Server Error.': 'Internal Server Error.',
|
|
'Is this you?': 'Is this you?',
|
|
'Claim your free profile.': 'Claim your free profile.',
|
|
'Email': 'Email',
|
|
'Home Phone': 'Home Phone',
|
|
'Work Phone': 'Work Phone',
|
|
'Cell Phone': 'Cell Phone',
|
|
'Contact Form': 'Contact Form',
|
|
'Calendar': 'Calendar',
|
|
},
|
|
}
|
|
);
|
|
}
|
|
|
|
if ( document.readyState !== 'loading' ) {
|
|
init();
|
|
} else {
|
|
document.addEventListener( 'DOMContentLoaded', init );
|
|
}
|
|
} )();
|
|
</script>
|
|
|
|
<div style="display:none">
|
|
<div class="grofile-hash-map-c690634d340d85fb40ac03668259ff1c">
|
|
</div>
|
|
</div>
|
|
<div id="actionbar" dir="ltr" style="display: none;"
|
|
class="actnbr-pub-independent-publisher-2" role="region" aria-label="Site actions">
|
|
<span class="actnbr-live" aria-live="polite"></span>
|
|
<ul>
|
|
<li class="actnbr-btn">
|
|
<a class="actnbr-action actnbr-actn-comment" href="https://surfingcomplexity.blog/2026/08/29/omnipresent-availability-risks-in-cloud-software/#respond">
|
|
<svg class="actnbr-icon actnbr-icon-comment" width="20" height="20" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" fill="currentColor"><path d="M18 4H6c-1.1 0-2 .9-2 2v12.9c0 .6.5 1.1 1.1 1.1.3 0 .5-.1.8-.3L8.5 17H18c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm.5 11c0 .3-.2.5-.5.5H7.9l-2.4 2.4V6c0-.3.2-.5.5-.5h12c.3 0 .5.2.5.5v9z"/></svg> <span>Comment </span>
|
|
</a>
|
|
</li>
|
|
<li class="actnbr-btn">
|
|
<a class="actnbr-action actnbr-actn-reblog" href="" role="button">
|
|
<svg class="actnbr-icon actnbr-icon-reusable-block" width="20" height="20" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" fill="currentColor"><path d="M7 7.2h8.2L13.5 9l1.1 1.1 3.6-3.6-3.5-4-1.1 1 1.9 2.3H7c-.9 0-1.7.3-2.3.9-1.4 1.5-1.4 4.2-1.4 5.6v.2h1.5v-.3c0-1.1 0-3.5 1-4.5.3-.3.7-.5 1.2-.5zm13.8 4V11h-1.5v.3c0 1.1 0 3.5-1 4.5-.3.3-.7.5-1.3.5H8.8l1.7-1.7-1.1-1.1L5.9 17l3.5 4 1.1-1-1.9-2.3H17c.9 0 1.7-.3 2.3-.9 1.5-1.4 1.5-4.2 1.5-5.6z"/></svg><span>Reblog</span>
|
|
</a>
|
|
</li>
|
|
<li class="actnbr-btn actnbr-hidden">
|
|
<a class="actnbr-action actnbr-actn-follow " href="" role="button" aria-haspopup="dialog" aria-expanded="false">
|
|
<svg class="actnbr-icon actnbr-icon-bell" width="20" height="20" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" fill="currentColor"><path fill-rule="evenodd" clip-rule="evenodd" d="M17 11.5c0 1.353.17 2.368.976 3 .266.209.602.376 1.024.5v1H5v-1c.422-.124.757-.291 1.024-.5.806-.632.976-1.647.976-3V9c0-2.8 2.2-5 5-5s5 2.2 5 5v2.5ZM15.5 9v2.5c0 .93.066 1.98.515 2.897l.053.103H7.932a4.018 4.018 0 0 0 .053-.103c.449-.917.515-1.967.515-2.897V9c0-1.972 1.528-3.5 3.5-3.5s3.5 1.528 3.5 3.5Zm-5.492 9.008c0-.176.023-.346.065-.508h3.854A1.996 1.996 0 0 1 12 20c-1.1 0-1.992-.892-1.992-1.992Z"/></svg> <span>Subscribe</span>
|
|
</a>
|
|
<a class="actnbr-action actnbr-actn-following no-display" href="" role="button">
|
|
<svg class="actnbr-icon actnbr-icon-check" width="20" height="20" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" style="fill: none" stroke="currentColor" stroke-width="1.5"><path d="M7 12L10 15L17 8" vector-effect="non-scaling-stroke"/></svg> <span>Subscribed</span>
|
|
</a>
|
|
<div class="actnbr-popover actnbr-panel actnbr-notice" id="follow-bubble" role="dialog" aria-label="Subscribe to Surfing Complexity">
|
|
<div class="actnbr-follow-bubble">
|
|
<div class="actnbr-panel__group"><a class="actnbr-menu__item actnbr-sitename" href="https://surfingcomplexity.blog"><img loading='lazy' alt='' src='https://surfingcomplexity.blog/wp-content/uploads/2020/05/surfer_1f3c4.png?w=50' srcset='https://surfingcomplexity.blog/wp-content/uploads/2020/05/surfer_1f3c4.png?w=50 1x, https://surfingcomplexity.blog/wp-content/uploads/2020/05/surfer_1f3c4.png?w=75 1.5x, https://surfingcomplexity.blog/wp-content/uploads/2020/05/surfer_1f3c4.png?w=100 2x, https://surfingcomplexity.blog/wp-content/uploads/2020/05/surfer_1f3c4.png?w=120 3x, https://surfingcomplexity.blog/wp-content/uploads/2020/05/surfer_1f3c4.png?w=120 4x' class='avatar avatar-50' height='50' width='50' /><span class="actnbr-menu__label">Surfing Complexity</span></a></div> <div class="actnbr-panel__group">
|
|
<div class="actnbr-message no-display" aria-live="polite"></div>
|
|
<form method="post" action="https://subscribe.wordpress.com" accept-charset="utf-8" class="no-display">
|
|
<div class="actnbr-follow-count">Join 262 other subscribers</div>
|
|
<input type="email" name="email" placeholder="Want updates? Enter your email" class="actnbr-email-field" aria-label="Email address" />
|
|
<input type="hidden" name="action" value="subscribe" />
|
|
<input type="hidden" name="blog_id" value="30291541" />
|
|
<input type="hidden" name="source" value="https://surfingcomplexity.blog/2026/08/29/omnipresent-availability-risks-in-cloud-software/" />
|
|
<input type="hidden" name="sub-type" value="actionbar-follow" />
|
|
<input type="hidden" id="_wpnonce" name="_wpnonce" value="0e6b45fcde" /> <button type="submit" class="actnbr-button">Sign me up</button>
|
|
</form>
|
|
<p class="actnbr-login-nudge">
|
|
Have a WordPress.com account? <a href="https://wordpress.com/log-in?redirect_to=https%3A%2F%2Fr-login.wordpress.com%2Fremote-login.php%3Faction%3Dlink%26back%3Dhttps%253A%252F%252Fsurfingcomplexity.blog%252F2026%252F08%252F29%252Fomnipresent-availability-risks-in-cloud-software%252F">Log in now.</a> </p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
<li class="actnbr-ellipsis actnbr-hidden">
|
|
<button type="button" class="actnbr-more-toggle" aria-haspopup="true" aria-expanded="false" aria-label="More options">
|
|
<svg class="actnbr-icon actnbr-icon-more-horizontal" width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" fill="currentColor"><path d="M11 13h2v-2h-2v2zm-6 0h2v-2H5v2zm12-2v2h2v-2h-2z"/></svg> </button>
|
|
<div class="actnbr-popover actnbr-menu" role="menu" aria-label="Site options">
|
|
<div class="actnbr-menu__group" role="group"><a role="menuitem" class="actnbr-menu__item actnbr-sitename" href="https://surfingcomplexity.blog"><img loading='lazy' alt='' src='https://surfingcomplexity.blog/wp-content/uploads/2020/05/surfer_1f3c4.png?w=50' srcset='https://surfingcomplexity.blog/wp-content/uploads/2020/05/surfer_1f3c4.png?w=50 1x, https://surfingcomplexity.blog/wp-content/uploads/2020/05/surfer_1f3c4.png?w=75 1.5x, https://surfingcomplexity.blog/wp-content/uploads/2020/05/surfer_1f3c4.png?w=100 2x, https://surfingcomplexity.blog/wp-content/uploads/2020/05/surfer_1f3c4.png?w=120 3x, https://surfingcomplexity.blog/wp-content/uploads/2020/05/surfer_1f3c4.png?w=120 4x' class='avatar avatar-50' height='50' width='50' /><span class="actnbr-menu__label">Surfing Complexity</span></a></div><div class="actnbr-menu__group" role="group"><a role="menuitem" class="actnbr-menu__item actnbr-shortlink" href="https://wp.me/p236df-23C"><span class="actnbr-menu__label actnbr-shortlink__text">Copy shortlink</span><span class="actnbr-menu__icon actnbr-shortlink__icon"><svg class="actnbr-icon actnbr-icon-copy" width="18" height="18" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" fill="currentColor"><path fill-rule="evenodd" clip-rule="evenodd" d="M5 4.5h11a.5.5 0 0 1 .5.5v11a.5.5 0 0 1-.5.5H5a.5.5 0 0 1-.5-.5V5a.5.5 0 0 1 .5-.5ZM3 5a2 2 0 0 1 2-2h11a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5Zm17 3v10.75c0 .69-.56 1.25-1.25 1.25H6v1.5h12.75a2.75 2.75 0 0 0 2.75-2.75V8H20Z"/></svg></span><span class="actnbr-menu__icon actnbr-shortlink__icon-copied"><svg class="actnbr-icon actnbr-icon-check" width="18" height="18" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" style="fill: none" stroke="currentColor" stroke-width="1.5"><path d="M7 12L10 15L17 8" vector-effect="non-scaling-stroke"/></svg></span></a><a role="menuitem" class="actnbr-menu__item actnbr-reader" href="https://wordpress.com/reader/blogs/30291541/posts/7912"><span class="actnbr-menu__label">View post in Reader</span></a></div><div class="actnbr-menu__group" role="group"><a role="menuitem" class="actnbr-menu__item actnbr-subs" href="https://subscribe.wordpress.com/"><span class="actnbr-menu__label">Manage subscriptions</span></a><a role="menuitem" class="actnbr-menu__item actnbr-signup" href="https://wordpress.com/start/"><span class="actnbr-menu__label">Sign up</span></a><a role="menuitem" class="actnbr-menu__item actnbr-login" href="https://wordpress.com/log-in?redirect_to=https%3A%2F%2Fr-login.wordpress.com%2Fremote-login.php%3Faction%3Dlink%26back%3Dhttps%253A%252F%252Fsurfingcomplexity.blog%252F2026%252F08%252F29%252Fomnipresent-availability-risks-in-cloud-software%252F"><span class="actnbr-menu__label">Log in</span></a></div><div class="actnbr-menu__group" role="group"><a role="menuitem" class="actnbr-menu__item flb-report" href="https://wordpress.com/abuse/?report_url=https://surfingcomplexity.blog/2026/08/29/omnipresent-availability-risks-in-cloud-software/" target="_blank" rel="noopener noreferrer"><span class="actnbr-menu__label">Report this content</span><span class="actnbr-menu__icon"><svg class="actnbr-icon actnbr-icon-external" width="18" height="18" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" fill="currentColor"><path d="M19.5 4.5h-7V6h4.44l-5.97 5.97 1.06 1.06L18 7.06v4.44h1.5v-7Zm-13 1a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-3H17v3a.5.5 0 0 1-.5.5h-10a.5.5 0 0 1-.5-.5v-10a.5.5 0 0 1 .5-.5h3V5.5h-3Z"/></svg></span></a></div><div class="actnbr-menu__group" role="group"><a role="menuitem" class="actnbr-menu__item actnbr-fold" href=""><span class="actnbr-menu__label">Collapse this bar</span></a></div> </div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<script>
|
|
window.addEventListener( "DOMContentLoaded", function () {
|
|
var link = document.createElement( "link" );
|
|
link.href = "\/wp-content\/mu-plugins\/jetpack-plugin\/moon\/jetpack_vendor\/automattic\/jetpack-newsletter\/src\/..\/build\/action-bar.css?ver=9e2715140ce0af99d983";
|
|
link.rel = "stylesheet";
|
|
document.head.appendChild( link );
|
|
|
|
var script = document.createElement( "script" );
|
|
script.src = "\/wp-content\/mu-plugins\/jetpack-plugin\/moon\/jetpack_vendor\/automattic\/jetpack-newsletter\/src\/..\/build\/action-bar.js?ver=9e2715140ce0af99d983";
|
|
document.body.appendChild( script );
|
|
} );
|
|
</script>
|
|
<link rel="prefetch" href="/wp-content/mu-plugins/jetpack-plugin/moon/_inc/blocks/swiper.js" as="script" />
|
|
<div id="jp-carousel-loading-overlay" style="display: none;">
|
|
<div id="jp-carousel-loading-wrapper">
|
|
<span id="jp-carousel-library-loading"><svg class="jetpack-spinner" width="40" height="40" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><circle cx="50" cy="50" r="46" fill="none" stroke="#ddd" stroke-width="8"/><path d="M 50 4 A 46 46 0 0 1 96 50" fill="none" stroke="currentColor" stroke-width="8" stroke-linecap="round"><animateTransform attributeName="transform" type="rotate" dur="1.4s" from="0 50 50" to="360 50 50" repeatCount="indefinite"/></path></svg></span>
|
|
</div>
|
|
</div>
|
|
<div class="jp-carousel-overlay" style="display: none;">
|
|
|
|
<div class="jp-carousel-container">
|
|
<!-- The Carousel Swiper -->
|
|
<div
|
|
class="jp-carousel-wrap swiper jp-carousel-swiper-container jp-carousel-transitions"
|
|
itemscope
|
|
itemtype="https://schema.org/ImageGallery">
|
|
<div class="jp-carousel swiper-wrapper"></div>
|
|
<div class="jp-swiper-button-prev swiper-button-prev">
|
|
<svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
<mask id="maskPrev" mask-type="alpha" maskUnits="userSpaceOnUse" x="8" y="6" width="9" height="12">
|
|
<path d="M16.2072 16.59L11.6496 12L16.2072 7.41L14.8041 6L8.8335 12L14.8041 18L16.2072 16.59Z" fill="white"/>
|
|
</mask>
|
|
<g mask="url(#maskPrev)">
|
|
<rect x="0.579102" width="23.8823" height="24" fill="#FFFFFF"/>
|
|
</g>
|
|
</svg>
|
|
</div>
|
|
<div class="jp-swiper-button-next swiper-button-next">
|
|
<svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
<mask id="maskNext" mask-type="alpha" maskUnits="userSpaceOnUse" x="8" y="6" width="8" height="12">
|
|
<path d="M8.59814 16.59L13.1557 12L8.59814 7.41L10.0012 6L15.9718 12L10.0012 18L8.59814 16.59Z" fill="white"/>
|
|
</mask>
|
|
<g mask="url(#maskNext)">
|
|
<rect x="0.34375" width="23.8822" height="24" fill="#FFFFFF"/>
|
|
</g>
|
|
</svg>
|
|
</div>
|
|
</div>
|
|
<!-- The main close buton -->
|
|
<div class="jp-carousel-close-hint">
|
|
<svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
<mask id="maskClose" mask-type="alpha" maskUnits="userSpaceOnUse" x="5" y="5" width="15" height="14">
|
|
<path d="M19.3166 6.41L17.9135 5L12.3509 10.59L6.78834 5L5.38525 6.41L10.9478 12L5.38525 17.59L6.78834 19L12.3509 13.41L17.9135 19L19.3166 17.59L13.754 12L19.3166 6.41Z" fill="white"/>
|
|
</mask>
|
|
<g mask="url(#maskClose)">
|
|
<rect x="0.409668" width="23.8823" height="24" fill="#FFFFFF"/>
|
|
</g>
|
|
</svg>
|
|
</div>
|
|
<!-- Image info, comments and meta -->
|
|
<div class="jp-carousel-info">
|
|
<div class="jp-carousel-info-footer">
|
|
<div class="jp-carousel-pagination-container">
|
|
<div class="jp-swiper-pagination swiper-pagination"></div>
|
|
<div class="jp-carousel-pagination"></div>
|
|
</div>
|
|
<div class="jp-carousel-photo-title-container">
|
|
<div class="jp-carousel-photo-caption"></div>
|
|
</div>
|
|
<div class="jp-carousel-photo-icons-container">
|
|
<a href="#" class="jp-carousel-icon-btn jp-carousel-icon-info" aria-label="Toggle photo metadata visibility">
|
|
<span class="jp-carousel-icon">
|
|
<svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
<mask id="maskInfo" mask-type="alpha" maskUnits="userSpaceOnUse" x="2" y="2" width="21" height="20">
|
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M12.7537 2C7.26076 2 2.80273 6.48 2.80273 12C2.80273 17.52 7.26076 22 12.7537 22C18.2466 22 22.7046 17.52 22.7046 12C22.7046 6.48 18.2466 2 12.7537 2ZM11.7586 7V9H13.7488V7H11.7586ZM11.7586 11V17H13.7488V11H11.7586ZM4.79292 12C4.79292 16.41 8.36531 20 12.7537 20C17.142 20 20.7144 16.41 20.7144 12C20.7144 7.59 17.142 4 12.7537 4C8.36531 4 4.79292 7.59 4.79292 12Z" fill="white"/>
|
|
</mask>
|
|
<g mask="url(#maskInfo)">
|
|
<rect x="0.8125" width="23.8823" height="24" fill="#FFFFFF"/>
|
|
</g>
|
|
</svg>
|
|
</span>
|
|
</a>
|
|
<a href="#" class="jp-carousel-icon-btn jp-carousel-icon-comments" aria-label="Toggle photo comments visibility">
|
|
<span class="jp-carousel-icon">
|
|
<svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
<mask id="maskComments" mask-type="alpha" maskUnits="userSpaceOnUse" x="2" y="2" width="21" height="20">
|
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M4.3271 2H20.2486C21.3432 2 22.2388 2.9 22.2388 4V16C22.2388 17.1 21.3432 18 20.2486 18H6.31729L2.33691 22V4C2.33691 2.9 3.2325 2 4.3271 2ZM6.31729 16H20.2486V4H4.3271V18L6.31729 16Z" fill="white"/>
|
|
</mask>
|
|
<g mask="url(#maskComments)">
|
|
<rect x="0.34668" width="23.8823" height="24" fill="#FFFFFF"/>
|
|
</g>
|
|
</svg>
|
|
|
|
<span class="jp-carousel-has-comments-indicator" aria-label="This image has comments."></span>
|
|
</span>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
<div class="jp-carousel-info-extra">
|
|
<div class="jp-carousel-info-content-wrapper">
|
|
<div class="jp-carousel-photo-title-container">
|
|
<div class="jp-carousel-photo-title"></div>
|
|
</div>
|
|
<div class="jp-carousel-comments-wrapper">
|
|
<div id="jp-carousel-comments-loading">
|
|
<span>Loading Comments...</span>
|
|
</div>
|
|
<div class="jp-carousel-comments"></div>
|
|
<div id="jp-carousel-comment-form-container">
|
|
<span id="jp-carousel-comment-form-spinner"><svg class="jetpack-spinner" width="20" height="20" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><circle cx="50" cy="50" r="46" fill="none" stroke="#ddd" stroke-width="8"/><path d="M 50 4 A 46 46 0 0 1 96 50" fill="none" stroke="currentColor" stroke-width="8" stroke-linecap="round"><animateTransform attributeName="transform" type="rotate" dur="1.4s" from="0 50 50" to="360 50 50" repeatCount="indefinite"/></path></svg></span>
|
|
<div id="jp-carousel-comment-post-results"></div>
|
|
<form id="jp-carousel-comment-form">
|
|
<label for="jp-carousel-comment-form-comment-field" class="screen-reader-text">Write a Comment...</label>
|
|
<textarea
|
|
name="comment"
|
|
class="jp-carousel-comment-form-field jp-carousel-comment-form-textarea"
|
|
id="jp-carousel-comment-form-comment-field"
|
|
placeholder="Write a Comment..."
|
|
></textarea>
|
|
<div id="jp-carousel-comment-form-submit-and-info-wrapper">
|
|
<div id="jp-carousel-comment-form-commenting-as">
|
|
<fieldset>
|
|
<label for="jp-carousel-comment-form-email-field">Email (Required)</label>
|
|
<input type="text" name="email" class="jp-carousel-comment-form-field jp-carousel-comment-form-text-field" id="jp-carousel-comment-form-email-field" />
|
|
</fieldset>
|
|
<fieldset>
|
|
<label for="jp-carousel-comment-form-author-field">Name (Required)</label>
|
|
<input type="text" name="author" class="jp-carousel-comment-form-field jp-carousel-comment-form-text-field" id="jp-carousel-comment-form-author-field" />
|
|
</fieldset>
|
|
<fieldset>
|
|
<label for="jp-carousel-comment-form-url-field">Website</label>
|
|
<input type="text" name="url" class="jp-carousel-comment-form-field jp-carousel-comment-form-text-field" id="jp-carousel-comment-form-url-field" />
|
|
</fieldset>
|
|
</div>
|
|
<input
|
|
type="submit"
|
|
name="submit"
|
|
class="jp-carousel-comment-form-button"
|
|
id="jp-carousel-comment-form-button-submit"
|
|
value="Post Comment" />
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
<div class="jp-carousel-image-meta">
|
|
<div class="jp-carousel-title-and-caption">
|
|
<div class="jp-carousel-photo-info">
|
|
<div class="jp-carousel-caption" itemprop="caption description"></div>
|
|
</div>
|
|
|
|
<div class="jp-carousel-photo-description"></div>
|
|
</div>
|
|
<a class="jp-carousel-image-download" href="#" aria-label="Download image" target="_blank" style="display: none;">
|
|
<svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
<mask id="mask0" mask-type="alpha" maskUnits="userSpaceOnUse" x="3" y="3" width="19" height="18">
|
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M5.84615 5V19H19.7775V12H21.7677V19C21.7677 20.1 20.8721 21 19.7775 21H5.84615C4.74159 21 3.85596 20.1 3.85596 19V5C3.85596 3.9 4.74159 3 5.84615 3H12.8118V5H5.84615ZM14.802 5V3H21.7677V10H19.7775V6.41L9.99569 16.24L8.59261 14.83L18.3744 5H14.802Z" fill="white"/>
|
|
</mask>
|
|
<g mask="url(#mask0)">
|
|
<rect x="0.870605" width="23.8823" height="24" fill="#FFFFFF"/>
|
|
</g>
|
|
</svg>
|
|
<span class="jp-carousel-download-text"></span>
|
|
</a>
|
|
<div class="jp-carousel-image-map" style="display: none;"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<script type="text/javascript">
|
|
window.WPCOM_sharing_counts = {"https://surfingcomplexity.blog/2026/08/29/omnipresent-availability-risks-in-cloud-software/":7912};
|
|
</script>
|
|
|
|
<script type="text/javascript">
|
|
(function () {
|
|
var wpcom_reblog = {
|
|
source: 'toolbar',
|
|
|
|
toggle_reblog_box_flair: function (obj_id, post_id) {
|
|
|
|
// Go to site selector. This will redirect to their blog if they only have one.
|
|
const postEndpoint = `https://wordpress.com/post`;
|
|
|
|
// Ideally we would use the permalink here, but fortunately this will be replaced with the
|
|
// post permalink in the editor.
|
|
const originalURL = `${ document.location.href }?page_id=${ post_id }`;
|
|
|
|
const url =
|
|
postEndpoint +
|
|
'?url=' +
|
|
encodeURIComponent( originalURL ) +
|
|
'&is_post_share=true' +
|
|
'&v=5';
|
|
|
|
const redirect = function () {
|
|
if (
|
|
! window.open( url, '_blank' )
|
|
) {
|
|
location.href = url;
|
|
}
|
|
};
|
|
|
|
if ( /Firefox/.test( navigator.userAgent ) ) {
|
|
setTimeout( redirect, 0 );
|
|
} else {
|
|
redirect();
|
|
}
|
|
},
|
|
};
|
|
|
|
window.wpcom_reblog = wpcom_reblog;
|
|
})();
|
|
</script>
|
|
<script crossorigin='anonymous' type='text/javascript' src='/wp-content/mu-plugins/likes/queuehandler.js?m=1741961244i'></script>
|
|
<script id="wp-hooks-js" src="/wp-content/plugins/gutenberg-core/v24.0.0/build/scripts/hooks/index.min.js?m=1789650619i&ver=f0f188028580e8dc1255"></script>
|
|
<script id="wp-i18n-js" src="/wp-content/plugins/gutenberg-core/v24.0.0/build/scripts/i18n/index.min.js?m=1789650619i&ver=1dfe7db3940c23ea9216"></script>
|
|
<script id="wp-i18n-js-after">
|
|
wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } );
|
|
//# sourceURL=wp-i18n-js-after
|
|
</script>
|
|
<script id="verbum-settings-js-before">
|
|
window.VerbumComments = {"Log in or provide your name and email to leave a reply.":"Log in or provide your name and email to leave a reply.","Log in or provide your name and email to leave a comment.":"Log in or provide your name and email to leave a comment.","Receive web and mobile notifications for posts on this site.":"Receive web and mobile notifications for posts on this site.","Name":"Name","Email (address never made public)":"Email (address never made public)","Website (optional)":"Website (optional)","Leave a reply. (log in optional)":"Leave a reply. (log in optional)","Leave a comment. (log in optional)":"Leave a comment. (log in optional)","Log in to leave a reply.":"Log in to leave a reply.","Log in to leave a comment.":"Log in to leave a comment.","Logged in via %s":"Logged in via %s","Log out":"Log out","Your browser is blocking the cookies needed to log in and comment here. Allow cookies in your privacy settings, then reload the page.":"Your browser is blocking the cookies needed to log in and comment here. Allow cookies in your privacy settings, then reload the page.","Email":"Email","(Address never made public)":"(Address never made public)","Instantly":"Instantly","Daily":"Daily","Reply":"Reply","Comment":"Comment","WordPress":"WordPress","Weekly":"Weekly","Notify me of new posts":"Notify me of new posts","Email me new posts":"Email me new posts","Email me new comments":"Email me new comments","Cancel":"Cancel","Write a comment...":"Write a comment...","Write a reply...":"Write a reply...","Website":"Website","Optional":"Optional","We'll keep you in the loop!":"We'll keep you in the loop!","Loading your comment...":"Loading your comment...","Discover more from":"Discover more from Surfing Complexity","Subscribe now to keep reading and get access to the full archive.":"Subscribe now to keep reading and get access to the full archive.","Continue reading":"Continue reading","Never miss a beat!":"Never miss a beat!","Interested in getting blog post updates? Simply click the button below to stay in the loop!":"Interested in getting blog post updates? Simply click the button below to stay in the loop!","Enter your email address":"Enter your email address","Subscribe":"Subscribe","Comment sent successfully":"Comment sent successfully","Save my name, email, and website in this browser for the next time I comment.":"Save my name, email, and website in this browser for the next time I comment.","hovercardi18n":{"Edit your profile \u2192":"Edit your profile \u2192","View profile \u2192":"View profile \u2192","Contact":"Contact","Send money":"Send money","Gravatar not found.":"Gravatar not found.","This profile is private.":"This profile is private.","Too Many Requests.":"Too Many Requests.","Internal Server Error.":"Internal Server Error.","Sorry, we are unable to load this Gravatar profile.":"Sorry, we are unable to load this Gravatar profile."},"siteId":30291541,"postId":7912,"mustLogIn":false,"requireNameEmail":true,"commentRegistration":false,"connectURL":"https://lorinhochstein.wordpress.com/public.api/connect/?action=request\u0026domain=surfingcomplexity.blog","logoutURL":"https://lorinhochstein.wordpress.com/wp-login.php?action=logout\u0026_wpnonce=ba964db484","homeURL":"https://surfingcomplexity.blog/","subscribeToBlog":true,"subscribeToComment":true,"isJetpackCommentsLoggedIn":false,"jetpackUsername":"","jetpackUserId":0,"jetpackSignature":"","jetpackAvatar":"https://0.gravatar.com/avatar/?s=96\u0026amp;d=identicon\u0026amp;r=G","enableBlocks":true,"enableSubscriptionModal":true,"currentLocale":"en","isJetpackComments":false,"allowedBlocks":["core/paragraph","core/list","core/code","core/list-item","core/quote","core/image","core/embed","core/quote","core/code"],"embedNonce":"b03d3c1a38","verbumBundleUrl":"/wp-content/mu-plugins/jetpack-mu-wpcom-plugin/moon/jetpack_vendor/automattic/jetpack-mu-wpcom/src/features/verbum-comments/dist/index.js","isRTL":false,"vbeCacheBuster":1789740582,"iframeUniqueId":0,"colorScheme":false}
|
|
//# sourceURL=verbum-settings-js-before
|
|
</script>
|
|
<script data-wp-strategy="defer" defer id="verbum-dynamic-loader-js" src="/wp-content/mu-plugins/jetpack-mu-wpcom-plugin/moon/jetpack_vendor/automattic/jetpack-mu-wpcom/src/build/verbum-comments/assets/dynamic-loader.js?m=1772518873i&minify=false&ver=8b5296f9195db92c42e4"></script>
|
|
<script id="coblocks-loader-js-extra">
|
|
var wpcom_coblocks_js = {"coblocks_masonry_js":"https://s2.wp.com/wp-content/plugins/coblocks/2.18.1-simple-rev.4/dist/js/coblocks-masonry.min.js?m=1681832297i","coblocks_lightbox_js":"https://s2.wp.com/wp-content/plugins/coblocks/2.18.1-simple-rev.4/dist/js/coblocks-lightbox.min.js?m=1681832297i","jquery_core_js":"/wp-includes/js/jquery/jquery.min.js","jquery_migrate_js":"/wp-includes/js/jquery/jquery-migrate.min.js","masonry_js":"/wp-includes/js/masonry.min.js","imagesloaded_js":"/wp-includes/js/imagesloaded.min.js"};
|
|
var coblocksLigthboxData = {"closeLabel":"Close Gallery","leftLabel":"Previous","rightLabel":"Next"};
|
|
//# sourceURL=coblocks-loader-js-extra
|
|
</script>
|
|
<script id="jetpack-carousel-js-extra">
|
|
var jetpackSwiperLibraryPath = {"url":"/wp-content/mu-plugins/jetpack-plugin/moon/_inc/blocks/swiper.js"};
|
|
var jetpackCarouselStrings = {"widths":[370,700,1000,1200,1400,2000],"is_logged_in":"","lang":"en","ajaxurl":"https://surfingcomplexity.blog/wp-admin/admin-ajax.php","nonce":"681039ac33","display_exif":"1","display_comments":"1","single_image_gallery":"1","single_image_gallery_media_file":"","background_color":"black","comment":"Comment","post_comment":"Post Comment","write_comment":"Write a Comment...","loading_comments":"Loading Comments...","image_label":"Open image in full-screen.","download_original":"View full size \u003Cspan class=\"photo-size\"\u003E{0}\u003Cspan class=\"photo-size-times\"\u003E\u00d7\u003C/span\u003E{1}\u003C/span\u003E","no_comment_text":"Please be sure to submit some text with your comment.","no_comment_email":"Please provide an email address to comment.","no_comment_author":"Please provide your name to comment.","comment_post_error":"Sorry, but there was an error posting your comment. Please try again later.","comment_approved":"Your comment was approved.","comment_unapproved":"Your comment is in moderation.","camera":"Camera","aperture":"Aperture","shutter_speed":"Shutter Speed","focal_length":"Focal Length","copyright":"Copyright","comment_registration":"0","require_name_email":"1","login_url":"https://lorinhochstein.wordpress.com/wp-login.php?redirect_to=https%3A%2F%2Fsurfingcomplexity.blog%2F2026%2F08%2F29%2Fomnipresent-availability-risks-in-cloud-software%2F","blog_id":"30291541","meta_data":["camera","aperture","shutter_speed","focal_length","copyright"],"stats_query_args":"blog=30291541&v=wpcom&tz=-7&user_id=0&subd=lorinhochstein","is_public":"1"};
|
|
//# sourceURL=jetpack-carousel-js-extra
|
|
</script>
|
|
<script id="sharing-js-js-extra">
|
|
var sharing_js_options = {"lang":"en","counts":"1","is_stats_active":"1"};
|
|
//# sourceURL=sharing-js-js-extra
|
|
</script>
|
|
<script id="jetpack-script-data-js-before">
|
|
window.JetpackScriptData = {"site":{"host":"wpcom","is_wpcom_platform":true}};
|
|
//# sourceURL=jetpack-script-data-js-before
|
|
</script>
|
|
<script crossorigin='anonymous' type='text/javascript' src='/_static/??-eJydkNtuwjAMhl9oaThpsItpj4JM4oLbnBQ7HN5+aaEMoWmauIni3/b329anpEwMgkF0cmVPgbWJOxdNz3rRzDfNXDH55FBlPDYrbYlFdz9FykWwmBtPoen4TT/w5IAeWaey0xQsJqxPEFVjR3zArBYDKMCR9iAUX+znnpJyFHrVRlNYtXSeQBSMK7Yixnm9H7ozJnd5cdrK02wyJVGnVIHPCF/UdMMOJYHpVZXG0ltC+xjDlNweq0fMGopEDyJk7m3AjMJ6V8jZu3iztiDwD+dHw+0w+RVmIMfC6O51k/DbTR6w0BN7FLVsZlfcJLR5LLZ/9E4W11M8ha+vwgfIaMHay/ilsL/t8OU/5+uP2Wy9el9uum/q/xPm'></script>
|
|
<script id="sharing-js-js-after">
|
|
window.WPCOM_sharing_popups = window.WPCOM_sharing_popups || {};
|
|
window.WPCOM_sharing_popups[ "twitter" ] = "menubar=1,resizable=1,width=600,height=350";
|
|
window.WPCOM_sharing_popups = window.WPCOM_sharing_popups || {};
|
|
window.WPCOM_sharing_popups[ "facebook" ] = "menubar=1,resizable=1,width=600,height=400";
|
|
//# sourceURL=sharing-js-js-after
|
|
</script>
|
|
<script id="wp-emoji-settings" type="application/json">
|
|
{"baseUrl":"https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/","ext":".png","svgUrl":"https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/svg/","svgExt":".svg","source":{"concatemoji":"/wp-includes/js/wp-emoji-release.min.js?m=1783090810i&ver=7.1.1-alpha-63587"}}
|
|
</script>
|
|
<script type="module">
|
|
/*! This file is auto-generated */
|
|
var e="script#wp-emoji-settings",t=document.querySelector(e);if(!(t instanceof HTMLScriptElement))throw new Error("Element missing: "+e);const r=JSON.parse(t.text),s=(window._wpemojiSettings=r,"wpEmojiSettingsSupports"),o=["flag","emoji"];function i(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(s,JSON.stringify(t))}catch(e){}}function c(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0);const r=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);return t.every((e,t)=>e===r[t])}function p(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var n=e.getImageData(16,16,1,1);for(let e=0;e<n.data.length;e++)if(0!==n.data[e])return!1;return!0}function u(e,t,n,r){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!r(e,"\ud83e\u1fac8")}return!1}function f(e,t,n,r){let a;const s=(a="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):document.createElement("canvas")).getContext("2d",{willReadFrequently:!0}),o=(s.textBaseline="top",s.font="600 32px Arial",{});return e.forEach(e=>{o[e]=t(s,e,n,r)}),o}function a(e){var t=document.createElement("script");t.src=e,t.defer=!0,document.head.appendChild(t)}r.supports={everything:!0,everythingExceptFlag:!0},new Promise(t=>{let n=function(){try{var e=JSON.parse(sessionStorage.getItem(s));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(o),u.toString(),c.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"});const a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=e=>{i(n=e.data),a.terminate(),t(n)})}catch(e){}i(n=f(o,u,c,p))}t(n)}).then(e=>{for(const n in e)r.supports[n]=e[n],r.supports.everything=r.supports.everything&&r.supports[n],"flag"!==n&&(r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&r.supports[n]);var t;r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&!r.supports.flag,r.supports.everything||((t=r.source||{}).concatemoji?a(t.concatemoji):t.wpemoji&&t.twemoji&&(a(t.twemoji),a(t.wpemoji)))});
|
|
//# sourceURL=/wp-includes/js/wp-emoji-loader.min.js
|
|
</script>
|
|
<iframe src='https://widgets.wp.com/likes/master.html?ver=20260928#ver=20260928' scrolling='no' id='likes-master' name='likes-master' style='display:none;'></iframe>
|
|
<div id='likes-other-gravatars' role="dialog" aria-hidden="true" tabindex="-1"><div class="likes-text"><span>%d</span></div><ul class="wpl-avatars sd-like-gravatars"></ul></div>
|
|
<script src="//stats.wp.com/w.js?69" defer></script> <script type="text/javascript">
|
|
_tkq = window._tkq || [];
|
|
_stq = window._stq || [];
|
|
_tkq.push(['storeContext', {'blog_id':'30291541','blog_tz':'-7','user_lang':'en','blog_lang':'en','user_id':'0'}]);
|
|
// Prevent sending pageview tracking from WP-Admin pages.
|
|
_stq.push(['view', {'blog':'30291541','v':'wpcom','tz':'-7','user_id':'0','post':'7912','subd':'lorinhochstein'}]);
|
|
_stq.push(['extra', {'crypt':'UE5tW3cvZGRTd1VXTHx0Q0pyYT89K3QrZXh+YlZCT3lNLEN2NzQ2Njh8QTJiL1BzZVh+MTlwZTc3TkdTOFRnU25kb3V1UXJpTUJadTA4dlFxT25tVHF+dz1yZV9vbmQ5W0hZWTMxcXxpLWEsMXgyJStPWjk4NzcuYSZFYnw5K2k0PWtvMXBuK3R1XWlMUGNyeXUubS03d35Fd1JmRUJRYkVyajBIc0JhNmlPeHpUZCsyZFRXWmthbGxwOWpwJj9RcENbfFhRTHdPeFVQekE1NjdlTQ=='}]);
|
|
_stq.push([ 'clickTrackerInit', '30291541', '7912' ]);
|
|
</script>
|
|
<noscript><img src="https://pixel.wp.com/b.gif?v=noscript" style="height:1px;width:1px;overflow:hidden;position:absolute;bottom:1px;" alt="" /></noscript>
|
|
<meta id="bilmur" property="bilmur:data" content="" data-provider="wordpress.com" data-service="simple" data-site-tz="America/Los_Angeles" data-custom-props="{"logged_in":"0","wptheme":"pub\/independent-publisher-2","wptheme_is_block":"0"}" >
|
|
<script defer src="/wp-content/js/bilmur.min.js?i=19&m=202640"></script>
|
|
<script>
|
|
(function() {
|
|
'use strict';
|
|
|
|
const fetches = {};
|
|
const promises = {};
|
|
const urls = {
|
|
'wp-polyfill': '/wp-includes/js/dist/vendor/wp-polyfill.min.js?m=1786440387i&ver=3.15.0',
|
|
'verbum': '/wp-content/mu-plugins/jetpack-mu-wpcom-plugin/moon/jetpack_vendor/automattic/jetpack-mu-wpcom/src/build/verbum-comments/verbum-comments.js?m=1789673130i&minify=false&ver=d7fe322ea7d89761c0dc'
|
|
};
|
|
const loaders = {
|
|
'verbum': () => {
|
|
fetchExternalScript('wp-polyfill');
|
|
fetchExternalScript('verbum');
|
|
promises['wp-polyfill'] = promises['wp-polyfill'] || loadWPScript('wp-polyfill');
|
|
promises['verbum'] = promises['verbum'] || promises['wp-polyfill'].then( () => loadWPScript('verbum') );
|
|
return promises['verbum'];
|
|
},
|
|
|
|
};
|
|
const scriptExtras = {
|
|
|
|
};
|
|
|
|
window.WP_Enqueue_Dynamic_Script = {
|
|
loadScript: (handle) => {
|
|
if (!loaders[handle]) {
|
|
console.error('WP_Enqueue_Dynamic_Script: unregistered script `' + handle + '`.');
|
|
}
|
|
return loaders[handle]();
|
|
}
|
|
};
|
|
|
|
function fetchExternalScript(handle) {
|
|
if (!urls[handle]) {
|
|
return Promise.resolve();
|
|
}
|
|
|
|
fetches[handle] = fetches[handle] || fetch(urls[handle], { mode: 'no-cors' });
|
|
return fetches[handle];
|
|
}
|
|
|
|
function runExtraScript(handle, type, index) {
|
|
const id = 'wp-enqueue-dynamic-script:' + handle + ':' + type + ':' + (index + 1);
|
|
const template = document.getElementById(id);
|
|
if (!template) {
|
|
return Promise.reject();
|
|
}
|
|
|
|
const script = document.createElement( 'script' );
|
|
script.innerHTML = template.innerHTML;
|
|
document.body.appendChild( script );
|
|
return Promise.resolve();
|
|
}
|
|
|
|
function loadExternalScript(handle) {
|
|
if (!urls[handle]) {
|
|
return Promise.resolve();
|
|
}
|
|
|
|
return fetches[handle].then(() => {
|
|
return new Promise((resolve, reject) => {
|
|
const script = document.createElement('script');
|
|
script.onload = () => resolve();
|
|
script.onerror = (e) => reject(e);
|
|
script.src = urls[handle];
|
|
document.body.appendChild(script);
|
|
});
|
|
});
|
|
}
|
|
|
|
function loadExtra(handle, pos) {
|
|
const count = (scriptExtras[handle] && scriptExtras[handle][pos]) || 0;
|
|
let promise = Promise.resolve();
|
|
|
|
for (let i = 0; i < count; i++) {
|
|
promise = promise.then(() => runExtraScript(handle, pos, i));
|
|
}
|
|
|
|
return promise;
|
|
}
|
|
|
|
function loadWPScript(handle) {
|
|
// Core loads scripts in this order. See: https://github.com/WordPress/WordPress/blob/a59eb9d39c4fcba834b70c9e8dfd64feeec10ba6/wp-includes/class-wp-scripts.php#L428.
|
|
return loadExtra(handle, 'translations')
|
|
.then(() => loadExtra(handle, 'before'))
|
|
.then(() => loadExternalScript(handle))
|
|
.then(() => loadExtra(handle, 'after'));
|
|
}
|
|
} )();
|
|
</script>
|
|
|
|
</body>
|
|
</html>
|