490 lines
208 KiB
HTML
490 lines
208 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en" dir="ltr">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="norton-safeweb-site-verification" content="24usqpep0ejc5w6hod3dulxwciwp0djs6c6ufp96av3t4whuxovj72wfkdjxu82yacb7430qjm8adbd5ezlt4592dq4zrvadcn9j9n-0btgdzpiojfzno16-fnsnu7xd" />
|
||
|
||
|
||
<link rel="preconnect" href="https://substackcdn.com" />
|
||
|
||
|
||
|
||
<title data-rh="true">Composite SLO - Alex Ewerlöf Notes</title>
|
||
|
||
<meta data-rh="true" name="theme-color" content="#001426"/><meta data-rh="true" property="og:type" content="article"/><meta data-rh="true" property="og:title" content="Composite SLO"/><meta data-rh="true" name="twitter:title" content="Composite SLO"/><meta data-rh="true" name="description" content="Complex systems are composed of multiple parts. This page discusses how to calculate the reliability of such systems for parallel or serial dependencies with plenty of examples. It ends with tips on how to improve reliability of composite systems."/><meta data-rh="true" property="og:description" content="How to calculate the SLO of a complex system that is made of multiple components?"/><meta data-rh="true" name="twitter:description" content="How to calculate the SLO of a complex system that is made of multiple components?"/><meta data-rh="true" property="og:image" content="https://substackcdn.com/image/fetch/$s_!ibIE!,w_1200,h_675,c_fill,f_jpg,q_auto:good,fl_progressive:steep,g_auto/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8143076-aaf0-4e49-b1a1-55c1763e7017_1099x607.png"/><meta data-rh="true" name="twitter:image" content="https://substackcdn.com/image/fetch/$s_!puJb!,f_auto,q_auto:best,fl_progressive:steep/https%3A%2F%2Falexewerlof.substack.com%2Fapi%2Fv1%2Fpost_preview%2F142662722%2Ftwitter.jpg%3Fversion%3D4"/><meta data-rh="true" name="twitter:card" content="summary_large_image"/><meta data-rh="true" property="article:modified_time" content="2025-06-16T07:30:02.228Z"/>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<style>
|
||
@layer legacy, pencraftReset, pencraft;
|
||
</style>
|
||
|
||
|
||
<link rel="preload" as="style" href="https://substackcdn.com/bundle/theme/main.06a4c4c291d4583811c7.css" />
|
||
|
||
|
||
|
||
<link rel="preload" as="font" href="https://fonts.gstatic.com/s/merriweather/v33/u-4D0qyriQwlOrhSvowK_l5UcA6zuSYEqOzpPe3HOZJ5eX1WtLaQwmYiScCmDxhtNOKl8yDr3icaFF31CPDaYKfF.woff2" crossorigin />
|
||
|
||
|
||
|
||
|
||
<link rel="stylesheet" type="text/css" href="https://substackcdn.com/bundle/static/css/11100.cee9fbee.css" />
|
||
|
||
<link rel="stylesheet" type="text/css" href="https://substackcdn.com/bundle/static/css/86118.c25b9f67.css" />
|
||
|
||
<link rel="stylesheet" type="text/css" href="https://substackcdn.com/bundle/static/css/93519.6640a5b2.css" />
|
||
|
||
<link rel="stylesheet" type="text/css" href="https://substackcdn.com/bundle/static/css/42118.cba90b72.css" />
|
||
|
||
<link rel="stylesheet" type="text/css" href="https://substackcdn.com/bundle/static/css/39522.25128f14.css" />
|
||
|
||
<link rel="stylesheet" type="text/css" href="https://substackcdn.com/bundle/static/css/47358.668d8a3c.css" />
|
||
|
||
<link rel="stylesheet" type="text/css" href="https://substackcdn.com/bundle/static/css/94881.cb76fe04.css" />
|
||
|
||
<link rel="stylesheet" type="text/css" href="https://substackcdn.com/bundle/static/css/27386.72f00430.css" />
|
||
|
||
<link rel="stylesheet" type="text/css" href="https://substackcdn.com/bundle/static/css/76768.f15fc605.css" />
|
||
|
||
<link rel="stylesheet" type="text/css" href="https://substackcdn.com/bundle/static/css/41932.97d2663c.css" />
|
||
|
||
<link rel="stylesheet" type="text/css" href="https://substackcdn.com/bundle/static/css/48409.0588981c.css" />
|
||
|
||
<link rel="stylesheet" type="text/css" href="https://substackcdn.com/bundle/static/css/32552.313415d5.css" />
|
||
|
||
<link rel="stylesheet" type="text/css" href="https://substackcdn.com/bundle/static/css/27313.92c631cb.css" />
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0, viewport-fit=cover" />
|
||
<meta name="author" content="Alex Ewerlöf" />
|
||
<meta property="og:url" content="https://blog.alexewerlof.com/p/composite-slo" />
|
||
|
||
|
||
<link rel="canonical" href="https://blog.alexewerlof.com/p/composite-slo" />
|
||
|
||
|
||
|
||
|
||
|
||
<meta name="google-site-verification" content="HIy4u2xUDZkIs6P0KJw9TSYeq7KqXSPAQvZIs9911qU" />
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<link rel="shortcut icon" href="https://substackcdn.com/image/fetch/$s_!j4nj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0c1d559-cfc9-48dc-9e78-57b4c52d5b70%2Ffavicon.ico">
|
||
|
||
|
||
|
||
<link rel="icon" type="image/png" sizes="16x16" href="https://substackcdn.com/image/fetch/$s_!VSMg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0c1d559-cfc9-48dc-9e78-57b4c52d5b70%2Ffavicon-16x16.png">
|
||
|
||
|
||
|
||
<link rel="icon" type="image/png" sizes="32x32" href="https://substackcdn.com/image/fetch/$s_!CJdc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0c1d559-cfc9-48dc-9e78-57b4c52d5b70%2Ffavicon-32x32.png">
|
||
|
||
|
||
|
||
<link rel="icon" type="image/png" sizes="48x48" href="https://substackcdn.com/image/fetch/$s_!5Qve!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0c1d559-cfc9-48dc-9e78-57b4c52d5b70%2Ffavicon-48x48.png">
|
||
|
||
|
||
|
||
<link rel="apple-touch-icon" sizes="57x57" href="https://substackcdn.com/image/fetch/$s_!gV2k!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0c1d559-cfc9-48dc-9e78-57b4c52d5b70%2Fapple-touch-icon-57x57.png">
|
||
|
||
|
||
|
||
<link rel="apple-touch-icon" sizes="60x60" href="https://substackcdn.com/image/fetch/$s_!L4Uu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0c1d559-cfc9-48dc-9e78-57b4c52d5b70%2Fapple-touch-icon-60x60.png">
|
||
|
||
|
||
|
||
<link rel="apple-touch-icon" sizes="72x72" href="https://substackcdn.com/image/fetch/$s_!X3nD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0c1d559-cfc9-48dc-9e78-57b4c52d5b70%2Fapple-touch-icon-72x72.png">
|
||
|
||
|
||
|
||
<link rel="apple-touch-icon" sizes="76x76" href="https://substackcdn.com/image/fetch/$s_!Xe9B!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0c1d559-cfc9-48dc-9e78-57b4c52d5b70%2Fapple-touch-icon-76x76.png">
|
||
|
||
|
||
|
||
<link rel="apple-touch-icon" sizes="114x114" href="https://substackcdn.com/image/fetch/$s_!ef9e!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0c1d559-cfc9-48dc-9e78-57b4c52d5b70%2Fapple-touch-icon-114x114.png">
|
||
|
||
|
||
|
||
<link rel="apple-touch-icon" sizes="120x120" href="https://substackcdn.com/image/fetch/$s_!B-Gw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0c1d559-cfc9-48dc-9e78-57b4c52d5b70%2Fapple-touch-icon-120x120.png">
|
||
|
||
|
||
|
||
<link rel="apple-touch-icon" sizes="144x144" href="https://substackcdn.com/image/fetch/$s_!PA8p!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0c1d559-cfc9-48dc-9e78-57b4c52d5b70%2Fapple-touch-icon-144x144.png">
|
||
|
||
|
||
|
||
<link rel="apple-touch-icon" sizes="152x152" href="https://substackcdn.com/image/fetch/$s_!x3Pg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0c1d559-cfc9-48dc-9e78-57b4c52d5b70%2Fapple-touch-icon-152x152.png">
|
||
|
||
|
||
|
||
<link rel="apple-touch-icon" sizes="167x167" href="https://substackcdn.com/image/fetch/$s_!7ISu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0c1d559-cfc9-48dc-9e78-57b4c52d5b70%2Fapple-touch-icon-167x167.png">
|
||
|
||
|
||
|
||
<link rel="apple-touch-icon" sizes="180x180" href="https://substackcdn.com/image/fetch/$s_!k1Y3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0c1d559-cfc9-48dc-9e78-57b4c52d5b70%2Fapple-touch-icon-180x180.png">
|
||
|
||
|
||
|
||
<link rel="apple-touch-icon" sizes="1024x1024" href="https://substackcdn.com/image/fetch/$s_!hatU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0c1d559-cfc9-48dc-9e78-57b4c52d5b70%2Fapple-touch-icon-1024x1024.png">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<link rel="alternate" type="application/rss+xml" href="/feed?sectionId=67723" title="Alex Ewerlöf Notes"/>
|
||
|
||
|
||
|
||
|
||
<style>
|
||
@font-face{font-family:'Merriweather';font-style:italic;font-weight:400;font-display:fallback;src:url(https://fonts.gstatic.com/s/merriweather/v33/u-4B0qyriQwlOrhSvowK_l5-eTxCVx0ZbwLvKH2Gk9hLmp0v5yA-xXPqCzLvPee1XYk_XSf-FmTCUG36AvH4ZL_Ean2DTA.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:'Merriweather';font-style:italic;font-weight:400;font-display:fallback;src:url(https://fonts.gstatic.com/s/merriweather/v33/u-4B0qyriQwlOrhSvowK_l5-eTxCVx0ZbwLvKH2Gk9hLmp0v5yA-xXPqCzLvPee1XYk_XSf-FmTCUG3zAvH4ZL_Ean2DTA.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Merriweather';font-style:italic;font-weight:400;font-display:fallback;src:url(https://fonts.gstatic.com/s/merriweather/v33/u-4B0qyriQwlOrhSvowK_l5-eTxCVx0ZbwLvKH2Gk9hLmp0v5yA-xXPqCzLvPee1XYk_XSf-FmTCUG34AvH4ZL_Ean2DTA.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Merriweather';font-style:italic;font-weight:400;font-display:fallback;src:url(https://fonts.gstatic.com/s/merriweather/v33/u-4B0qyriQwlOrhSvowK_l5-eTxCVx0ZbwLvKH2Gk9hLmp0v5yA-xXPqCzLvPee1XYk_XSf-FmTCUG35AvH4ZL_Ean2DTA.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Merriweather';font-style:italic;font-weight:400;font-display:fallback;src:url(https://fonts.gstatic.com/s/merriweather/v33/u-4B0qyriQwlOrhSvowK_l5-eTxCVx0ZbwLvKH2Gk9hLmp0v5yA-xXPqCzLvPee1XYk_XSf-FmTCUG33AvH4ZL_Ean0.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Merriweather';font-style:normal;font-weight:400;font-display:fallback;src:url(https://fonts.gstatic.com/s/merriweather/v33/u-4D0qyriQwlOrhSvowK_l5UcA6zuSYEqOzpPe3HOZJ5eX1WtLaQwmYiScCmDxhtNOKl8yDr3icaGV31CPDaYKfFQn0.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:'Merriweather';font-style:normal;font-weight:400;font-display:fallback;src:url(https://fonts.gstatic.com/s/merriweather/v33/u-4D0qyriQwlOrhSvowK_l5UcA6zuSYEqOzpPe3HOZJ5eX1WtLaQwmYiScCmDxhtNOKl8yDr3icaEF31CPDaYKfFQn0.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Merriweather';font-style:normal;font-weight:400;font-display:fallback;src:url(https://fonts.gstatic.com/s/merriweather/v33/u-4D0qyriQwlOrhSvowK_l5UcA6zuSYEqOzpPe3HOZJ5eX1WtLaQwmYiScCmDxhtNOKl8yDr3icaG131CPDaYKfFQn0.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Merriweather';font-style:normal;font-weight:400;font-display:fallback;src:url(https://fonts.gstatic.com/s/merriweather/v33/u-4D0qyriQwlOrhSvowK_l5UcA6zuSYEqOzpPe3HOZJ5eX1WtLaQwmYiScCmDxhtNOKl8yDr3icaGl31CPDaYKfFQn0.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Merriweather';font-style:normal;font-weight:400;font-display:fallback;src:url(https://fonts.gstatic.com/s/merriweather/v33/u-4D0qyriQwlOrhSvowK_l5UcA6zuSYEqOzpPe3HOZJ5eX1WtLaQwmYiScCmDxhtNOKl8yDr3icaFF31CPDaYKfF.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
|
||
|
||
</style>
|
||
|
||
|
||
|
||
|
||
|
||
<style data-pub-theme-prefix>:root{--color_theme_bg_pop:#FFBC52;--background_pop:#FFBC52;--color_theme_bg_web:#001426;--cover_bg_color:#001426;--cover_bg_color_secondary:#0f2233;--background_pop_darken:#ffb238;--print_on_pop:#ffffff;--color_theme_bg_pop_darken:#ffb238;--color_theme_print_on_pop:#ffffff;--color_theme_bg_pop_20:rgba(255, 188, 82, 0.2);--color_theme_bg_pop_30:rgba(255, 188, 82, 0.3);--print_pop:#ffbc52;--color_theme_accent:#ffbc52;--cover_print_primary:#ffffff;--cover_print_secondary:#d9d9d9;--cover_print_tertiary:#d9d9d9;--cover_border_color:#ffffff;--font_family_headings_preset:'SF Pro Display', -apple-system, system-ui, BlinkMacSystemFont, 'Inter', 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';--font_weight_headings_preset:900;--font_family_body_preset:Merriweather,sans-serif;--font_weight_body_preset:400;--font_preset_heading:sans;--font_preset_body:fancy_serif;--home_hero:feature-media;--home_posts:custom;--home_show_top_posts:true;--web_bg_color:#001426;--background_contrast_1:#0f2233;--background_contrast_2:#223443;--background_contrast_3:#485663;--background_contrast_4:#6d7882;--background_contrast_5:#aeb5ba;--color_theme_bg_contrast_1:#0f2233;--color_theme_bg_contrast_2:#223443;--color_theme_bg_contrast_3:#485663;--color_theme_bg_contrast_4:#6d7882;--color_theme_bg_contrast_5:#aeb5ba;--color_theme_bg_elevated:#0f2233;--color_theme_bg_elevated_secondary:#223443;--color_theme_bg_elevated_tertiary:#485663;--color_theme_detail:#192b3c;--background_contrast_pop:rgba(255, 188, 82, 0.4);--color_theme_bg_contrast_pop:rgba(255, 188, 82, 0.4);--theme_bg_is_dark:1;--print_on_web_bg_color:hsl(208.4210526315789, 25.00000000000006%, 90.74509803921569%);--print_secondary_on_web_bg_color:#99a1a8;--footer_bg_color:#000C17;--footer_bg_color_h:208.69565217391306;--footer_bg_color_s:100%;--footer_bg_color_l:4.509803921568627%;--print_on_footer_bg_color:hsl(208.69565217391306, 25.000000000000057%, 90.45098039215686%);--print_secondary_on_footer_bg_color:#999ea2;--footer_bg_contrast_1:#0f1b25;--footer_bg_contrast_2:#222d36;--footer_bg_contrast_3:#485158;--footer_bg_contrast_4:#6d737a;--footer_bg_elevated:#0f1b25;--footer_bg_elevated_secondary:#222d36;--footer_bg_elevated_tertiary:#485158;--footer_detail_color:#19242e;--background_pop_rgb:255, 188, 82;--color_theme_bg_pop_rgb:255, 188, 82;--color_theme_accent_rgb:255, 188, 82;}</style>
|
||
|
||
|
||
<link rel="stylesheet" href="https://substackcdn.com/bundle/theme/main.06a4c4c291d4583811c7.css" />
|
||
|
||
|
||
<style data-pub-theme-postfix></style>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<script async="true" src="https://www.googletagmanager.com/gtag/js?id=G-G8RXW18CW7&l=GA4DataLayer" >
|
||
</script>
|
||
|
||
</head>
|
||
|
||
<body class="">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div id="entry">
|
||
<div id="main" style="--post-preview-border-radius:var(--border-radius-xs);" class="main typography use-theme-bg"><div class="pencraft pc-display-contents pc-reset pubTheme-yiXxQA"><div data-testid="navbar" class="main-menu"><div class="mainMenuContent-DME8DR"><div style="position:relative;height:93px;" class="pencraft pc-display-flex pc-gap-12 pc-paddingLeft-20 pc-paddingRight-20 pc-paddingTop-0 pc-paddingBottom-0 pc-justifyContent-space-between pc-alignItems-center pc-reset border-bottom-detail-k1F6C4 topBar-pIF0J1"><div style="visibility:visible;flex:1 0 0;" class="logoContainer-p12gJb"><a href="/" native class="pencraft pc-display-contents pc-reset"><div draggable="false" class="pencraft pc-display-flex pc-position-relative pc-reset"><div style="width:40px;height:40px;" class="pencraft pc-display-flex pc-reset bg-white-ZBV5av pc-borderRadius-sm overflow-hidden-WdpwT6 sizing-border-box-DggLA4"><picture class="pencraft pc-display-contents pc-reset"><source type="image/webp" sizes="40px" srcset="https://substackcdn.com/image/fetch/$s_!_Ur2!,w_40,h_40,c_fill,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c58cb07-9341-402b-bcdb-9fa767c2cdac_500x500.png 40w, https://substackcdn.com/image/fetch/$s_!_Ur2!,w_80,h_80,c_fill,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c58cb07-9341-402b-bcdb-9fa767c2cdac_500x500.png 80w, https://substackcdn.com/image/fetch/$s_!_Ur2!,w_120,h_120,c_fill,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c58cb07-9341-402b-bcdb-9fa767c2cdac_500x500.png 120w" style="display:none;"/><img style="object-fit:cover;width:40px;height:40px;" src="https://substackcdn.com/image/fetch/$s_!_Ur2!,w_40,h_40,c_fill,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c58cb07-9341-402b-bcdb-9fa767c2cdac_500x500.png" srcset="https://substackcdn.com/image/fetch/$s_!_Ur2!,w_40,h_40,c_fill,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c58cb07-9341-402b-bcdb-9fa767c2cdac_500x500.png 40w, https://substackcdn.com/image/fetch/$s_!_Ur2!,w_80,h_80,c_fill,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c58cb07-9341-402b-bcdb-9fa767c2cdac_500x500.png 80w, https://substackcdn.com/image/fetch/$s_!_Ur2!,w_120,h_120,c_fill,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c58cb07-9341-402b-bcdb-9fa767c2cdac_500x500.png 120w" sizes="40px" alt="Alex Ewerlöf Notes" draggable="false" class="pencraft pc-reset"/></picture></div></div></a></div><div style="flex-basis:0px;flex-grow:2;min-width:0px;display:flex;justify-content:center;" class="logoTopCenterSlot-hss6WZ"><div style="flex-grow:0;" class="titleContainer-DJYq5v overflowVisible-joA5t0"><h1 id="wordlogo" class="pencraft pc-reset font-pub-headings-FE5byy reset-IxiVJZ title-oOnUGd titleWithWordmark-GfqxEZ"><a href="/" class="pencraft pc-display-contents pc-reset"><img alt="Alex Ewerlöf Notes" src="https://substackcdn.com/image/fetch/$s_!3m6V!,e_trim:10:white/e_trim:10:transparent/h_84,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd56dc7c-4b9f-43f2-99a1-ecc995284940_1200x256.png" style="max-height:42px;" class="wordmark-WcDTTu"/></a></h1></div></div><div style="flex-basis:0px;flex-grow:1;min-width:fit-content;" class="pencraft pc-display-flex pc-justifyContent-flex-end pc-alignItems-center pc-reset buttonsContainerContainer-ThaN_w"><div class="buttonsContainer-SJBuep"><div class="pencraft pc-display-flex pc-gap-8 pc-justifyContent-flex-end pc-alignItems-center pc-reset navbar-buttons"><div class="pencraft pc-display-flex pc-gap-4 pc-reset"><span data-state="closed"><button tabindex="0" type="button" aria-label="Search" class="pencraft pc-reset pencraft iconButton-mq_Et5 iconButtonBase-dJGHgN buttonBase-GK1x3M buttonStyle-r7yGCK size_md-gCDS3o priority_tertiary-rlke8z"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.3-4.3"></path></svg></button></span><button tabindex="0" type="button" aria-label="Share Publication" id="radix-P0-4" aria-haspopup="menu" aria-expanded="false" data-state="closed" class="pencraft pc-reset pencraft iconButton-mq_Et5 iconButtonBase-dJGHgN buttonBase-GK1x3M buttonStyle-r7yGCK size_md-gCDS3o priority_tertiary-rlke8z"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-share"><path d="M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8"></path><polyline points="16 6 12 2 8 6"></polyline><line x1="12" x2="12" y1="2" y2="15"></line></svg></button></div><button tabindex="0" type="button" data-testid="noncontributor-cta-button" class="pencraft pc-reset pencraft buttonBase-GK1x3M buttonText-X0uSmG buttonStyle-r7yGCK priority_primary-RfbeYt size_md-gCDS3o">Subscribe</button><button tabindex="0" data-native="true" type="button" data-href="https://substack.com/sign-in?redirect=%2Fp%2Fcomposite-slo%3Futm_campaign%3Dhow-to-talk-about-deadlines-at-work%26utm_medium%3Dnewsletter%26utm_source%3Dleadershipintech&for_pub=alexewerlof" class="pencraft pc-reset pencraft buttonBase-GK1x3M buttonText-X0uSmG buttonStyle-r7yGCK priority_tertiary-rlke8z size_md-gCDS3o">Sign in</button></div></div></div></div></div><div style="background-color:#001426;height:94px;"></div></div></div><div><script nonce="nF8kJC9AKHtLEB8weHmwWA" type="application/ld+json">{"@context":"https://schema.org","@type":"NewsArticle","url":"https://blog.alexewerlof.com/p/composite-slo","mainEntityOfPage":"https://blog.alexewerlof.com/p/composite-slo","headline":"Composite SLO","description":"Complex systems are composed of multiple parts. This page discusses how to calculate the reliability of such systems for parallel or serial dependencies with plenty of examples. It ends with tips on how to improve reliability of composite systems.","image":[{"@type":"ImageObject","url":"https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8143076-aaf0-4e49-b1a1-55c1763e7017_1099x607.png"}],"datePublished":"2024-03-25T05:30:17+00:00","dateModified":"2024-03-25T05:30:17+00:00","isAccessibleForFree":false,"author":[{"@type":"Person","name":"Alex Ewerl\u00F6f","url":"https://substack.com/@alexewerlof","description":"Writes about technical leadership, growth mindset, and system reliability engineering. Senior Staff Engineer, MSc Systems Engineering from KTH, Stockholmer, dad, amateur artist. Read more here: https://www.alexewerlof.com/who","identifier":"user:87732486","sameAs":["https://twitter.com/alexewerlof"],"image":{"@type":"ImageObject","contentUrl":"https://substackcdn.com/image/fetch/$s_!IRtW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2713990-da82-481b-b579-01a7aaa5b85b_560x560.jpeg","thumbnailUrl":"https://substackcdn.com/image/fetch/$s_!IRtW!,w_128,h_128,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2713990-da82-481b-b579-01a7aaa5b85b_560x560.jpeg"}}],"publisher":{"@type":"Organization","name":"Alex Ewerl\u00F6f Notes","url":"https://blog.alexewerlof.com","description":"Technical Leadership, Reliability Engineering, Growth","interactionStatistic":{"@type":"InteractionCounter","name":"Subscribers","interactionType":"https://schema.org/SubscribeAction","userInteractionCount":10000},"identifier":"pub:1002265","logo":{"@type":"ImageObject","url":"https://substackcdn.com/image/fetch/$s_!_Ur2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c58cb07-9341-402b-bcdb-9fa767c2cdac_500x500.png","contentUrl":"https://substackcdn.com/image/fetch/$s_!_Ur2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c58cb07-9341-402b-bcdb-9fa767c2cdac_500x500.png","thumbnailUrl":"https://substackcdn.com/image/fetch/$s_!_Ur2!,w_128,h_128,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c58cb07-9341-402b-bcdb-9fa767c2cdac_500x500.png"},"image":{"@type":"ImageObject","url":"https://substackcdn.com/image/fetch/$s_!_Ur2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c58cb07-9341-402b-bcdb-9fa767c2cdac_500x500.png","contentUrl":"https://substackcdn.com/image/fetch/$s_!_Ur2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c58cb07-9341-402b-bcdb-9fa767c2cdac_500x500.png","thumbnailUrl":"https://substackcdn.com/image/fetch/$s_!_Ur2!,w_128,h_128,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c58cb07-9341-402b-bcdb-9fa767c2cdac_500x500.png"},"sameAs":["https://twitter.com/alexewerlof"]},"interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/LikeAction","userInteractionCount":10},{"@type":"InteractionCounter","interactionType":"https://schema.org/ShareAction","userInteractionCount":1},{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":4}]}</script><script nonce="nF8kJC9AKHtLEB8weHmwWA" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Alex Ewerl\u00F6f Notes","item":"https://blog.alexewerlof.com"},{"@type":"ListItem","position":2,"name":"Composite SLO","item":"https://blog.alexewerlof.com/p/composite-slo"}]}</script><div aria-label="Post" role="main" class="single-post-container"><div class="container"><div class="single-post"><div class="pencraft pc-display-contents pc-reset pubTheme-yiXxQA"><article class="typography newsletter-post post"><div role="region" aria-label="Post header" class="post-header"><div class="pencraft pc-display-flex pc-reset post-label"><a href="https://blog.alexewerlof.com/s/sre/?utm_source=substack&utm_medium=menu" class="pencraft pc-reset color-secondary-ls1g8s line-height-20-t4M0El font-meta-MWBumP size-14-MLPa7j weight-medium-fw81nC transform-uppercase-yKDgcq reset-IxiVJZ meta-EgzBVA">Reliability Engineering</a></div><h1 dir="auto" class="post-title published title-X77sOw">Composite SLO</h1><h3 dir="auto" class="subtitle subtitle-HEEcLo">How to calculate the SLO of a complex system that is made of multiple components?</h3><div aria-label="Post UFI" role="region" class="pencraft pc-display-flex pc-flexDirection-column pc-paddingBottom-16 pc-reset"><div class="pencraft pc-display-flex pc-paddingTop-16 pc-paddingBottom-16 pc-justifyContent-space-between pc-alignItems-center pc-reset"><div class="pencraft pc-display-flex pc-gap-12 pc-alignItems-center pc-reset byline-wrapper"><div class="pencraft pc-display-flex pc-reset"><div class="pencraft pc-display-flex pc-flexDirection-row pc-gap-8 pc-alignItems-center pc-justifyContent-flex-start pc-reset"><div style="--scale:36px;--offset:9px;--border-width:4.5px;" class="pencraft pc-display-flex pc-flexDirection-row pc-alignItems-center pc-justifyContent-flex-start pc-reset ltr-qDBmby"><a href="https://substack.com/@alexewerlof" aria-label="View Alex Ewerlöf's profile" class="pencraft pc-display-contents pc-reset"><div style="--scale:36px;" tabindex="0" class="pencraft pc-display-flex pc-width-36 pc-height-36 pc-justifyContent-center pc-alignItems-center pc-position-relative pc-reset bg-secondary-UUD3_J flex-auto-j3S2WA animate-XFJxE4 outline-detail-vcQLyr pc-borderRadius-full overflow-hidden-WdpwT6 sizing-border-box-DggLA4 pressable-sm-YIJFKJ showFocus-sk_vEm container-TAtrWj interactive-UkK0V6 avatar-u8q6xB last-JfNEJ_"><div style="--scale:36px;" title="Alex Ewerlöf" class="pencraft pc-display-flex pc-width-36 pc-height-36 pc-justifyContent-center pc-alignItems-center pc-position-relative pc-reset bg-secondary-UUD3_J flex-auto-j3S2WA outline-detail-vcQLyr pc-borderRadius-full overflow-hidden-WdpwT6 sizing-border-box-DggLA4 container-TAtrWj"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IRtW!,w_36,h_36,c_fill,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2713990-da82-481b-b579-01a7aaa5b85b_560x560.jpeg 1x, https://substackcdn.com/image/fetch/$s_!IRtW!,w_72,h_72,c_fill,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2713990-da82-481b-b579-01a7aaa5b85b_560x560.jpeg 2x, https://substackcdn.com/image/fetch/$s_!IRtW!,w_108,h_108,c_fill,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2713990-da82-481b-b579-01a7aaa5b85b_560x560.jpeg 3x"/><img src="https://substackcdn.com/image/fetch/$s_!IRtW!,w_36,h_36,c_fill,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2713990-da82-481b-b579-01a7aaa5b85b_560x560.jpeg" alt="Alex Ewerlöf's avatar" srcset="https://substackcdn.com/image/fetch/$s_!IRtW!,w_36,h_36,c_fill,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2713990-da82-481b-b579-01a7aaa5b85b_560x560.jpeg 1x, https://substackcdn.com/image/fetch/$s_!IRtW!,w_72,h_72,c_fill,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2713990-da82-481b-b579-01a7aaa5b85b_560x560.jpeg 2x, https://substackcdn.com/image/fetch/$s_!IRtW!,w_108,h_108,c_fill,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2713990-da82-481b-b579-01a7aaa5b85b_560x560.jpeg 3x" width="36" height="36" draggable="false" class="img-OACg1c object-fit-cover-u4ReeV pencraft pc-reset"/></picture></div></div></a></div></div></div><div class="pencraft pc-display-flex pc-flexDirection-column pc-reset"><div class="pencraft pc-reset color-primary-zABazT line-height-20-t4M0El font-meta-MWBumP size-11-NuY2Zx weight-medium-fw81nC transform-uppercase-yKDgcq reset-IxiVJZ meta-EgzBVA"><span style="min-width:0;" data-state="closed"><a href="https://substack.com/@alexewerlof" class="pencraft pc-reset decoration-hover-underline-ClDVRM reset-IxiVJZ">Alex Ewerlöf</a></span></div><div class="pencraft pc-display-flex pc-gap-4 pc-reset"><div class="pencraft pc-reset color-secondary-ls1g8s line-height-20-t4M0El font-meta-MWBumP size-11-NuY2Zx weight-medium-fw81nC transform-uppercase-yKDgcq reset-IxiVJZ meta-EgzBVA"><time datetime="2024-03-25T05:30:17.087Z" title="2024-03-25T05:30:17.087Z">Mar 25, 2024</time></div><div class="pencraft pc-reset color-secondary-ls1g8s line-height-20-t4M0El font-meta-MWBumP size-11-NuY2Zx weight-medium-fw81nC transform-uppercase-yKDgcq reset-IxiVJZ meta-EgzBVA">∙ Paid</div></div></div></div></div><div class="pencraft pc-display-flex pc-gap-16 pc-justifyContent-space-between pc-alignItems-center pc-reset flex-grow-rzmknG post-ufi"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><div class="like-button-container post-ufi-button style-button"><button tabindex="0" type="button" aria-label="Like (10)" aria-pressed="false" class="pencraft pc-reset pencraft post-ufi-button style-button has-label with-border"><svg aria-hidden="true" style="height:20px;width:20px;" width="20" height="20" viewBox="0 0 24 24" fill="#000000" stroke-width="2" stroke="#000" xmlns="http://www.w3.org/2000/svg" class="icon"><g><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-heart"><path d="M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z"></path></svg></g></svg><div class="label">10</div></button></div><button tabindex="0" type="button" aria-label="View comments (4)" data-href="https://blog.alexewerlof.com/p/composite-slo/comments" class="pencraft pc-reset pencraft post-ufi-button style-button post-ufi-comment-button has-label with-border"><svg aria-hidden="true" style="height:20px;width:20px;" width="20" height="20" viewBox="0 0 24 24" fill="#000000" stroke-width="2" stroke="#000" xmlns="http://www.w3.org/2000/svg" class="icon"><g><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-message-circle"><path d="M7.9 20A9 9 0 1 0 4 16.1L2 22Z"></path></svg></g></svg><div class="label">4</div></button><button tabindex="0" type="button" id="radix-P0-27" aria-haspopup="menu" aria-expanded="false" data-state="closed" class="pencraft pc-reset pencraft post-ufi-button style-button has-label with-border"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="2" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg><div class="label">1</div></button></div><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft post-ufi-button style-button has-label with-border"><div class="label">Share</div></button></div></div></div></div><div><div class="dt-post-body"><div class="available-content"><div dir="auto" class="body markup"><p><span>Complex systems are made of many components. We may have a </span><a href="https://blog.alexewerlof.com/p/slo">Service Level Objective (SLO)</a><span> for each component but how do we calculate the SLO for the entire system?</span></p><p>For example, if you have 4 replicas of a microservice, how exactly does it improve the reliability of the whole?</p><p>Or if a system can only function if all its dependencies are functioning, how do we calculate the reliability of that system?</p><p>System engineering has two simple rules for calculating composite SLO:</p><ul><li><p><span>Multiply </span><strong>SLOs</strong><span> for </span><strong>serial</strong><span> dependencies</span></p></li><li><p><span>Multiply </span><strong>error budgets</strong><span> for </span><strong>parallel</strong><span> dependencies</span></p></li></ul><p><span>Both use a </span><a href="https://onlinestatbook.com/2/probability/basic.html">basic concept</a><span> in probability theory:</span></p><div data-component-name="Latex" class="pencraft pc-display-flex pc-paddingTop-4px pc-paddingBottom-4px pc-justifyContent-center pc-reset flex-grow-rzmknG latex-rendered"><div class="pencraft pc-display-flex pc-flexDirection-column pc-justifyContent-center pc-reset"><span style="display:block;">\(P(A \cup B) = P(A).P(B)\)</span></div></div><p><span>The probability of two </span><em>independent</em><span> events happening at the same time is the result of multiplying the probability of each one happening individually.</span></p><p>Let’s unpack that with plenty of examples.</p><p>Notes:</p><ul><li><p><em>Composite SLO</em><span> is about how to calculate the SLO of different sub-systems in a complex system. It’s not to be confused with </span><em><a href="https://blog.alexewerlof.com/p/multi-tiered-slos">multi-tiered SLO</a></em><span> which is about having multiple SLOs for the same system.</span></p></li><li><p><em>The first two examples in this article are very simplified to demonstrate the math. We then add a more complex example afterwards.</em></p></li></ul><h1 class="header-anchor-post">Serial Dependencies<div class="pencraft pc-display-flex pc-alignItems-center pc-position-absolute pc-reset header-anchor-parent"><div class="pencraft pc-display-contents pc-reset pubTheme-yiXxQA"><div id="§serial-dependencies" class="pencraft pc-reset header-anchor offset-top"></div><button tabindex="0" type="button" aria-label="Link" data-href="https://blog.alexewerlof.com/i/142662722/serial-dependencies" class="pencraft pc-reset pencraft iconButton-mq_Et5 iconButtonBase-dJGHgN buttonBase-GK1x3M buttonStyle-r7yGCK size_sm-G3LciD priority_secondary-S63h9o"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></button></div></div></h1><p>In the diagram below, we have 3 systems:</p><div class="captioned-image-container"><figure><a target="_blank" href="https://substackcdn.com/image/fetch/$s_!M_kU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56ea2bcc-6960-4683-988e-17c499ffcad6_1056x633.png" data-component-name="Image2ToDOM" class="image-link image2 is-viewable-img can-restack"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!M_kU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56ea2bcc-6960-4683-988e-17c499ffcad6_1056x633.png 424w, https://substackcdn.com/image/fetch/$s_!M_kU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56ea2bcc-6960-4683-988e-17c499ffcad6_1056x633.png 848w, https://substackcdn.com/image/fetch/$s_!M_kU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56ea2bcc-6960-4683-988e-17c499ffcad6_1056x633.png 1272w, https://substackcdn.com/image/fetch/$s_!M_kU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56ea2bcc-6960-4683-988e-17c499ffcad6_1056x633.png 1456w" sizes="100vw"/><img src="https://substackcdn.com/image/fetch/$s_!M_kU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56ea2bcc-6960-4683-988e-17c499ffcad6_1056x633.png" width="1056" height="633" data-attrs="{"src":"https://substack-post-media.s3.amazonaws.com/public/images/56ea2bcc-6960-4683-988e-17c499ffcad6_1056x633.png","srcNoWatermark":null,"fullscreen":null,"imageSize":null,"height":633,"width":1056,"resizeWidth":null,"bytes":25238,"alt":null,"title":null,"type":"image/png","href":null,"belowTheFold":true,"topImage":false,"internalRedirect":"https://blog.alexewerlof.com/i/142662722?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56ea2bcc-6960-4683-988e-17c499ffcad6_1056x633.png","isProcessing":false,"align":null,"offset":false}" alt srcset="https://substackcdn.com/image/fetch/$s_!M_kU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56ea2bcc-6960-4683-988e-17c499ffcad6_1056x633.png 424w, https://substackcdn.com/image/fetch/$s_!M_kU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56ea2bcc-6960-4683-988e-17c499ffcad6_1056x633.png 848w, https://substackcdn.com/image/fetch/$s_!M_kU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56ea2bcc-6960-4683-988e-17c499ffcad6_1056x633.png 1272w, https://substackcdn.com/image/fetch/$s_!M_kU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56ea2bcc-6960-4683-988e-17c499ffcad6_1056x633.png 1456w" sizes="100vw" loading="lazy" class="sizing-normal"/></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>System C: an API that has two hard dependencies</p><ol><li><p><span>System A: an database with the availability of </span><code>99.8%</code></p></li><li><p><span>System B: an upstream API with the availability of </span><code>95.3%</code></p></li></ol><p>For the sake of simplicity, we assume that these two dependencies run on a different infrastructure (e.g. bought from a 3rd party) and System C does not have any resilience architecture in place meaning if any of A or B go down, C also goes down.</p><p>Here, the downtime is marked in red over a period of time (e.g. 1 month):</p><div class="captioned-image-container"><figure><a target="_blank" href="https://substackcdn.com/image/fetch/$s_!RQdf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08a88e8f-9014-48dc-b20d-9e52f56f2dc1_1060x511.png" data-component-name="Image2ToDOM" class="image-link image2 is-viewable-img can-restack"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RQdf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08a88e8f-9014-48dc-b20d-9e52f56f2dc1_1060x511.png 424w, https://substackcdn.com/image/fetch/$s_!RQdf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08a88e8f-9014-48dc-b20d-9e52f56f2dc1_1060x511.png 848w, https://substackcdn.com/image/fetch/$s_!RQdf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08a88e8f-9014-48dc-b20d-9e52f56f2dc1_1060x511.png 1272w, https://substackcdn.com/image/fetch/$s_!RQdf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08a88e8f-9014-48dc-b20d-9e52f56f2dc1_1060x511.png 1456w" sizes="100vw"/><img src="https://substackcdn.com/image/fetch/$s_!RQdf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08a88e8f-9014-48dc-b20d-9e52f56f2dc1_1060x511.png" width="1060" height="511" data-attrs="{"src":"https://substack-post-media.s3.amazonaws.com/public/images/08a88e8f-9014-48dc-b20d-9e52f56f2dc1_1060x511.png","srcNoWatermark":null,"fullscreen":null,"imageSize":null,"height":511,"width":1060,"resizeWidth":null,"bytes":23678,"alt":null,"title":null,"type":"image/png","href":null,"belowTheFold":true,"topImage":false,"internalRedirect":"https://blog.alexewerlof.com/i/142662722?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08a88e8f-9014-48dc-b20d-9e52f56f2dc1_1060x511.png","isProcessing":false,"align":null,"offset":false}" alt srcset="https://substackcdn.com/image/fetch/$s_!RQdf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08a88e8f-9014-48dc-b20d-9e52f56f2dc1_1060x511.png 424w, https://substackcdn.com/image/fetch/$s_!RQdf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08a88e8f-9014-48dc-b20d-9e52f56f2dc1_1060x511.png 848w, https://substackcdn.com/image/fetch/$s_!RQdf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08a88e8f-9014-48dc-b20d-9e52f56f2dc1_1060x511.png 1272w, https://substackcdn.com/image/fetch/$s_!RQdf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08a88e8f-9014-48dc-b20d-9e52f56f2dc1_1060x511.png 1456w" sizes="100vw" loading="lazy" class="sizing-normal"/></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><span>As we can see, the probability of System C being </span><strong>available</strong><span> equals to the probability of System A </span><strong>and</strong><span> B being </span><strong>available</strong><span>.</span></p><p>SLO is expressed in percentage, but we use numbers in the 0 to 1 range when using probability math:</p><ol><li><p><span>Probability of system B being available: </span><code>0.998</code></p></li><li><p><span>Probability of System C being available: </span><code>0.953</code></p></li></ol><div data-component-name="Latex" class="pencraft pc-display-flex pc-paddingTop-4px pc-paddingBottom-4px pc-justifyContent-center pc-reset flex-grow-rzmknG latex-rendered"><div class="pencraft pc-display-flex pc-flexDirection-column pc-justifyContent-center pc-reset"><span style="display:block;">\(P_{up}(C) = P_{up}(A \cup B) = P_{up}(A).P_{up}(B) = 0.998 \times 0.953 = 0.951094\)</span></div></div><p>Expressed in percentage, the SLO of System A is 95.1094%</p><p>As you can see, the availability of System A is worse than its least reliable dependency, which is expected in the case of serial dependency.</p><div class="subscription-widget-wrap"><div class="subscription-widget show-subscribe"><div class="preamble"><p>If you like this type of knowledge, make sure to subscribe.</p></div><div data-component-name="SubscribeWidget" class="subscribe-widget"><div class="pencraft pc-display-flex pc-justifyContent-center pc-reset"><div class="container-IpPqBD"><form action="/api/v1/free?nojs=true" method="post" novalidate class="form form-M5sC90"><input type="hidden" name="first_url" value/><input type="hidden" name="first_referrer" value/><input type="hidden" name="current_url"/><input type="hidden" name="current_referrer"/><input type="hidden" name="first_session_url" value/><input type="hidden" name="first_session_referrer" value/><input type="hidden" name="referral_code"/><input type="hidden" name="source" value="subscribe-widget-preamble"/><input type="hidden" name="referring_pub_id"/><input type="hidden" name="additional_referring_pub_ids"/><input type="hidden" name="source_post_id" value="142662722"/><div class="sideBySideWrap-vGXrwP"><div class="emailInputWrapper-QlA86j"><div class="pencraft pc-display-flex pc-minWidth-0 pc-position-relative pc-reset flex-auto-j3S2WA"><input name="email" placeholder="Type your email..." type="email" class="pencraft emailInput-OkIMeB input-y4v6N4 inputText-pV_yWb"/></div></div><button tabindex="0" type="submit" disabled class="pencraft pc-reset pencraft rightButton primary subscribe-btn button-VFSdkv buttonBase-GK1x3M"><span class="button-text ">Subscribe</span></button></div><div id="error-container"></div></form></div></div></div></div></div><h1 class="header-anchor-post">Parallel Dependencies<div class="pencraft pc-display-flex pc-alignItems-center pc-position-absolute pc-reset header-anchor-parent"><div class="pencraft pc-display-contents pc-reset pubTheme-yiXxQA"><div id="§parallel-dependencies" class="pencraft pc-reset header-anchor offset-top"></div><button tabindex="0" type="button" aria-label="Link" data-href="https://blog.alexewerlof.com/i/142662722/parallel-dependencies" class="pencraft pc-reset pencraft iconButton-mq_Et5 iconButtonBase-dJGHgN buttonBase-GK1x3M buttonStyle-r7yGCK size_sm-G3LciD priority_secondary-S63h9o"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></button></div></div></h1><p>In the diagram below, we have 3 systems:</p><div class="captioned-image-container"><figure><a target="_blank" href="https://substackcdn.com/image/fetch/$s_!lPhf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6532e124-541f-49f5-874d-de3ff40f2ae2_1061x644.png" data-component-name="Image2ToDOM" class="image-link image2 is-viewable-img can-restack"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lPhf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6532e124-541f-49f5-874d-de3ff40f2ae2_1061x644.png 424w, https://substackcdn.com/image/fetch/$s_!lPhf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6532e124-541f-49f5-874d-de3ff40f2ae2_1061x644.png 848w, https://substackcdn.com/image/fetch/$s_!lPhf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6532e124-541f-49f5-874d-de3ff40f2ae2_1061x644.png 1272w, https://substackcdn.com/image/fetch/$s_!lPhf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6532e124-541f-49f5-874d-de3ff40f2ae2_1061x644.png 1456w" sizes="100vw"/><img src="https://substackcdn.com/image/fetch/$s_!lPhf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6532e124-541f-49f5-874d-de3ff40f2ae2_1061x644.png" width="1061" height="644" data-attrs="{"src":"https://substack-post-media.s3.amazonaws.com/public/images/6532e124-541f-49f5-874d-de3ff40f2ae2_1061x644.png","srcNoWatermark":null,"fullscreen":null,"imageSize":null,"height":644,"width":1061,"resizeWidth":null,"bytes":25794,"alt":null,"title":null,"type":"image/png","href":null,"belowTheFold":true,"topImage":false,"internalRedirect":"https://blog.alexewerlof.com/i/142662722?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6532e124-541f-49f5-874d-de3ff40f2ae2_1061x644.png","isProcessing":false,"align":null,"offset":false}" alt srcset="https://substackcdn.com/image/fetch/$s_!lPhf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6532e124-541f-49f5-874d-de3ff40f2ae2_1061x644.png 424w, https://substackcdn.com/image/fetch/$s_!lPhf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6532e124-541f-49f5-874d-de3ff40f2ae2_1061x644.png 848w, https://substackcdn.com/image/fetch/$s_!lPhf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6532e124-541f-49f5-874d-de3ff40f2ae2_1061x644.png 1272w, https://substackcdn.com/image/fetch/$s_!lPhf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6532e124-541f-49f5-874d-de3ff40f2ae2_1061x644.png 1456w" sizes="100vw" loading="lazy" class="sizing-normal"/></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>System C: an API gateway that has two parallel dependencies:</p><ol><li><p><span>System A: an upstream in the local region with the availability of </span><code>99.8%</code></p></li><li><p><span>System B: the same upstream in another region with the availability of </span><code>95.3%</code></p></li></ol><p>We picked the same availability numbers as before just to see how serial and parallel dependencies impact the overall system reliability.</p><p>Looking at the uptime of those systems we can see that system C is available when either System A or B are available:</p><div class="captioned-image-container"><figure><a target="_blank" href="https://substackcdn.com/image/fetch/$s_!FCu7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39e185e5-038a-4626-a025-6dd2fe16af6e_1060x514.png" data-component-name="Image2ToDOM" class="image-link image2 is-viewable-img can-restack"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FCu7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39e185e5-038a-4626-a025-6dd2fe16af6e_1060x514.png 424w, https://substackcdn.com/image/fetch/$s_!FCu7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39e185e5-038a-4626-a025-6dd2fe16af6e_1060x514.png 848w, https://substackcdn.com/image/fetch/$s_!FCu7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39e185e5-038a-4626-a025-6dd2fe16af6e_1060x514.png 1272w, https://substackcdn.com/image/fetch/$s_!FCu7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39e185e5-038a-4626-a025-6dd2fe16af6e_1060x514.png 1456w" sizes="100vw"/><img src="https://substackcdn.com/image/fetch/$s_!FCu7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39e185e5-038a-4626-a025-6dd2fe16af6e_1060x514.png" width="1060" height="514" data-attrs="{"src":"https://substack-post-media.s3.amazonaws.com/public/images/39e185e5-038a-4626-a025-6dd2fe16af6e_1060x514.png","srcNoWatermark":null,"fullscreen":null,"imageSize":null,"height":514,"width":1060,"resizeWidth":null,"bytes":23625,"alt":null,"title":null,"type":"image/png","href":null,"belowTheFold":true,"topImage":false,"internalRedirect":"https://blog.alexewerlof.com/i/142662722?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39e185e5-038a-4626-a025-6dd2fe16af6e_1060x514.png","isProcessing":false,"align":null,"offset":false}" alt srcset="https://substackcdn.com/image/fetch/$s_!FCu7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39e185e5-038a-4626-a025-6dd2fe16af6e_1060x514.png 424w, https://substackcdn.com/image/fetch/$s_!FCu7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39e185e5-038a-4626-a025-6dd2fe16af6e_1060x514.png 848w, https://substackcdn.com/image/fetch/$s_!FCu7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39e185e5-038a-4626-a025-6dd2fe16af6e_1060x514.png 1272w, https://substackcdn.com/image/fetch/$s_!FCu7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39e185e5-038a-4626-a025-6dd2fe16af6e_1060x514.png 1456w" sizes="100vw" loading="lazy" class="sizing-normal"/></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><span>As we can see, the probability of System A being </span><strong>unavailable</strong><span> equals to the probability of System B </span><strong>and</strong><span> C being </span><strong>unavailable</strong><span>.</span></p><p>Converting SLO percentage to the 0 to 1 range to make them suitable for probability math we have:</p><ol><li><p><span>Probability of system B being unavailable: </span><code>1 - 0.998 = 0.002</code></p></li><li><p><span>Probability of System C being unavailable: </span><code>1 - 0.953 = 0.047</code></p></li></ol><div data-component-name="Latex" class="pencraft pc-display-flex pc-paddingTop-4px pc-paddingBottom-4px pc-justifyContent-center pc-reset flex-grow-rzmknG latex-rendered"><div class="pencraft pc-display-flex pc-flexDirection-column pc-justifyContent-center pc-reset"><span style="display:block;">\(P_{down}(C) = P_{down}(A \cup B) = P_{down}(A).P_{down}(B) = 0.002 \times 0.047 = 0.000094\)</span></div></div><p><span>Probability of System A being unavailable = </span><code>0.002 x 0.047 = 0.000094</code></p><p><span>Converting it to the percentage, we get 0.0094% but that is unavailability (i.e. the </span><em><a href="https://blog.alexewerlof.com/p/error-budget">error budget</a></em><span>). The SLO will be the complement of that:</span></p><p><span>System A availability = </span><code>100% - 0.0094% = 99.9906%</code></p><p>As you can see, the availability of System A is better than its most reliable dependency, which is expected in the case of parallel dependency.</p><div data-component-name="SubscribeWidget" class="subscribe-widget"><div class="pencraft pc-display-flex pc-justifyContent-center pc-reset"><div class="container-IpPqBD"><form action="/api/v1/free?nojs=true" method="post" novalidate class="form form-M5sC90"><input type="hidden" name="first_url" value/><input type="hidden" name="first_referrer" value/><input type="hidden" name="current_url"/><input type="hidden" name="current_referrer"/><input type="hidden" name="first_session_url" value/><input type="hidden" name="first_session_referrer" value/><input type="hidden" name="referral_code"/><input type="hidden" name="source" value="subscribe-widget"/><input type="hidden" name="referring_pub_id"/><input type="hidden" name="additional_referring_pub_ids"/><input type="hidden" name="source_post_id" value="142662722"/><div class="sideBySideWrap-vGXrwP"><div class="emailInputWrapper-QlA86j"><div class="pencraft pc-display-flex pc-minWidth-0 pc-position-relative pc-reset flex-auto-j3S2WA"><input name="email" placeholder="Type your email..." type="email" class="pencraft emailInput-OkIMeB input-y4v6N4 inputText-pV_yWb"/></div></div><button tabindex="0" type="submit" disabled class="pencraft pc-reset pencraft rightButton primary subscribe-btn button-VFSdkv buttonBase-GK1x3M"><span class="button-text ">Subscribe</span></button></div><div id="error-container"></div></form></div></div></div><h1 class="header-anchor-post">More Complex and Realistic Example<div class="pencraft pc-display-flex pc-alignItems-center pc-position-absolute pc-reset header-anchor-parent"><div class="pencraft pc-display-contents pc-reset pubTheme-yiXxQA"><div id="§more-complex-and-realistic-example" class="pencraft pc-reset header-anchor offset-top"></div><button tabindex="0" type="button" aria-label="Link" data-href="https://blog.alexewerlof.com/i/142662722/more-complex-and-realistic-example" class="pencraft pc-reset pencraft iconButton-mq_Et5 iconButtonBase-dJGHgN buttonBase-GK1x3M buttonStyle-r7yGCK size_sm-G3LciD priority_secondary-S63h9o"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></button></div></div></h1><p>This is a typical website example:</p><div class="captioned-image-container"><figure><a target="_blank" href="https://substackcdn.com/image/fetch/$s_!dUHI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41ec82b8-09e3-4455-9dec-9ba517b16e7b_1105x1046.png" data-component-name="Image2ToDOM" class="image-link image2 is-viewable-img can-restack"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dUHI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41ec82b8-09e3-4455-9dec-9ba517b16e7b_1105x1046.png 424w, https://substackcdn.com/image/fetch/$s_!dUHI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41ec82b8-09e3-4455-9dec-9ba517b16e7b_1105x1046.png 848w, https://substackcdn.com/image/fetch/$s_!dUHI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41ec82b8-09e3-4455-9dec-9ba517b16e7b_1105x1046.png 1272w, https://substackcdn.com/image/fetch/$s_!dUHI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41ec82b8-09e3-4455-9dec-9ba517b16e7b_1105x1046.png 1456w" sizes="100vw"/><img src="https://substackcdn.com/image/fetch/$s_!dUHI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41ec82b8-09e3-4455-9dec-9ba517b16e7b_1105x1046.png" width="1105" height="1046" data-attrs="{"src":"https://substack-post-media.s3.amazonaws.com/public/images/41ec82b8-09e3-4455-9dec-9ba517b16e7b_1105x1046.png","srcNoWatermark":null,"fullscreen":null,"imageSize":null,"height":1046,"width":1105,"resizeWidth":null,"bytes":68176,"alt":null,"title":null,"type":"image/png","href":null,"belowTheFold":true,"topImage":false,"internalRedirect":null,"isProcessing":false,"align":null,"offset":false}" alt srcset="https://substackcdn.com/image/fetch/$s_!dUHI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41ec82b8-09e3-4455-9dec-9ba517b16e7b_1105x1046.png 424w, https://substackcdn.com/image/fetch/$s_!dUHI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41ec82b8-09e3-4455-9dec-9ba517b16e7b_1105x1046.png 848w, https://substackcdn.com/image/fetch/$s_!dUHI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41ec82b8-09e3-4455-9dec-9ba517b16e7b_1105x1046.png 1272w, https://substackcdn.com/image/fetch/$s_!dUHI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41ec82b8-09e3-4455-9dec-9ba517b16e7b_1105x1046.png 1456w" sizes="100vw" loading="lazy" class="sizing-normal"/></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p><strong>Static server</strong><span> serves the website assets like HTML, JavaScript, CSS, images, etc. This simple service is run behind CDN which is available from multiple locations</span></p></li><li><p><strong>CDN: </strong><span>Content Delivery Network distributes static files across the globe. CDN usually has a cache that acts as a </span><a href="https://blog.alexewerlof.com/p/fallback">fallback</a><span> mechanism for when the upstream server is down. This CDN also has a </span><a href="https://blog.alexewerlof.com/p/failover">failover</a><span> mechanism to automatically pick the next node when one of the nodes is down.</span></p></li><li><p><strong>API server:</strong><span> supports the functionality of the web app. For example, it can be a BFF (dedicated backend for frontend), or a GraphQL server abstracting away multiple other APIs toward the browser application.</span></p></li><li><p><strong>IDaaS:</strong><span> The website and API server both depend on a 3rd party identity as-a-service provider.</span></p></li></ul><p>Based on the research, you get the following availability numbers:</p><ul><li><p>The CDN provider commits to 99.9% availability for each of their edge nodes</p></li><li><p>The IDaaS provider commits to 99% availability in their SLA</p></li><li><p>The static file server is available 98% of the time based on historical data</p></li><li><p>The API server is available 95% of the time. That is because the API server has hard dependencies to other upstream services which are not shown in the diagram.</p></li></ul><p>So how do we go about calculating the availability of the browser application?</p><p>It has 3 dependencies:</p><ul><li><p><strong>CDN</strong><span> is available if any of its 3 nodes are available.</span></p><ul><li><p><span>Each CDN node has a serial dependency on the static server. Therefore, the usefulness of the CDN node is </span><code>0.999 x 0.98 = 0.97902</code><span>. This means the error budget for each CDN node is </span><code>1 - 0.97902 = 0.02098</code></p></li><li><p><span>There are 3 CDN nodes in parallel, so the collective error budget is calculated from multiplying their error budgets: </span><code>0.02098 x 0.02098 x 0.02098 = 0.00000923456</code></p></li><li><p><span>Therefore, the availability of the CDN is </span><code>1 - 0.00000923456 = 0.99999076544</code></p></li><li><p>The whole CDN (including the 3 nodes) can be seen as one serial dependency for the browser app.</p></li></ul></li><li><p><strong>API server</strong><span> is available 95% but since it also requires the IDaaS provider to serve the browser, its availability is </span><code>0.95 x 0.99 = 0.9405</code></p></li><li><p><span>IDaaS is available </span><code>99%</code><span> towards the browser too. Converted to 0-1 range, we get </span><code>0.99</code></p></li></ul><p>Putting them all together, the browser app’s availability is the multiplication of all its serial dependencies for it to be served, function, and identify the user:</p><p><code>0.99999076544 x 0.9405 x 0.99 = 0.93108640174</code></p><p><span>Converted to percentage, we get </span><code>93.108640174%</code><span> or </span><code>93.1%</code><span> for short.</span></p><p>Is it good? Is it bad? It really depends on what makes sense to your service consumers as we discussed in “lagom” SLO:</p><div data-component-name="DigestPostEmbed" class="digestPostEmbed-flwiST"><a href="https://blog.alexewerlof.com/p/lagom-slo" rel="noopener" target="_blank"><div class="pencraft pc-display-flex pc-gap-16 pc-reset"><div style="width:70px;height:70px;" class="pencraft pc-reset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WEes!,w_140,h_140,c_fill,f_webp,q_auto:good,fl_progressive:steep,g_auto/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F254c376f-0f73-460f-b011-9d0cafd2b720_895x890.png"/><img src="https://substackcdn.com/image/fetch/$s_!WEes!,w_140,h_140,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_auto/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F254c376f-0f73-460f-b011-9d0cafd2b720_895x890.png" sizes="100vw" alt="Lagom SLO" width="140" height="140" class="img-OACg1c smSquare-NGbPBa pencraft pc-reset"/></picture></div><div class="pencraft pc-display-flex pc-flexDirection-column pc-reset"><h4 class="pencraft pc-reset color-pub-primary-text-NyXPlw line-height-24-jnGwiv font-display-nhmvtD size-20-P_cSRT weight-bold-DmI9lw reset-IxiVJZ">Lagom SLO</h4><div class="pencraft pc-display-flex pc-gap-4 pc-alignItems-center pc-reset"><div class="pencraft pc-reset color-pub-secondary-text-hGQ02T line-height-20-t4M0El font-meta-MWBumP size-11-NuY2Zx weight-medium-fw81nC transform-uppercase-yKDgcq reset-IxiVJZ meta-EgzBVA"><a href="https://substack.com/profile/87732486-alex-ewerlof" class="inheritColor-WetTGJ">Alex Ewerlöf</a></div><div class="pencraft pc-reset color-pub-secondary-text-hGQ02T reset-IxiVJZ">·</div><div class="pencraft pc-reset color-pub-secondary-text-hGQ02T line-height-20-t4M0El font-meta-MWBumP size-11-NuY2Zx weight-medium-fw81nC transform-uppercase-yKDgcq reset-IxiVJZ meta-EgzBVA">December 11, 2023</div></div><div class="pencraft pc-display-flex pc-gap-16 pc-paddingTop-0 pc-paddingBottom-0 pc-alignItems-center pc-reset"><a href="https://blog.alexewerlof.com/p/lagom-slo" class="pencraft pc-reset align-center-y7ZD4w line-height-20-t4M0El font-text-qe4AeH size-13-hZTUKr weight-medium-fw81nC reset-IxiVJZ"><div class="pencraft pc-display-flex pc-gap-8 pc-alignItems-center pc-reset link-HREYZo"><span class="pencraft pc-reset color-accent-BVX_7M line-height-20-t4M0El font-text-qe4AeH size-14-MLPa7j weight-semibold-uqA4FV reset-IxiVJZ">Read full story</span><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></div></a></div></div></div></a></div><h1 class="header-anchor-post">Pro-Tips<div class="pencraft pc-display-flex pc-alignItems-center pc-position-absolute pc-reset header-anchor-parent"><div class="pencraft pc-display-contents pc-reset pubTheme-yiXxQA"><div id="§pro-tips" class="pencraft pc-reset header-anchor offset-top"></div><button tabindex="0" type="button" aria-label="Link" data-href="https://blog.alexewerlof.com/i/142662722/pro-tips" class="pencraft pc-reset pencraft iconButton-mq_Et5 iconButtonBase-dJGHgN buttonBase-GK1x3M buttonStyle-r7yGCK size_sm-G3LciD priority_secondary-S63h9o"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></button></div></div></h1><p><em><a href="https://blog.alexewerlof.com/p/faq#%C2%A7payment">My monetization strategy</a><span> is to give away most of content for free. However, these posts take anywhere from a few hours to days to draft, edit, illustrate, and publish. I pull these hours from my private time and weekends. For those who spare a few bucks, the pro-tips are a token of appreciation. The bar for pro-tips is to give tools and mindset that you can use at your work to earn more. Right now, you can get 20% off via </span><a href="https://blog.alexewerlof.com/protipsdiscount">this link</a><span>. If you don’t want to spend money, sharing it with a wider audience also helps. Thanks in advance.</span></em></p><p data-attrs="{"url":"https://blog.alexewerlof.com/p/composite-slo?utm_source=substack&utm_medium=email&utm_content=share&action=share","text":"Share","action":null,"class":null}" data-component-name="ButtonCreateButton" class="button-wrapper"><a href="https://blog.alexewerlof.com/p/composite-slo?utm_source=substack&utm_medium=email&utm_content=share&action=share" class="button primary"><span>Share</span></a></p></div></div></div><div data-testid="paywall" data-component-name="Paywall" role="region" aria-label="Paywall" class="paywall"><div style="--scale:64px;" class="pencraft pc-display-flex pc-width-64 pc-height-64 pc-justifyContent-center pc-alignItems-center pc-position-relative pc-reset bg-secondary-UUD3_J flex-auto-j3S2WA outline-detail-vcQLyr pc-borderRadius-full overflow-hidden-WdpwT6 sizing-border-box-DggLA4 container-TAtrWj paywall-unlock-avatar"><div style="--scale:64px;" title="User" class="pencraft pc-display-flex pc-width-64 pc-height-64 pc-justifyContent-center pc-alignItems-center pc-position-relative pc-reset bg-secondary-UUD3_J flex-auto-j3S2WA outline-detail-vcQLyr pc-borderRadius-full overflow-hidden-WdpwT6 sizing-border-box-DggLA4 container-TAtrWj"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IRtW!,w_64,h_64,c_fill,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2713990-da82-481b-b579-01a7aaa5b85b_560x560.jpeg 1x, https://substackcdn.com/image/fetch/$s_!IRtW!,w_128,h_128,c_fill,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2713990-da82-481b-b579-01a7aaa5b85b_560x560.jpeg 2x, https://substackcdn.com/image/fetch/$s_!IRtW!,w_192,h_192,c_fill,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2713990-da82-481b-b579-01a7aaa5b85b_560x560.jpeg 3x"/><img src="https://substackcdn.com/image/fetch/$s_!IRtW!,w_64,h_64,c_fill,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2713990-da82-481b-b579-01a7aaa5b85b_560x560.jpeg" alt="User's avatar" srcset="https://substackcdn.com/image/fetch/$s_!IRtW!,w_64,h_64,c_fill,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2713990-da82-481b-b579-01a7aaa5b85b_560x560.jpeg 1x, https://substackcdn.com/image/fetch/$s_!IRtW!,w_128,h_128,c_fill,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2713990-da82-481b-b579-01a7aaa5b85b_560x560.jpeg 2x, https://substackcdn.com/image/fetch/$s_!IRtW!,w_192,h_192,c_fill,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2713990-da82-481b-b579-01a7aaa5b85b_560x560.jpeg 3x" width="64" height="64" draggable="false" class="img-OACg1c object-fit-cover-u4ReeV pencraft pc-reset"/></picture></div></div><h2 class="paywall-title unlock-treatment-new">Continue reading this post for free, courtesy of Alex Ewerlöf.</h2><div class="paywall-cta"><a data-native="true"><button tabindex="0" type="button" class="pencraft pc-reset pencraft subscribe-btn subscribeButton-LcKYi7 paywall-cta-icon buttonBase-GK1x3M">Claim my free post</button></a></div><div class="paywall-secondary-cta"><a href="https://blog.alexewerlof.com/subscribe?simple=true&next=https%3A%2F%2Fblog.alexewerlof.com%2Fp%2Fcomposite-slo%3Futm_campaign%3Dhow-to-talk-about-deadlines-at-work%26utm_medium%3Dnewsletter%26utm_source%3Dleadershipintech&utm_source=paywall&utm_medium=web&utm_content=142662722&just_signed_up=falsesimple=true&utm_source=paywall&utm_medium=email&utm_content=142662722&next=https://blog.alexewerlof.com/p/composite-slo" data-native="true">Or purchase a paid subscription.</a></div></div></div></article></div></div></div><div class="pencraft pc-display-contents pc-reset pubTheme-yiXxQA"></div></div></div><div class="pencraft pc-display-flex pc-flexDirection-column pc-reset container-K5XPov"></div><div class="pencraft pc-display-contents pc-reset pubTheme-yiXxQA"><div class="footer-wrap compact-footer"><div class="visibility-check"></div><div class="footer custom-themed-background"><div class="pencraft pc-display-flex pc-gap-12 pc-alignItems-center pc-reset flex-grow-rzmknG"><div class="pencraft pc-display-flex pc-minWidth-0 pc-reset flex-grow-rzmknG nowrap-QngyoB"><span><span>© 2026 Alex Ewerlöf</span><span> · </span><a href="https://substack.com/privacy" target="_blank" rel="noopener" class="pencraft pc-reset decoration-underline-ClTkYc">Privacy</a><span> ∙ </span><a href="https://substack.com/tos" target="_blank" rel="noopener" class="pencraft pc-reset decoration-underline-ClTkYc">Terms</a><span> ∙ </span><a href="https://substack.com/ccpa#personal-data-collected" target="_blank" rel="noopener" class="pencraft pc-reset decoration-underline-ClTkYc">Collection notice</a></span></div><div class="pencraft pc-display-flex pc-reset"><div class="pencraft pc-display-flex pc-gap-8 pc-justifyContent-center pc-alignItems-center pc-reset footerButtons-ap9Sk7"><a data-native="true" href="https://substack.com/signup?utm_source=substack&utm_medium=web&utm_content=footer" class="footerSubstackCta-v5HWfj sizeSm-F_aC8H"><svg aria-hidden="true" width="1000" height="1000" viewBox="0 0 1000 1000" fill="#ff6719" stroke-width="1.8" stroke="none" xmlns="http://www.w3.org/2000/svg"><g><path d="M764.166 348.371H236.319V419.402H764.166V348.371Z"></path><path d="M236.319 483.752V813.999L500.231 666.512L764.19 813.999V483.752H236.319Z"></path><path d="M764.166 213H236.319V284.019H764.166V213Z"></path></g></svg> Start your Substack</a><a data-native="true" href="https://substack.com/app/app-store-redirect?utm_campaign=app-marketing&utm_content=web-footer-button" class="footerSubstackCta-v5HWfj getTheApp-Yk3w1O noIcon-z7v9D8 sizeSm-F_aC8H sizeSmNoIcon-KRHkpZ">Get the app</a></div></div><div class="pencraft pc-display-flex pc-minWidth-0 pc-justifyContent-flex-end pc-reset flex-grow-rzmknG"><div translated class="pencraft pc-reset reset-IxiVJZ footer-slogan-blurb"><a href="https://substack.com" data-native="true">Substack</a> is the home for great culture</div></div></div></div></div></div></div><div role="region" aria-label="Notifications (F8)" tabindex="-1" style="pointer-events:none;"><ol tabindex="-1" style="--offset:0px;z-index:1000;" class="viewport-_BM4Bg"></ol></div><div></div><script suppressHydrationWarning nonce="nF8kJC9AKHtLEB8weHmwWA">window.__staticRouterHydrationData = JSON.parse("{\"loaderData\":{},\"actionData\":null,\"errors\":null}");</script>
|
||
</div>
|
||
|
||
|
||
<script src="https://js.sentry-cdn.com/6c2ff3e3828e4017b7faf7b63e24cdf8.min.js" crossorigin="anonymous"></script>
|
||
<script nonce="nF8kJC9AKHtLEB8weHmwWA">
|
||
window.Sentry && window.Sentry.onLoad(function() {
|
||
window.Sentry.init({
|
||
environment: window._preloads.sentry_environment,
|
||
dsn: window._preloads.sentry_dsn,
|
||
})
|
||
})
|
||
</script>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<script nonce="nF8kJC9AKHtLEB8weHmwWA">window._preloads = JSON.parse("{\"cspNonce\":\"nF8kJC9AKHtLEB8weHmwWA\",\"isEU\":false,\"language\":\"en\",\"country\":\"US\",\"leaderboardCountries\":[\"ES\",\"FR\",\"GB\",\"IT\",\"NL\"],\"enabledLeaderboardCountries\":[\"ES\",\"FR\",\"GB\",\"IT\",\"NL\"],\"userLocale\":{\"language\":\"en\",\"region\":\"US\",\"source\":\"accept-language\"},\"base_url\":\"https://blog.alexewerlof.com\",\"stripe_publishable_key\":\"pk_live_51QfnARLDSWi1i85FBpvw6YxfQHljOpWXw8IKi5qFWEzvW8HvoD8cqTulR9UWguYbYweLvA16P7LN6WZsGdZKrNkE00uGbFaOE3\",\"captcha_site_key\":\"6LeI15YsAAAAAPXyDcvuVqipba_jEFQCjz1PFQoz\",\"pub\":{\"apple_pay_disabled\":false,\"apex_domain\":null,\"author_id\":87732486,\"byline_images_enabled\":true,\"bylines_enabled\":true,\"chartable_token\":null,\"community_enabled\":true,\"copyright\":\"Alex Ewerl\u00F6f\",\"cover_photo_url\":\"https://substack-post-media.s3.amazonaws.com/public/images/ffddf167-cd34-41aa-9334-ad26acca3ed2_600x600.png\",\"created_at\":\"2022-07-14T22:27:58.683Z\",\"custom_domain_optional\":false,\"custom_domain\":\"blog.alexewerlof.com\",\"default_comment_sort\":\"oldest_first\",\"default_coupon\":null,\"default_group_coupon\":\"d8f4bfde\",\"default_show_guest_bios\":true,\"email_banner_url\":\"https://substack-post-media.s3.amazonaws.com/public/images/74f8e318-c490-4be2-b868-df0285fc2f3e_1100x220.png\",\"email_from_name\":\"Alex Ewerl\u00F6f Notes\",\"email_from\":null,\"embed_tracking_disabled\":false,\"explicit\":false,\"expose_paywall_content_to_search_engines\":true,\"fb_pixel_id\":null,\"fb_site_verification_token\":null,\"flagged_as_spam\":false,\"founding_subscription_benefits\":[\"1:1 chat, 60m video call\"],\"free_subscription_benefits\":[\"All the public posts\"],\"ga_pixel_id\":null,\"google_site_verification_token\":\"HIy4u2xUDZkIs6P0KJw9TSYeq7KqXSPAQvZIs9911qU\",\"google_tag_manager_token\":\"\",\"hero_image\":null,\"hero_text\":\"Technical Leadership, Reliability Engineering, Growth\",\"hide_intro_subtitle\":null,\"hide_intro_title\":null,\"hide_podcast_feed_link\":false,\"homepage_type\":\"newspaper\",\"id\":1002265,\"image_thumbnails_always_enabled\":false,\"invite_only\":false,\"hide_podcast_from_pub_listings\":false,\"hide_podcast_from_pub_listings_prior_to\":null,\"language\":\"en\",\"logo_url_wide\":\"https://substackcdn.com/image/fetch/$s_!3m6V!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd56dc7c-4b9f-43f2-99a1-ecc995284940_1200x256.png\",\"logo_url\":\"https://substackcdn.com/image/fetch/$s_!_Ur2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c58cb07-9341-402b-bcdb-9fa767c2cdac_500x500.png\",\"minimum_group_size\":2,\"moderation_enabled\":true,\"name\":\"Alex Ewerl\u00F6f Notes\",\"paid_subscription_benefits\":[\"The pro-tips on all articles\",\"Support spending my private time to write\",\"Access to full archive\"],\"parsely_pixel_id\":null,\"chartbeat_domain\":null,\"payments_state\":\"enabled\",\"paywall_free_trial_enabled\":true,\"podcast_art_url\":null,\"paid_podcast_episode_art_url\":null,\"podcast_byline\":null,\"podcast_description\":null,\"podcast_enabled\":false,\"podcast_feed_url\":null,\"podcast_title\":null,\"post_preview_limit\":null,\"primary_user_id\":87732486,\"require_clickthrough\":false,\"show_pub_podcast_tab\":false,\"show_recs_on_homepage\":true,\"subdomain\":\"alexewerlof\",\"subscriber_invites\":0,\"support_email\":null,\"theme_var_background_pop\":\"#786CFF\",\"theme_var_color_links\":false,\"theme_var_cover_bg_color\":null,\"trial_end_override\":null,\"twitter_pixel_id\":null,\"type\":\"newsletter\",\"post_reaction_faces_enabled\":true,\"is_personal_mode\":false,\"plans\":[{\"id\":\"monthly7_5eur\",\"object\":\"plan\",\"active\":true,\"aggregate_usage\":null,\"amount\":750,\"amount_decimal\":\"750\",\"billing_scheme\":\"per_unit\",\"created\":1728579524,\"currency\":\"eur\",\"interval\":\"month\",\"interval_count\":1,\"livemode\":true,\"metadata\":{\"substack\":\"yes\"},\"meter\":null,\"nickname\":\"\u20AC7.50 a month\",\"product\":\"prod_R0QYoetykRH93k\",\"tiers_mode\":null,\"transform_usage\":null,\"trial_period_days\":null,\"usage_type\":\"licensed\",\"currency_options\":{\"aud\":{\"custom_unit_amount\":null,\"tax_behavior\":\"unspecified\",\"unit_amount\":1300,\"unit_amount_decimal\":\"1300\"},\"brl\":{\"custom_unit_amount\":null,\"tax_behavior\":\"unspecified\",\"unit_amount\":4400,\"unit_amount_decimal\":\"4400\"},\"cad\":{\"custom_unit_amount\":null,\"tax_behavior\":\"unspecified\",\"unit_amount\":1300,\"unit_amount_decimal\":\"1300\"},\"chf\":{\"custom_unit_amount\":null,\"tax_behavior\":\"unspecified\",\"unit_amount\":800,\"unit_amount_decimal\":\"800\"},\"dkk\":{\"custom_unit_amount\":null,\"tax_behavior\":\"unspecified\",\"unit_amount\":6000,\"unit_amount_decimal\":\"6000\"},\"eur\":{\"custom_unit_amount\":null,\"tax_behavior\":\"unspecified\",\"unit_amount\":750,\"unit_amount_decimal\":\"750\"},\"gbp\":{\"custom_unit_amount\":null,\"tax_behavior\":\"unspecified\",\"unit_amount\":700,\"unit_amount_decimal\":\"700\"},\"inr\":{\"custom_unit_amount\":null,\"tax_behavior\":\"unspecified\",\"unit_amount\":82500,\"unit_amount_decimal\":\"82500\"},\"jpy\":{\"custom_unit_amount\":null,\"tax_behavior\":\"unspecified\",\"unit_amount\":1500,\"unit_amount_decimal\":\"1500\"},\"mxn\":{\"custom_unit_amount\":null,\"tax_behavior\":\"unspecified\",\"unit_amount\":15000,\"unit_amount_decimal\":\"15000\"},\"nok\":{\"custom_unit_amount\":null,\"tax_behavior\":\"unspecified\",\"unit_amount\":8500,\"unit_amount_decimal\":\"8500\"},\"nzd\":{\"custom_unit_amount\":null,\"tax_behavior\":\"unspecified\",\"unit_amount\":1500,\"unit_amount_decimal\":\"1500\"},\"pln\":{\"custom_unit_amount\":null,\"tax_behavior\":\"unspecified\",\"unit_amount\":3300,\"unit_amount_decimal\":\"3300\"},\"sek\":{\"custom_unit_amount\":null,\"tax_behavior\":\"unspecified\",\"unit_amount\":8500,\"unit_amount_decimal\":\"8500\"},\"usd\":{\"custom_unit_amount\":null,\"tax_behavior\":\"unspecified\",\"unit_amount\":900,\"unit_amount_decimal\":\"900\"}}},{\"id\":\"yearly74eur\",\"object\":\"plan\",\"active\":true,\"aggregate_usage\":null,\"amount\":7400,\"amount_decimal\":\"7400\",\"billing_scheme\":\"per_unit\",\"created\":1728579524,\"currency\":\"eur\",\"interval\":\"year\",\"interval_count\":1,\"livemode\":true,\"metadata\":{\"substack\":\"yes\"},\"meter\":null,\"nickname\":\"\u20AC74 a year\",\"product\":\"prod_R0QYUJf9xqVpaq\",\"tiers_mode\":null,\"transform_usage\":null,\"trial_period_days\":null,\"usage_type\":\"licensed\",\"currency_options\":{\"aud\":{\"custom_unit_amount\":null,\"tax_behavior\":\"unspecified\",\"unit_amount\":12500,\"unit_amount_decimal\":\"12500\"},\"brl\":{\"custom_unit_amount\":null,\"tax_behavior\":\"unspecified\",\"unit_amount\":43500,\"unit_amount_decimal\":\"43500\"},\"cad\":{\"custom_unit_amount\":null,\"tax_behavior\":\"unspecified\",\"unit_amount\":12000,\"unit_amount_decimal\":\"12000\"},\"chf\":{\"custom_unit_amount\":null,\"tax_behavior\":\"unspecified\",\"unit_amount\":7000,\"unit_amount_decimal\":\"7000\"},\"dkk\":{\"custom_unit_amount\":null,\"tax_behavior\":\"unspecified\",\"unit_amount\":55500,\"unit_amount_decimal\":\"55500\"},\"eur\":{\"custom_unit_amount\":null,\"tax_behavior\":\"unspecified\",\"unit_amount\":7400,\"unit_amount_decimal\":\"7400\"},\"gbp\":{\"custom_unit_amount\":null,\"tax_behavior\":\"unspecified\",\"unit_amount\":6500,\"unit_amount_decimal\":\"6500\"},\"inr\":{\"custom_unit_amount\":null,\"tax_behavior\":\"unspecified\",\"unit_amount\":811000,\"unit_amount_decimal\":\"811000\"},\"jpy\":{\"custom_unit_amount\":null,\"tax_behavior\":\"unspecified\",\"unit_amount\":14000,\"unit_amount_decimal\":\"14000\"},\"mxn\":{\"custom_unit_amount\":null,\"tax_behavior\":\"unspecified\",\"unit_amount\":148000,\"unit_amount_decimal\":\"148000\"},\"nok\":{\"custom_unit_amount\":null,\"tax_behavior\":\"unspecified\",\"unit_amount\":81500,\"unit_amount_decimal\":\"81500\"},\"nzd\":{\"custom_unit_amount\":null,\"tax_behavior\":\"unspecified\",\"unit_amount\":15000,\"unit_amount_decimal\":\"15000\"},\"pln\":{\"custom_unit_amount\":null,\"tax_behavior\":\"unspecified\",\"unit_amount\":32500,\"unit_amount_decimal\":\"32500\"},\"sek\":{\"custom_unit_amount\":null,\"tax_behavior\":\"unspecified\",\"unit_amount\":82000,\"unit_amount_decimal\":\"82000\"},\"usd\":{\"custom_unit_amount\":null,\"tax_behavior\":\"unspecified\",\"unit_amount\":8500,\"unit_amount_decimal\":\"8500\"}}},{\"id\":\"founding20000eur\",\"name\":\"founding20000eur\",\"nickname\":\"founding20000eur\",\"active\":true,\"amount\":20000,\"currency\":\"eur\",\"interval\":\"year\",\"interval_count\":1,\"metadata\":{\"substack\":\"yes\",\"founding\":\"yes\",\"no_coupons\":\"yes\",\"short_description\":\"VIP supporter\",\"short_description_english\":\"VIP supporter\",\"minimum\":\"20000\",\"minimum_local\":{\"usd\":23500,\"gbp\":17500,\"eur\":20000,\"cad\":32500,\"mxn\":394000,\"aud\":32500,\"brl\":119000,\"sek\":225500,\"chf\":19000,\"dkk\":149500,\"nok\":215500,\"inr\":2217000,\"jpy\":36000,\"nzd\":40000,\"pln\":86500}},\"currency_options\":{\"usd\":{\"unit_amount\":23500,\"tax_behavior\":\"unspecified\"},\"gbp\":{\"unit_amount\":17500,\"tax_behavior\":\"unspecified\"},\"eur\":{\"unit_amount\":20000,\"tax_behavior\":\"unspecified\"},\"cad\":{\"unit_amount\":32500,\"tax_behavior\":\"unspecified\"},\"mxn\":{\"unit_amount\":394000,\"tax_behavior\":\"unspecified\"},\"aud\":{\"unit_amount\":32500,\"tax_behavior\":\"unspecified\"},\"brl\":{\"unit_amount\":119000,\"tax_behavior\":\"unspecified\"},\"sek\":{\"unit_amount\":225500,\"tax_behavior\":\"unspecified\"},\"chf\":{\"unit_amount\":19000,\"tax_behavior\":\"unspecified\"},\"dkk\":{\"unit_amount\":149500,\"tax_behavior\":\"unspecified\"},\"nok\":{\"unit_amount\":215500,\"tax_behavior\":\"unspecified\"},\"inr\":{\"unit_amount\":2217000,\"tax_behavior\":\"unspecified\"},\"jpy\":{\"unit_amount\":36000,\"tax_behavior\":\"unspecified\"},\"nzd\":{\"unit_amount\":40000,\"tax_behavior\":\"unspecified\"},\"pln\":{\"unit_amount\":86500,\"tax_behavior\":\"unspecified\"}}}],\"stripe_user_id\":\"acct_1MAFmbEv9TeVut3s\",\"stripe_country\":\"SE\",\"stripe_publishable_key\":\"pk_live_51MAFmbEv9TeVut3sg6LOLDoGpzdvqtqZvasczL18isiPGcezpoD3DRMPDmivD2Qu12m0h0mpKUgIqx5cJZisTK1500fjcalFnx\",\"stripe_platform_account\":\"US\",\"automatic_tax_enabled\":false,\"author_name\":\"Alex Ewerl\u00F6f\",\"author_handle\":\"alexewerlof\",\"author_photo_url\":\"https://substackcdn.com/image/fetch/$s_!IRtW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2713990-da82-481b-b579-01a7aaa5b85b_560x560.jpeg\",\"author_bio\":\"Writes about technical leadership, growth mindset, and system reliability engineering. Senior Staff Engineer, MSc Systems Engineering from KTH, Stockholmer, dad, amateur artist. Read more here: https://www.alexewerlof.com/who\",\"twitter_screen_name\":\"alexewerlof\",\"has_custom_tos\":false,\"has_custom_privacy\":false,\"theme\":{\"background_pop_color\":\"#FFBC52\",\"web_bg_color\":\"#001426\",\"cover_bg_color\":\"#001426\",\"publication_id\":1002265,\"color_links\":null,\"font_preset_heading\":\"sans\",\"font_preset_body\":\"fancy_serif\",\"font_family_headings\":null,\"font_family_body\":null,\"font_family_ui\":null,\"font_size_body_desktop\":null,\"print_secondary\":null,\"custom_css_web\":null,\"custom_css_email\":null,\"home_hero\":\"feature-media\",\"home_posts\":\"custom\",\"home_show_top_posts\":true,\"hide_images_from_list\":false,\"home_hero_alignment\":\"left\",\"home_hero_show_podcast_links\":true,\"default_post_header_variant\":null,\"custom_header\":{\"layout\":\"stacked\",\"navStyle\":\"text\",\"navPosition\":\"bottom\",\"wordmarkLogoSize\":42},\"custom_footer\":{\"layout\":\"two-column\",\"backgroundColor\":\"#000C17\",\"publicationNameSize\":50,\"showPublicationName\":false,\"publicationNameStyle\":\"text\",\"publicationNamePosition\":\"bottom\",\"publicationNameBackgroundColor\":null},\"social_media_links\":{\"bluesky\":\"https://bsky.app/profile/alexewerlof.com\",\"youtube\":\"https://www.youtube.com/@alexewerlof\",\"linkedin\":\"https://www.linkedin.com/in/alexewerlof/\"},\"font_options\":{\"body\":\"merriweather_400\",\"heading\":\"heavy_sans\"},\"section_template\":null,\"custom_subscribe\":null,\"design_template\":null,\"design_template_options\":null},\"threads_v2_settings\":{\"first_thread_email_sent_at\":\"2023-02-12T20:30:37.079+00:00\",\"activated_at\":\"2023-02-12T20:30:06.164+00:00\",\"reader_thread_notifications_enabled\":true,\"create_thread_minimum_role\":\"paid\",\"photo_replies_enabled\":true,\"boost_free_subscriber_chat_preview_enabled\":false,\"push_suppression_enabled\":false},\"default_group_coupon_percent_off\":\"50.00\",\"default_group_coupon_include_founding\":false,\"pause_return_date\":null,\"has_posts\":true,\"has_recommendations\":true,\"first_post_date\":\"2020-09-24T11:28:00.000Z\",\"has_podcast\":false,\"has_free_podcast\":false,\"has_subscriber_only_podcast\":false,\"has_community_content\":true,\"rankingDetail\":\"Launched 4 years ago\",\"rankingDetailFreeIncluded\":\"Tens of thousands of subscribers\",\"rankingDetailOrderOfMagnitude\":10,\"rankingDetailFreeIncludedOrderOfMagnitude\":10000,\"rankingDetailFreeSubscriberCount\":\"Over 19,000 subscribers\",\"rankingDetailByLanguage\":{\"ar\":{\"rankingDetail\":\"\u062A\u0645 \u0627\u0644\u0625\u0637\u0644\u0627\u0642 4 years ago\"},\"ca\":{\"rankingDetail\":\"S\u2019ha llan\u00E7at fa 4 anys\"},\"da\":{\"rankingDetail\":\"Lancering 4 \u00E5r\"},\"de\":{\"rankingDetail\":\"vor 4 Jahren gelauncht\"},\"es\":{\"rankingDetail\":\"Lanzado hace 4 a\u00F1os\"},\"fr\":{\"rankingDetail\":\"Lanc\u00E9 il y a 4 ann\u00E9es\"},\"id\":{\"rankingDetail\":\"Diluncurkan 4 tahun yang lalu\"},\"ja\":{\"rankingDetail\":\"\u958B\u59CB\u65E5 4\u5E74\u524D\"},\"ko\":{\"rankingDetail\":\"4\uB144 \uC804\uC5D0 \uCD9C\uC2DC\"},\"nb\":{\"rankingDetail\":\"Lansert 4 \u00E5r\"},\"nl\":{\"rankingDetail\":\"Gelanceerd 4 jaar geleden\"},\"pl\":{\"rankingDetail\":\"Uruchomiono 4 lat temu\"},\"pt\":{\"rankingDetail\":\"Lan\u00E7ado 4 anos\"},\"pt-br\":{\"rankingDetail\":\"Lan\u00E7ado 4 anos\"},\"en-gb\":{\"rankingDetail\":\"Launched 4 years ago\"},\"it\":{\"rankingDetail\":\"Lanciato 4 anni\"},\"tr\":{\"rankingDetail\":\"4 y\u0131l ba\u015Flat\u0131ld\u0131\"},\"sv\":{\"rankingDetail\":\"Lanserad 4 \u00E5r sedan\"},\"fi\":{\"rankingDetail\":\"Launched 4 vuotta\"},\"is\":{\"rankingDetail\":\"Launched 4 \u00E1r\"},\"zh-hans\":{\"rankingDetail\":\"\u4E8E4 \u5E74\u524D\u4E0A\u7EBF\"},\"zh-hant\":{\"rankingDetail\":\"\u65BC 4 \u5E74\u524D \u63A8\u51FA\"},\"en\":{\"rankingDetail\":\"Launched 4 years ago\"}},\"freeSubscriberCount\":\"19,000\",\"freeSubscriberCountOrderOfMagnitude\":\"19K+\",\"author_bestseller_tier\":0,\"author_badge\":null,\"disable_monthly_subscriptions\":false,\"disable_annual_subscriptions\":false,\"hide_post_restacks\":false,\"notes_feed_enabled\":true,\"showIntroModule\":false,\"isPortraitLayout\":false,\"last_chat_post_at\":\"2025-10-31T11:34:19.438Z\",\"primary_profile_name\":\"Alex Ewerl\u00F6f\",\"primary_profile_photo_url\":\"https://substackcdn.com/image/fetch/$s_!IRtW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2713990-da82-481b-b579-01a7aaa5b85b_560x560.jpeg\",\"no_follow\":false,\"sponsorshipCampaigns\":{},\"paywall_chat\":\"free\",\"sections\":[{\"id\":67726,\"created_at\":\"2023-05-31T20:13:23.606Z\",\"updated_at\":\"2024-11-12T15:54:54.980Z\",\"publication_id\":1002265,\"name\":\"Technical Leadership\",\"description\":\"Technical Leadership, Staff Engineering, and impact without mandate\",\"slug\":\"tech-lead\",\"is_podcast\":false,\"is_live\":true,\"is_default_on\":true,\"sibling_rank\":0,\"port_status\":\"success\",\"logo_url\":null,\"hide_from_navbar\":false,\"email_from_name\":\"\",\"hide_posts_from_pub_listings\":false,\"email_banner_url\":null,\"cover_photo_url\":null,\"hide_intro_title\":false,\"hide_intro_subtitle\":false,\"ignore_publication_email_settings\":false,\"custom_config\":{},\"unifiedPodcastSettings\":null,\"showLinks\":[],\"podcastSettings\":null,\"pageTheme\":{\"id\":51608,\"publication_id\":1002265,\"section_id\":67726,\"page\":null,\"page_hero\":\"default\",\"page_posts\":\"grid\",\"show_podcast_links\":true,\"hero_alignment\":\"center\"},\"podcastPalette\":{\"DarkMuted\":{\"population\":72,\"rgb\":[73,153,137]},\"DarkVibrant\":{\"population\":6013,\"rgb\":[4,100,84]},\"LightMuted\":{\"population\":7,\"rgb\":[142,198,186]},\"LightVibrant\":{\"population\":3,\"rgb\":[166,214,206]},\"Muted\":{\"population\":6,\"rgb\":[92,164,156]},\"Vibrant\":{\"population\":5,\"rgb\":[76,164,146]}},\"spotify_podcast_settings\":null,\"unified_podcast_settings\":null},{\"id\":67723,\"created_at\":\"2023-05-31T19:57:24.859Z\",\"updated_at\":\"2024-03-22T13:16:12.203Z\",\"publication_id\":1002265,\"name\":\"Reliability Engineering\",\"description\":\"Concepts that help you with building reliable systems and architecture\",\"slug\":\"sre\",\"is_podcast\":false,\"is_live\":true,\"is_default_on\":true,\"sibling_rank\":1,\"port_status\":\"success\",\"logo_url\":null,\"hide_from_navbar\":false,\"email_from_name\":\"\",\"hide_posts_from_pub_listings\":false,\"email_banner_url\":null,\"cover_photo_url\":null,\"hide_intro_title\":false,\"hide_intro_subtitle\":false,\"ignore_publication_email_settings\":false,\"custom_config\":{},\"unifiedPodcastSettings\":null,\"showLinks\":[],\"podcastSettings\":null,\"pageTheme\":{\"id\":51609,\"publication_id\":1002265,\"section_id\":67723,\"page\":null,\"page_hero\":\"default\",\"page_posts\":\"grid\",\"show_podcast_links\":true,\"hero_alignment\":\"center\"},\"podcastPalette\":{\"DarkMuted\":{\"population\":72,\"rgb\":[73,153,137]},\"DarkVibrant\":{\"population\":6013,\"rgb\":[4,100,84]},\"LightMuted\":{\"population\":7,\"rgb\":[142,198,186]},\"LightVibrant\":{\"population\":3,\"rgb\":[166,214,206]},\"Muted\":{\"population\":6,\"rgb\":[92,164,156]},\"Vibrant\":{\"population\":5,\"rgb\":[76,164,146]}},\"spotify_podcast_settings\":null,\"unified_podcast_settings\":null},{\"id\":69986,\"created_at\":\"2023-06-17T13:00:28.926Z\",\"updated_at\":\"2023-06-17T13:00:28.926Z\",\"publication_id\":1002265,\"name\":\"Growth\",\"description\":\"Growth mindset, productivity, organizational growth, culture\",\"slug\":\"growth\",\"is_podcast\":false,\"is_live\":true,\"is_default_on\":true,\"sibling_rank\":2,\"port_status\":\"success\",\"logo_url\":null,\"hide_from_navbar\":false,\"email_from_name\":\"\",\"hide_posts_from_pub_listings\":false,\"email_banner_url\":null,\"cover_photo_url\":null,\"hide_intro_title\":false,\"hide_intro_subtitle\":false,\"ignore_publication_email_settings\":false,\"custom_config\":{},\"unifiedPodcastSettings\":null,\"showLinks\":[],\"podcastSettings\":null,\"pageTheme\":{\"id\":51610,\"publication_id\":1002265,\"section_id\":69986,\"page\":null,\"page_hero\":\"default\",\"page_posts\":\"grid\",\"show_podcast_links\":true,\"hero_alignment\":\"center\"},\"podcastPalette\":{\"DarkMuted\":{\"population\":72,\"rgb\":[73,153,137]},\"DarkVibrant\":{\"population\":6013,\"rgb\":[4,100,84]},\"LightMuted\":{\"population\":7,\"rgb\":[142,198,186]},\"LightVibrant\":{\"population\":3,\"rgb\":[166,214,206]},\"Muted\":{\"population\":6,\"rgb\":[92,164,156]},\"Vibrant\":{\"population\":5,\"rgb\":[76,164,146]}},\"spotify_podcast_settings\":null,\"unified_podcast_settings\":null},{\"id\":65305,\"created_at\":\"2023-05-14T08:17:44.620Z\",\"updated_at\":\"2023-05-14T08:17:44.620Z\",\"publication_id\":1002265,\"name\":\"Cartoons\",\"description\":\"The cartoons and doodles I draw from time to time\",\"slug\":\"cartoons\",\"is_podcast\":false,\"is_live\":true,\"is_default_on\":true,\"sibling_rank\":3,\"port_status\":\"success\",\"logo_url\":null,\"hide_from_navbar\":false,\"email_from_name\":\"\",\"hide_posts_from_pub_listings\":false,\"email_banner_url\":null,\"cover_photo_url\":null,\"hide_intro_title\":false,\"hide_intro_subtitle\":false,\"ignore_publication_email_settings\":false,\"custom_config\":{},\"unifiedPodcastSettings\":null,\"showLinks\":[],\"podcastSettings\":null,\"pageTheme\":{\"id\":51611,\"publication_id\":1002265,\"section_id\":65305,\"page\":null,\"page_hero\":\"default\",\"page_posts\":\"grid\",\"show_podcast_links\":true,\"hero_alignment\":\"center\"},\"podcastPalette\":{\"DarkMuted\":{\"population\":72,\"rgb\":[73,153,137]},\"DarkVibrant\":{\"population\":6013,\"rgb\":[4,100,84]},\"LightMuted\":{\"population\":7,\"rgb\":[142,198,186]},\"LightVibrant\":{\"population\":3,\"rgb\":[166,214,206]},\"Muted\":{\"population\":6,\"rgb\":[92,164,156]},\"Vibrant\":{\"population\":5,\"rgb\":[76,164,146]}},\"spotify_podcast_settings\":null,\"unified_podcast_settings\":null},{\"id\":192721,\"created_at\":\"2025-02-23T16:44:05.979Z\",\"updated_at\":\"2025-02-23T16:44:09.931Z\",\"publication_id\":1002265,\"name\":\"Code\",\"description\":\"Code and software development\",\"slug\":\"code\",\"is_podcast\":false,\"is_live\":true,\"is_default_on\":true,\"sibling_rank\":4,\"port_status\":\"success\",\"logo_url\":null,\"hide_from_navbar\":false,\"email_from_name\":\"\",\"hide_posts_from_pub_listings\":false,\"email_banner_url\":null,\"cover_photo_url\":null,\"hide_intro_title\":false,\"hide_intro_subtitle\":false,\"ignore_publication_email_settings\":false,\"custom_config\":{},\"unifiedPodcastSettings\":null,\"showLinks\":[],\"podcastSettings\":null,\"pageTheme\":{\"id\":51612,\"publication_id\":1002265,\"section_id\":192721,\"page\":null,\"page_hero\":\"default\",\"page_posts\":\"grid\",\"show_podcast_links\":true,\"hero_alignment\":\"center\"},\"podcastPalette\":{\"DarkMuted\":{\"population\":72,\"rgb\":[73,153,137]},\"DarkVibrant\":{\"population\":6013,\"rgb\":[4,100,84]},\"LightMuted\":{\"population\":7,\"rgb\":[142,198,186]},\"LightVibrant\":{\"population\":3,\"rgb\":[166,214,206]},\"Muted\":{\"population\":6,\"rgb\":[92,164,156]},\"Vibrant\":{\"population\":5,\"rgb\":[76,164,146]}},\"spotify_podcast_settings\":null,\"unified_podcast_settings\":null}],\"podcastTabInfo\":null,\"multipub_migration\":null,\"navigationBarItems\":[{\"id\":\"693b47dd-b5e5-4dbb-b7b3-891c9b2c1835\",\"publication_id\":1002265,\"sibling_rank\":0,\"link_title\":null,\"link_url\":null,\"section_id\":null,\"post_id\":null,\"is_hidden\":false,\"standard_key\":\"about\",\"post_tag_id\":null,\"parent_id\":null,\"is_group\":false,\"postTag\":null,\"children\":[],\"post\":null,\"section\":null},{\"id\":\"52ced5af-109a-4b1e-8910-89961a72b0a3\",\"publication_id\":1002265,\"sibling_rank\":0,\"link_title\":null,\"link_url\":null,\"section_id\":null,\"post_id\":null,\"is_hidden\":true,\"standard_key\":\"leaderboard\",\"post_tag_id\":null,\"parent_id\":null,\"is_group\":false,\"postTag\":null,\"children\":[],\"post\":null,\"section\":null},{\"id\":\"5657cede-0e4c-4869-8f2d-c73ebe2b3338\",\"publication_id\":1002265,\"sibling_rank\":0,\"link_title\":null,\"link_url\":null,\"section_id\":null,\"post_id\":null,\"is_hidden\":true,\"standard_key\":\"notes\",\"post_tag_id\":null,\"parent_id\":null,\"is_group\":false,\"postTag\":null,\"children\":[],\"post\":null,\"section\":null},{\"id\":\"d020acfa-0f0b-4afb-a793-8626297a59aa\",\"publication_id\":1002265,\"sibling_rank\":1,\"link_title\":null,\"link_url\":null,\"section_id\":null,\"post_id\":null,\"is_hidden\":true,\"standard_key\":\"chat\",\"post_tag_id\":null,\"parent_id\":null,\"is_group\":false,\"postTag\":null,\"children\":[],\"post\":null,\"section\":null},{\"id\":\"fc613bc6-10ab-41ef-9d39-a6a818fbb5ba\",\"publication_id\":1002265,\"sibling_rank\":2,\"link_title\":null,\"link_url\":null,\"section_id\":67726,\"post_id\":null,\"is_hidden\":null,\"standard_key\":null,\"post_tag_id\":null,\"parent_id\":null,\"is_group\":false,\"postTag\":null,\"children\":[],\"post\":null,\"section\":{\"id\":67726,\"slug\":\"tech-lead\",\"name\":\"Technical Leadership\",\"hide_from_navbar\":false,\"is_podcast\":false,\"logo_url\":null,\"newsletter_enabled\":null}},{\"id\":\"68d82a75-97a1-498b-b089-b9d606ee0f27\",\"publication_id\":1002265,\"sibling_rank\":3,\"link_title\":null,\"link_url\":null,\"section_id\":67723,\"post_id\":null,\"is_hidden\":null,\"standard_key\":null,\"post_tag_id\":null,\"parent_id\":null,\"is_group\":false,\"postTag\":null,\"children\":[],\"post\":null,\"section\":{\"id\":67723,\"slug\":\"sre\",\"name\":\"Reliability Engineering\",\"hide_from_navbar\":false,\"is_podcast\":false,\"logo_url\":null,\"newsletter_enabled\":null}},{\"id\":\"8a522501-651b-45bc-b881-3e2a2497ec29\",\"publication_id\":1002265,\"sibling_rank\":4,\"link_title\":null,\"link_url\":null,\"section_id\":69986,\"post_id\":null,\"is_hidden\":null,\"standard_key\":null,\"post_tag_id\":null,\"parent_id\":null,\"is_group\":false,\"postTag\":null,\"children\":[],\"post\":null,\"section\":{\"id\":69986,\"slug\":\"growth\",\"name\":\"Growth\",\"hide_from_navbar\":false,\"is_podcast\":false,\"logo_url\":null,\"newsletter_enabled\":null}},{\"id\":\"702039d0-d1f1-4070-adb7-6a88110ac904\",\"publication_id\":1002265,\"sibling_rank\":5,\"link_title\":null,\"link_url\":null,\"section_id\":65305,\"post_id\":null,\"is_hidden\":null,\"standard_key\":null,\"post_tag_id\":null,\"parent_id\":null,\"is_group\":false,\"postTag\":null,\"children\":[],\"post\":null,\"section\":{\"id\":65305,\"slug\":\"cartoons\",\"name\":\"Cartoons\",\"hide_from_navbar\":false,\"is_podcast\":false,\"logo_url\":null,\"newsletter_enabled\":null}},{\"id\":\"71e27c1f-1d9d-486d-bcce-3b707aedb0f6\",\"publication_id\":1002265,\"sibling_rank\":8,\"link_title\":\"FAQ\",\"link_url\":\"\",\"section_id\":null,\"post_id\":141786627,\"is_hidden\":null,\"standard_key\":null,\"post_tag_id\":null,\"parent_id\":null,\"is_group\":false,\"postTag\":null,\"children\":[],\"post\":{\"id\":141786627,\"slug\":\"faq\",\"title\":\"FAQ\",\"type\":\"page\"},\"section\":null},{\"id\":\"c3e7d81f-5147-498f-8317-72f318b996c3\",\"publication_id\":1002265,\"sibling_rank\":9999,\"link_title\":null,\"link_url\":null,\"section_id\":192721,\"post_id\":null,\"is_hidden\":null,\"standard_key\":null,\"post_tag_id\":null,\"parent_id\":null,\"is_group\":false,\"postTag\":null,\"children\":[],\"post\":null,\"section\":{\"id\":192721,\"slug\":\"code\",\"name\":\"Code\",\"hide_from_navbar\":false,\"is_podcast\":false,\"logo_url\":null,\"newsletter_enabled\":null}}],\"has_active_perks\":false,\"contributors\":[{\"name\":\"Alex Ewerl\u00F6f\",\"handle\":\"alexewerlof\",\"role\":\"admin\",\"owner\":true,\"user_id\":87732486,\"photo_url\":\"https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2713990-da82-481b-b579-01a7aaa5b85b_560x560.jpeg\",\"bio\":\"Writes about technical leadership, growth mindset, and system reliability engineering. Senior Staff Engineer, MSc Systems Engineering from KTH, Stockholmer, dad, amateur artist. Read more here: https://www.alexewerlof.com/who\",\"status\":{\"bestsellerTier\":null,\"subscriberTier\":null,\"leaderboard\":null,\"vip\":false,\"badge\":null,\"subscriber\":null}}],\"threads_v2_enabled\":true,\"viralGiftsConfig\":{\"id\":\"549946e0-1129-4592-ba5f-6bcab8c6cb5d\",\"publication_id\":1002265,\"enabled\":true,\"gifts_per_user\":5,\"gift_length_months\":1,\"send_extra_gifts\":true,\"message\":\"Technical Leadership, personal growth, software\",\"created_at\":\"2022-12-01T16:46:31.467333+00:00\",\"updated_at\":\"2022-12-01T16:46:31.467333+00:00\",\"days_til_invite\":14,\"send_emails\":true,\"show_link\":null},\"no_index\":false,\"tier\":2,\"can_set_google_site_verification\":true,\"can_have_sitemap\":true,\"iap_advanced_plans\":[{\"sku\":\"c1LuwhX14kmFN5UK5J\",\"publication_id\":\"1002265\",\"is_active\":true,\"price_base_units\":1200,\"currency_alpha3\":\"usd\",\"period\":\"month\",\"created_at\":\"2026-07-07T19:37:06.872Z\",\"updated_at\":\"2026-07-07T19:37:06.872Z\",\"id\":\"1272592\",\"payout_amount_base_units\":86,\"alternate_currencies\":{\"aud\":1800,\"brl\":6500,\"cad\":1800,\"chf\":1000,\"dkk\":8000,\"eur\":1100,\"gbp\":900,\"mxn\":21000,\"nok\":12000,\"nzd\":2200,\"pln\":4500,\"sek\":12000},\"is_founding\":false,\"display_name\":\"Alex Ewerl\u00F6f Notes (Monthly)\",\"display_price\":\"$12\"},{\"sku\":\"MC73cNbFZtu7O35fUc\",\"publication_id\":\"1002265\",\"is_active\":true,\"price_base_units\":11500,\"currency_alpha3\":\"usd\",\"period\":\"year\",\"created_at\":\"2026-07-07T19:37:06.880Z\",\"updated_at\":\"2026-07-07T19:37:06.880Z\",\"id\":\"1272593\",\"payout_amount_base_units\":847,\"alternate_currencies\":{\"aud\":17000,\"brl\":59500,\"cad\":16500,\"chf\":9500,\"dkk\":75500,\"eur\":10500,\"gbp\":9000,\"mxn\":200000,\"nok\":112500,\"nzd\":20500,\"pln\":43500,\"sek\":111000},\"is_founding\":false,\"display_name\":\"Alex Ewerl\u00F6f Notes (Yearly)\",\"display_price\":\"$115\"}],\"iap_founding_plan\":{\"base_plan_id\":\"founding20000eur\",\"name\":\"VIP supporter\",\"minimum_amount\":27500,\"suggested_amount\":27500,\"currency_alpha3\":\"usd\",\"alternate_currencies\":{\"gbp\":{\"minimum_amount\":20500,\"suggested_amount\":20500},\"eur\":{\"minimum_amount\":24000,\"suggested_amount\":24000},\"cad\":{\"minimum_amount\":38500,\"suggested_amount\":38500},\"mxn\":{\"minimum_amount\":467000,\"suggested_amount\":467000},\"aud\":{\"minimum_amount\":38500,\"suggested_amount\":38500},\"brl\":{\"minimum_amount\":141000,\"suggested_amount\":141000},\"sek\":{\"minimum_amount\":267000,\"suggested_amount\":267000},\"chf\":{\"minimum_amount\":22500,\"suggested_amount\":22500},\"dkk\":{\"minimum_amount\":177500,\"suggested_amount\":177500},\"nok\":{\"minimum_amount\":255500,\"suggested_amount\":255500},\"inr\":{\"minimum_amount\":2628500,\"suggested_amount\":2628500},\"jpy\":{\"minimum_amount\":42500,\"suggested_amount\":42500},\"nzd\":{\"minimum_amount\":47500,\"suggested_amount\":47500},\"pln\":{\"minimum_amount\":103000,\"suggested_amount\":103000}}},\"founding_plan_name_english\":\"VIP supporter\",\"base_url\":\"https://blog.alexewerlof.com\",\"hostname\":\"blog.alexewerlof.com\",\"is_on_substack\":false,\"spotify_podcast_settings\":null,\"unified_podcast_settings\":null,\"podcastPalette\":{\"DarkMuted\":{\"population\":72,\"rgb\":[73,153,137]},\"DarkVibrant\":{\"population\":6013,\"rgb\":[4,100,84]},\"LightMuted\":{\"population\":7,\"rgb\":[142,198,186]},\"LightVibrant\":{\"population\":3,\"rgb\":[166,214,206]},\"Muted\":{\"population\":6,\"rgb\":[92,164,156]},\"Vibrant\":{\"population\":5,\"rgb\":[76,164,146]}},\"pageThemes\":{\"podcast\":null},\"supports_ip_content_unlock\":false,\"appTheme\":{\"colors\":{\"accent\":{\"name\":\"#ffbc52\",\"primary\":{\"r\":222,\"g\":158,\"b\":52,\"a\":1},\"primary_hover\":{\"r\":201,\"g\":140,\"b\":31,\"a\":1},\"primary_elevated\":{\"r\":201,\"g\":140,\"b\":31,\"a\":1},\"secondary\":{\"r\":222,\"g\":158,\"b\":52,\"a\":0.2},\"contrast\":{\"r\":255,\"g\":255,\"b\":255,\"a\":1},\"bg\":{\"r\":222,\"g\":158,\"b\":52,\"a\":0.2},\"bg_hover\":{\"r\":222,\"g\":158,\"b\":52,\"a\":0.3},\"dark\":{\"primary\":{\"r\":255,\"g\":188,\"b\":82,\"a\":1},\"primary_hover\":{\"r\":255,\"g\":210,\"b\":125,\"a\":1},\"primary_elevated\":{\"r\":255,\"g\":210,\"b\":125,\"a\":1},\"secondary\":{\"r\":255,\"g\":188,\"b\":82,\"a\":0.2},\"contrast\":{\"r\":0,\"g\":0,\"b\":0,\"a\":0.8},\"bg\":{\"r\":255,\"g\":188,\"b\":82,\"a\":0.2},\"bg_hover\":{\"r\":255,\"g\":188,\"b\":82,\"a\":0.3}}},\"fg\":{\"primary\":{\"r\":0,\"g\":0,\"b\":0,\"a\":0.8},\"secondary\":{\"r\":0,\"g\":0,\"b\":0,\"a\":0.6},\"tertiary\":{\"r\":0,\"g\":0,\"b\":0,\"a\":0.4},\"accent\":{\"r\":151,\"g\":97,\"b\":0,\"a\":1},\"dark\":{\"primary\":{\"r\":255,\"g\":255,\"b\":255,\"a\":0.9},\"secondary\":{\"r\":255,\"g\":255,\"b\":255,\"a\":0.6},\"tertiary\":{\"r\":255,\"g\":255,\"b\":255,\"a\":0.4},\"accent\":{\"r\":255,\"g\":188,\"b\":82,\"a\":1}}},\"bg\":{\"name\":\"#0085e5\",\"hue\":{\"r\":0,\"g\":133,\"b\":229,\"a\":1},\"tint\":{\"r\":0,\"g\":133,\"b\":229,\"a\":0.1},\"primary\":{\"r\":229.5,\"g\":242.8,\"b\":252.39999999999998,\"a\":1},\"primary_hover\":{\"r\":225,\"g\":238.29999999999998,\"b\":247.9,\"a\":1},\"primary_elevated\":{\"r\":225,\"g\":238.29999999999998,\"b\":247.9,\"a\":1},\"secondary\":{\"r\":214.2,\"g\":227.5,\"b\":237.1,\"a\":1},\"secondary_elevated\":{\"r\":184.9454280083347,\"g\":197.91521411644928,\"b\":207.26517218866366,\"a\":1},\"tertiary\":{\"r\":197.1,\"g\":210.4,\"b\":219.99999999999997,\"a\":1},\"quaternary\":{\"r\":163.79999999999998,\"g\":177.10000000000002,\"b\":186.70000000000002,\"a\":1},\"dark\":{\"primary\":{\"r\":19.8,\"g\":34,\"b\":44.5,\"a\":1},\"primary_hover\":{\"r\":24.3,\"g\":38.50000000000001,\"b\":48.99999999999999,\"a\":1},\"primary_elevated\":{\"r\":24.3,\"g\":38.50000000000001,\"b\":48.99999999999999,\"a\":1},\"secondary\":{\"r\":31.5,\"g\":46.60000000000001,\"b\":56.2,\"a\":1},\"secondary_elevated\":{\"r\":38.73972711589789,\"g\":54.076229834048654,\"b\":63.89709451363946,\"a\":1},\"tertiary\":{\"r\":48.6,\"g\":62.8,\"b\":72.4,\"a\":1},\"quaternary\":{\"r\":81.00000000000001,\"g\":95.2,\"b\":104.80000000000001,\"a\":1}}}}},\"portalAppTheme\":{\"colors\":{\"accent\":{\"name\":\"#FFBC52\",\"primary\":{\"r\":255,\"g\":188,\"b\":82,\"a\":1},\"primary_hover\":{\"r\":255,\"g\":178,\"b\":56,\"a\":1},\"primary_elevated\":{\"r\":255,\"g\":188,\"b\":82,\"a\":1},\"secondary\":{\"r\":255,\"g\":188,\"b\":82,\"a\":1},\"contrast\":{\"r\":255,\"g\":255,\"b\":255,\"a\":1},\"bg\":{\"r\":255,\"g\":103,\"b\":25,\"a\":0.2},\"bg_hover\":{\"r\":255,\"g\":103,\"b\":25,\"a\":0.3},\"dark\":{\"name\":\"#FFBC52\",\"primary\":{\"r\":255,\"g\":188,\"b\":82,\"a\":1},\"primary_hover\":{\"r\":255,\"g\":178,\"b\":56,\"a\":1},\"primary_elevated\":{\"r\":255,\"g\":188,\"b\":82,\"a\":1},\"secondary\":{\"r\":255,\"g\":188,\"b\":82,\"a\":1},\"contrast\":{\"r\":255,\"g\":255,\"b\":255,\"a\":1},\"bg\":{\"r\":255,\"g\":103,\"b\":25,\"a\":0.2},\"bg_hover\":{\"r\":255,\"g\":103,\"b\":25,\"a\":0.3}}},\"fg\":{\"primary\":{\"r\":226,\"g\":232,\"b\":237,\"a\":1},\"secondary\":{\"r\":153,\"g\":161,\"b\":168,\"a\":1},\"tertiary\":{\"r\":109,\"g\":120,\"b\":130,\"a\":1},\"accent\":{\"r\":255,\"g\":188,\"b\":82,\"a\":1},\"dark\":{\"primary\":{\"r\":226,\"g\":232,\"b\":237,\"a\":1},\"secondary\":{\"r\":153,\"g\":161,\"b\":168,\"a\":1},\"tertiary\":{\"r\":109,\"g\":120,\"b\":130,\"a\":1},\"accent\":{\"r\":255,\"g\":188,\"b\":82,\"a\":1}}},\"bg\":{\"name\":\"#001426\",\"hue\":{\"r\":0,\"g\":20,\"b\":38,\"a\":1},\"tint\":{\"r\":0,\"g\":20,\"b\":38,\"a\":1},\"primary\":{\"r\":0,\"g\":20,\"b\":38,\"a\":1},\"primary_hover\":{\"r\":15,\"g\":34,\"b\":51,\"a\":1},\"primary_elevated\":{\"r\":15,\"g\":34,\"b\":51,\"a\":1},\"secondary\":{\"r\":15,\"g\":34,\"b\":51,\"a\":1},\"secondary_elevated\":{\"r\":34,\"g\":52,\"b\":67,\"a\":1},\"tertiary\":{\"r\":34,\"g\":52,\"b\":67,\"a\":1},\"quaternary\":{\"r\":72,\"g\":86,\"b\":99,\"a\":1},\"dark\":{\"name\":\"#001426\",\"hue\":{\"r\":0,\"g\":20,\"b\":38,\"a\":1},\"tint\":{\"r\":0,\"g\":20,\"b\":38,\"a\":1},\"primary\":{\"r\":0,\"g\":20,\"b\":38,\"a\":1},\"primary_hover\":{\"r\":15,\"g\":34,\"b\":51,\"a\":1},\"primary_elevated\":{\"r\":15,\"g\":34,\"b\":51,\"a\":1},\"secondary\":{\"r\":15,\"g\":34,\"b\":51,\"a\":1},\"secondary_elevated\":{\"r\":34,\"g\":52,\"b\":67,\"a\":1},\"tertiary\":{\"r\":34,\"g\":52,\"b\":67,\"a\":1},\"quaternary\":{\"r\":72,\"g\":86,\"b\":99,\"a\":1}}},\"wordmark_bg\":{\"r\":0,\"g\":20,\"b\":38,\"a\":1},\"is_dark\":true},\"fonts\":{\"heading\":\"heavy_sans\",\"body\":\"merriweather_400\"}},\"logoPalette\":{\"Vibrant\":{\"rgb\":[252,188,84],\"population\":5509},\"DarkVibrant\":{\"rgb\":[4,20,36],\"population\":556},\"LightVibrant\":{\"rgb\":[244,181,84],\"population\":7},\"Muted\":{\"rgb\":[124,100,60],\"population\":1},\"DarkMuted\":{\"rgb\":[80,71,52],\"population\":65},\"LightMuted\":{\"rgb\":[143.75274725274724,90.7912087912088,9.247252747252743],\"population\":0}},\"section\":{\"id\":67723,\"created_at\":\"2023-05-31T19:57:24.859Z\",\"updated_at\":\"2024-03-22T13:16:12.203Z\",\"publication_id\":1002265,\"name\":\"Reliability Engineering\",\"description\":\"Concepts that help you with building reliable systems and architecture\",\"slug\":\"sre\",\"is_podcast\":false,\"is_live\":true,\"is_default_on\":true,\"sibling_rank\":1,\"port_status\":\"success\",\"logo_url\":null,\"hide_from_navbar\":false,\"email_from_name\":\"\",\"hide_posts_from_pub_listings\":false,\"email_banner_url\":null,\"cover_photo_url\":null,\"hide_intro_title\":false,\"hide_intro_subtitle\":false,\"ignore_publication_email_settings\":false,\"custom_config\":{},\"unifiedPodcastSettings\":null,\"showLinks\":[],\"podcastSettings\":null,\"pageTheme\":{\"id\":51609,\"publication_id\":1002265,\"section_id\":67723,\"page\":null,\"page_hero\":\"default\",\"page_posts\":\"grid\",\"show_podcast_links\":true,\"hero_alignment\":\"center\"},\"podcastPalette\":{\"DarkMuted\":{\"population\":72,\"rgb\":[73,153,137]},\"DarkVibrant\":{\"population\":6013,\"rgb\":[4,100,84]},\"LightMuted\":{\"population\":7,\"rgb\":[142,198,186]},\"LightVibrant\":{\"population\":3,\"rgb\":[166,214,206]},\"Muted\":{\"population\":6,\"rgb\":[92,164,156]},\"Vibrant\":{\"population\":5,\"rgb\":[76,164,146]}},\"spotify_podcast_settings\":null,\"unified_podcast_settings\":null}},\"confirmedLogin\":false,\"hide_intro_popup\":false,\"block_auto_login\":false,\"domainInfo\":{\"isSubstack\":false,\"customDomain\":\"blog.alexewerlof.com\"},\"experimentFeatures\":{},\"experimentExposures\":{},\"siteConfigs\":{\"score_upsell_email\":\"control\",\"first_chat_email_enabled\":true,\"new_commenter_approval\":false,\"pub_update_opennode_api_key\":false,\"notes_video_max_duration_minutes\":15,\"show_content_label_age_gating_in_feed\":false,\"zendesk_automation_cancellations\":false,\"mfa_action_box_enabled\":false,\"publication_max_bylines\":35,\"no_contest_charge_disputes\":false,\"scheduled_post_share_assets_enabled\":false,\"publication_tabs_reorder\":false,\"comp_expiry_email_new_copy\":\"NONE\",\"free_unlock_required\":false,\"enable_section_group_pages\":false,\"enable_post_summarization\":false,\"live_stream_host_warning_message\":\"\",\"bitcoin_enabled\":false,\"minimum_ios_os_version\":\"17.0.0\",\"show_entire_square_image\":false,\"hide_subscriber_count\":false,\"fit_in_live_stream_player\":false,\"publication_author_display_override\":\"\",\"enable_saved_segments\":true,\"generate_pdf_tax_report\":false,\"hide_post_sidebar\":false,\"show_generic_post_importer\":false,\"enable_pledges_modal\":true,\"community_automod_non_english_enabled\":true,\"audio_clips_enabled\":false,\"enable_videos_page\":false,\"exempt_from_gtm_filter\":false,\"group_sections_and_podcasts_in_menu\":false,\"boost_optin_modal_enabled\":true,\"standards_and_enforcement_features_enabled\":false,\"pub_creation_captcha_behavior\":\"risky_pubs_or_rate_limit\",\"post_blogspot_importer\":false,\"enable_high_res_background_uploading\":false,\"pub_tts_override\":\"default\",\"disable_monthly_subscriptions\":false,\"skip_welcome_email\":false,\"chat_reader_thread_notification_default\":false,\"scheduled_pinned_posts\":false,\"disable_redirect_outbound_utm_params\":false,\"reader_gift_referrals_enabled\":true,\"dont_show_guest_byline\":false,\"like_comments_enabled\":true,\"enable_theme_editor_deferred_saves\":false,\"enable_sponsorship_campaigns_advanced\":false,\"temporal_livestream_ended_draft\":true,\"enable_pangram_ai_detection\":true,\"fallback_to_archive_search_on_section_pages\":false,\"livekit_track_egress_custom_base_url\":\"http://livekit-egress-custom-recorder-participant-test.s3-website-us-east-1.amazonaws.com\",\"welcome_screen_blurb_override\":\"\",\"like_posts_enabled\":true,\"twitter_player_card_enabled\":true,\"feed_promoted_user\":false,\"show_note_stats_for_all_notes\":false,\"section_specific_csv_imports_enabled\":false,\"disable_podcast_feed_description_cta\":false,\"bypass_profile_substack_logo_detection\":false,\"use_preloaded_player_sources\":false,\"list_pruning_enabled\":false,\"facebook_connect\":false,\"opt_in_to_sections_during_subscribe\":false,\"underlined_colored_links\":false,\"enable_efficient_digest_embed\":false,\"enable_aligned_images\":false,\"max_image_upload_mb\":64,\"threads_suggested_ios_version\":null,\"pledges_disabled\":false,\"threads_minimum_ios_version\":812,\"hide_podcast_email_setup_link\":false,\"subscribe_captcha_behavior\":\"default\",\"publication_ban_sample_rate\":0,\"custom_themes_substack_subscribe_modal\":false,\"ios_post_share_assets_screenshot_trigger\":\"control\",\"opt_in_to_sections_during_subscribe_include_main_pub_newsletter\":false,\"continue_support_cta_in_newsletter_emails\":false,\"bloomberg_syndication_enabled\":false,\"allow_document_freeze\":false,\"test_age_gate_user\":false,\"podcast_main_feed_is_firehose\":false,\"pub_app_incentive_gift\":\"\",\"no_embed_redirect\":false,\"customized_email_from_name_for_new_follow_emails\":\"treatment\",\"spotify_open_access_sandbox_mode\":false,\"disable_custom_nav_menu\":false,\"enable_livestream_name_cards\":false,\"fullstory_enabled\":false,\"chat_reply_poll_interval\":3,\"thefp_enable_email_upsell_banner\":false,\"force_pub_links_to_use_subdomain\":false,\"always_show_cookie_banner\":false,\"hide_media_download_option\":false,\"hide_post_restacks\":false,\"feed_item_source_debug_mode\":false,\"twitter_embed_video_playback_enabled\":false,\"publication_homepage_title_display_override\":\"\",\"enable_email_automation_stats\":false,\"post_preview_highlight_byline\":false,\"4k_video\":false,\"enable_islands_section_intent_screen\":false,\"post_metering_enabled\":false,\"notifications_disabled\":\"\",\"cross_post_notification_threshold\":1000,\"facebook_connect_prod_app\":true,\"force_into_pymk_ranking\":false,\"minimum_android_version\":756,\"group_size_change_notification_email_enabled\":false,\"enable_transcription_translations\":false,\"use_og_image_as_twitter_image_for_post_previews\":false,\"always_use_podcast_channel_art_as_episode_art_in_rss\":false,\"seo_tier_override\":\"NONE\",\"editor_role_enabled\":false,\"no_follow_links\":false,\"publisher_api_enabled\":false,\"zendesk_support_priority\":\"default\",\"enable_post_clips_stats\":false,\"enable_subscriber_referrals_awards\":true,\"ios_profile_themes_feed_permalink_enabled\":false,\"reader_survey_during_subscribe_enabled\":true,\"use_publication_language_for_transcription\":false,\"show_substack_funded_gifts_tooltip\":true,\"disable_ai_transcription\":false,\"per_pub_notification_settings\":false,\"live_stream_creation_enabled\":true,\"disable_card_element_in_europe\":false,\"web_growth_item_promotion_threshold\":0,\"bundle_subscribe_enabled\":false,\"web_vitals_sample_rate\":0,\"allow_live_stream_auto_takedown\":\"true\",\"mobile_publication_attachments_enabled\":false,\"enable_design_templates_events_page\":false,\"enable_survey_response_crm_filters\":false,\"disable_personal_substack_initialization\":false,\"section_specific_welcome_pages\":false,\"local_payment_methods\":\"control\",\"publisher_api_cancel_comp\":false,\"posts_in_rss_feed\":20,\"publisher_dashboard_section_selector\":false,\"reader_surveys_platform_question_order\":\"36,1,4,2,3,5,6,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35\",\"login_guard_app_link_in_email\":true,\"community_moderators_enabled\":false,\"enable_custom_theme\":false,\"monthly_sub_is_one_off\":false,\"unread_notes_activity_digest\":\"control\",\"display_cookie_settings\":false,\"welcome_page_query_params\":false,\"enable_free_podcast_urls\":false,\"comp_expiry_emails_disabled\":false,\"enable_description_on_polls\":false,\"use_microlink_for_instagram_embeds\":false,\"free_signup_confirmation_behavior\":\"with_email_validation\",\"ios_post_stats_for_admins\":false,\"enable_design_templates\":false,\"use_livestream_post_media_composition\":true,\"section_specific_preambles\":false,\"pub_export_temp_disable\":false,\"show_menu_on_posts\":false,\"ios_post_subscribe_web_routing\":true,\"enable_pangram_detection_settings\":false,\"freewalls_enabled_web\":false,\"app_onboarding_survey_email\":false,\"republishing_enabled\":false,\"app_mode\":false,\"show_phone_banner\":false,\"minimum_ios_version\":2200,\"enable_author_pages\":false,\"enable_decagon_chat\":true,\"first_month_upsell\":\"control\",\"new_user_checklist_enabled\":\"use_follower_count\",\"disable_high_res_recording\":false,\"latex_upgraded_inline\":false,\"anonymous_post_metering_enabled\":false,\"rss_verification_code\":\"\",\"notification_post_emails\":\"experiment\",\"chat_suppress_contributor_push_option_enabled\":false,\"enable_subscriber_tags\":true,\"media_feed_app_prepend_inbox_limit\":0,\"export_hooks_enabled\":false,\"audio_encoding_bitrate\":null,\"extra_seats_coupon_type\":false,\"post_subdomain_universal_links\":false,\"post_import_max_file_size\":26214400,\"feed_promoted_video_publication\":false,\"livekit_reconnect_slate_url\":\"https://mux-livestream-assets.s3.us-east-1.amazonaws.com/custom-disconnect-slate-tall.png\",\"exclude_from_pymk_suggestions\":false,\"publication_ranking_variant\":\"experiment\",\"disable_annual_subscriptions\":false,\"hack_jane_manchun_wong\":true,\"android_enable_auto_gain_control\":true,\"allow_coupons_on_upgrade\":false,\"test_au_age_gate_user\":false,\"pub_auto_moderation_enabled\":false,\"disable_live_stream_ai_trimming_by_default\":false,\"disable_deletion\":false,\"livekit_egress_custom_base_url\":\"http://livekit-egress-custom-recorder.s3-website-us-east-1.amazonaws.com\",\"clip_focused_video_upload_flow\":false,\"live_stream_max_guest_users\":2,\"android_upgrade_alert_dialog_reincarnated\":true,\"enable_video_seo_data\":false,\"can_reimport_unsubscribed_users_with_2x_optin\":false,\"founding_upgrade_during_gift_disabled\":false,\"thefp_enable_section_groups\":false,\"review_incoming_email\":\"default\",\"enable_founding_gifts\":false,\"enable_sponsorship_campaigns\":false,\"thefp_forum_polls_enabled\":false,\"thefp_enable_embed_media_links\":false,\"sort_modal_search_results\":false,\"default_thumbnail_time\":10,\"load_test_unichat\":false,\"live_stream_head_alignment_guide\":false,\"free_press_combo_subscribe_flow_enabled\":false,\"enable_code_embed_toc\":false,\"enable_publication_tax_settings\":false,\"gifts_from_substack_feature_available\":true,\"disable_ai_clips\":false,\"enable_elevenlabs_voiceovers\":false,\"thefp_enable_transcripts\":false,\"show_simple_post_editor\":false,\"instacart_integration_enabled\":false,\"enable_publication_podcasts_page\":false,\"enable_direct_message_request_bypass\":false,\"enable_apple_news_sync\":false,\"live_stream_in_trending_topic_overrides\":\"\",\"free_press_newsletter_promo_enabled\":false,\"account_based_post_metering_enabled\":false,\"disable_live_stream_reactions\":false,\"instacart_partner_id\":\"\",\"enable_adhoc_email_scheduling\":true,\"media_feed_prepend_inbox_limit\":35,\"welcome_page_no_opt_out\":false,\"enable_caption_translation_tools\":false,\"section_specific_postscripts\":false,\"edit_profile_theme_colors\":false,\"disable_clipping_for_readers\":false,\"enable_apple_podcast_delivery_self_serve_pem_files\":false,\"enable_press_kit_preview_modal\":false,\"enable_rnc_page\":true,\"live_stream_video_degradation_preference\":\"maintainFramerate\",\"enable_high_follower_dm\":true,\"pause_app_badges\":false,\"profile_feed_expanded_inventory\":false,\"livekit_mux_latency_mode\":\"low\",\"feed_juiced_user\":0,\"global_iap_plan_setup_countries\":\"AE,AG,AL,AM,AT,AU,BA,BG,BH,BJ,BN,BS,BT,BW,CH,CI,CR,CY,CZ,DK,DZ,EC,EE,ET,FI,GM,GT,GY,HK,HR,HU,ID,IL,IN,IS,JM,JO,KE,KW,LC,LI,LK,LT,LU,LV,MA,MD,MG,MK,MN,MT,MU,MX,MY,MZ,NA,NO,NZ,OM,PA,PE,PH,PK,QA,RO,RS,RW,SE,SG,SI,SK,SN,SV,TH,TN,TR,TT,TW,TZ,UZ,VN,ZA\",\"enable_collapsed_content\":false,\"enable_polymarket_expandable_embeds\":true,\"publisher_dashboard_group_subs_sidebar\":false,\"use_advanced_commerce_api_for_iap\":false,\"skip_free_preview_language_in_podcast_notes\":false,\"larger_wordmark_on_publication_homepage\":false,\"enable_mobile_stats_for_admins\":false,\"enable_livestream_youtube_simulcast\":false,\"enable_persona_sandbox_environment\":false,\"allowed_email_domains\":\"mozmail.com\",\"create_nav_item_from_tag\":false,\"bypass_single_unlock_token_limit\":false,\"enable_code_embeds\":false,\"add_section_and_tag_metadata\":false,\"daily_promoted_notes_enabled\":true,\"enable_segments_ui_revamp\":true,\"enable_islands_cms\":false,\"enable_livestream_combined_stats\":false,\"redirect_to_pub_after_welcome_signup\":false,\"chartbeat_video_enabled\":false,\"enable_drip_campaigns\":false,\"enable_filtered_posts_on_homepage\":false,\"post_management_search_engine\":\"elasticsearch\",\"new_bestseller_leaderboard_feed_item_enabled\":false,\"feed_main_disabled\":false,\"enable_account_settings_revamp\":false,\"thefp_enable_fp_recirc_block\":false,\"top_search_variant\":\"control\",\"enable_debug_logs_ios\":false,\"show_pub_content_on_profile_for_pub_id\":0,\"show_pub_content_on_profile\":false,\"livekit_track_egress\":true,\"onboarding_suggestions_search\":\"experiment\",\"feed_tuner_enabled\":false,\"livekit_mux_latency_mode_rtmp\":\"low\",\"google_login_enabled\":false,\"livekit_high_quality_egress\":false,\"iap_announcement_blog_url\":\"\",\"disable_code_embed_chrome\":false,\"ios_livestream_feedback\":false,\"founding_plan_upgrade_warning\":false,\"ios_mediaplayer_reply_bar_v2\":false,\"enable_notification_email_batching\":true,\"note_author_poll_results_visible_by_default\":true,\"ios_hide_portal_tab_bar\":false,\"follow_upsell_rollout_percentage\":30,\"gift_article_enabled\":false,\"live_stream_invite_ttl_seconds\":900000,\"include_founding_plans_coupon_option\":false,\"thefp_enable_cancellation_discount_offer\":false,\"android_enable_edit_profile_theme\":false,\"disable_audio_enhancement\":false,\"pub_search_variant\":\"control\",\"ignore_video_in_notes_length_limit\":false,\"substack_gtm_enabled\":false,\"allow_long_videos\":true,\"enable_automation_filters\":false,\"use_enhanced_video_embed_player\":true,\"founding_upgrade_preview\":false,\"enable_viewing_all_livestream_viewers\":false,\"send_subscription_canceled_email\":false,\"enable_clip_prompt_variant_filtering\":true,\"chartbeat_enabled\":false,\"dpn_ranking_enabled\":true,\"enable_custom_email_css\":false,\"thefp_enable_shows_page\":false,\"enable_apple_podcast_auto_publish\":false,\"linkedin_profile_search_enabled\":false,\"publication_has_own_app\":false,\"suggested_minimum_ios_version\":0,\"thebulwark_enable_footer_actions\":false,\"enable_posts_to_segments\":true,\"trending_topics_module_long_term_experiment\":\"control\",\"phone_verification_fallback_to_twilio\":false,\"enable_suggested_searches\":true,\"enable_subscription_notification_email_batching\":true,\"feed_controls\":\"control\",\"thefp_enable_plans_modal_v2\":false,\"a24_redemption_link\":\"\",\"design_templates_launch_phase\":\"off\",\"post_custom_email_from_name_enabled\":false,\"ios_live_stream_auto_gain_enabled\":true,\"enable_publication_tts_player\":false,\"enable_group_direct_messages\":true,\"enable_notes_admins\":false,\"thefp_show_pub_app_callout_on_post\":false,\"search_ranker_variant\":\"experiment\",\"forced_featured_topic_id\":\"\",\"ios_audio_captions_disabled\":false,\"web_podcasts_tab\":false,\"related_posts_enabled\":false,\"thefp_enable_homepage_secondary_nav\":false,\"ios_live_stream_pip_dismiss_v4\":\"control\",\"reply_rate_limit_max_distinct_users_daily\":110,\"web_post_metering_enabled\":true,\"search_retrieval_variant\":\"experiment\",\"mobile_user_attachments_enabled\":false,\"web_profile_publication_recommendations_carousel\":true,\"publisher_banner\":\"\",\"enable_sponsorship_profile\":false,\"gift_article_button_enabled\":false,\"reply_rate_limit_max_distinct_users_monthly\":600,\"desktop_live_stream_screen_share_audio_enabled\":false,\"creator_match\":true,\"ai_image_generation_enabled\":true,\"ios_default_coupon_enabled\":true,\"automod_admin_hidden_comments_tab\":true,\"video_clip_suggestions_enabled\":false,\"publisher_dashboard_home_layout_experiment\":\"control\",\"android_polymarket_embed_search\":false,\"audience_section_editor_help_link\":\"https://support.substack.com/hc/en-us/articles/50558240901268-How-do-I-add-audience-specific-content-to-a-post-on-Substack\",\"portal_ranking_variant\":\"experiment\",\"permalink_reply_ranking_variant\":\"experiment\",\"allow_feed_category_filtering\":false,\"enable_dynamic_content\":true,\"enable_thumbnail_editor_media_settings_integration\":false,\"subscriber_profile_survey_responses_enabled\":true,\"private_live_streaming_enabled\":true,\"desktop_live_stream_safe_framing\":0.8,\"translate_posts_on_standalone_sites\":true,\"bundle_subscribe_default_to_regular_plan\":false,\"enable_standardized_sponsorship_formats\":false,\"enable_pencraft_signin_form\":true,\"thefp_enable_secondary_section_redesign\":false,\"bignight_page_enabled\":true,\"thefp_paywall_annual_plans_experiment\":\"control\",\"enable_launch_assistant\":false,\"enable_youtube_exploration\":true,\"publisher_dashboard_nav_refresh\":false,\"thefp_enable_bundle_post_follow\":false,\"web_notes_tiptap_v3_experiment\":\"treatment_tiptap_v3\",\"recipe_rich_text_enabled\":true,\"publisher_dashboard_nav_refresh_experiment\":\"treatment\",\"chat_channel_creation_enabled\":false,\"web_onboarding_content_type_preferences\":\"experiment\",\"web_mobile_asset_handoff\":false},\"trackingTokens\":{\"fbPixelId\":null,\"gaPixelId\":null,\"twitterPixelId\":null,\"parselyPixelId\":null,\"googleTagManagerToken\":\"\",\"googleAnalytics4Token\":\"G-G8RXW18CW7\",\"twitterPixelSignupEventId\":null,\"twitterPixelSubscribeEventId\":null},\"publicationSettings\":{\"block_ai_crawlers\":false,\"credit_token_enabled\":true,\"custom_tos_and_privacy\":false,\"did_identity\":null,\"disable_optimistic_bank_payments\":false,\"display_welcome_page_details\":true,\"payment_pledges_enabled\":false,\"enable_drop_caps\":false,\"enable_post_page_conversion\":true,\"enable_prev_next_nav\":false,\"enable_restacking\":false,\"founding_group_subscriptions_enabled\":false,\"gifts_from_substack_disabled\":false,\"google_analytics_4_token\":\"G-G8RXW18CW7\",\"group_sections_and_podcasts_in_menu_enabled\":false,\"live_stream_homepage_visibility\":\"contributorsAndAdmins\",\"live_stream_homepage_style\":\"autoPlay\",\"live_stream_replay_enabled\":true,\"medium_length_description\":\"Senior Staff Engineer distilling 2+ decades of experience in System Reliability Engineering, Technical Leadership, and growth\",\"notes_feed_enabled\":true,\"paywall_unlock_tokens\":true,\"post_preview_crop_gravity\":\"center\",\"post_preview_radius\":\"xs\",\"reader_referrals_enabled\":true,\"reader_referrals_leaderboard_enabled\":true,\"seen_coming_soon_explainer\":false,\"seen_google_analytics_migration_modal\":false,\"local_currency_modal_seen\":true,\"local_payment_methods_modal_seen\":true,\"twitter_pixel_signup_event_id\":null,\"twitter_pixel_subscribe_event_id\":null,\"use_inclusive_sales_tax\":false,\"use_local_currency\":true,\"welcome_page_opt_out_text\":\"Maybe Later\",\"cookie_settings\":\"\",\"show_restacks_below_posts\":true,\"holiday_gifting_post_header\":true,\"homepage_message_text\":\"\",\"homepage_message_link\":\"\",\"about_us_author_ids\":\"\",\"archived_section_ids\":\"\",\"column_section_ids\":\"\",\"fp_primary_column_section_ids\":\"\",\"event_section_ids\":\"\",\"podcasts_metadata\":\"\",\"video_section_ids\":\"\",\"post_metering_enabled\":false,\"account_based_post_metering_enabled\":false,\"use_custom_theme\":false,\"reply_rules\":null,\"automatic_moderation_enabled\":true,\"auto_translate_enabled\":true,\"additional_post_languages_enabled\":false,\"high_res_recording_beta\":false},\"publicationUserSettings\":null,\"userSettings\":{\"user_id\":null,\"activity_likes_enabled\":true,\"dashboard_nav_refresh_enabled\":false,\"is_guest_post_enabled\":true,\"invite_friends_nux_dismissed_at\":null,\"suggestions_feed_item_last_shown_at\":null,\"last_notification_alert_shown_at\":null,\"disable_reply_hiding\":false,\"newest_seen_chat_item_published_at\":null,\"explicitContentEnabled\":false,\"contactMatchingEnabled\":false,\"messageRequestLevel\":\"everyone\",\"liveStreamAcceptableInviteLevel\":\"everyone\",\"liveStreamAcceptableChatLevel\":\"everyone\",\"creditTokensTreatmentExposed\":false,\"appBadgeIncludesChat\":false,\"autoPlayVideo\":true,\"autoAdvanceVideo\":true,\"smart_delivery_enabled\":false,\"chatbotTermsLastAcceptedAt\":null,\"has_seen_notes_post_app_upsell\":false,\"first_note_id\":null,\"show_concurrent_live_stream_viewers\":false,\"edit_profile_feed_item_dismissed_at\":null,\"mobile_permalink_app_upsell_seen_at\":null,\"new_user_checklist_enabled\":false,\"has_seen_youtube_shorts_auto_publish_announcement\":false,\"has_seen_publish_youtube_connect_upsell\":false,\"notificationQualityFilterEnabled\":true,\"hasSeenOnboardingNewslettersScreen\":false,\"bestsellerBadgeEnabled\":true,\"hasSelfIdentifiedAsCreator\":false,\"autoTranslateEnabled\":true,\"autoTranslateBlocklist\":[],\"fineTuneFeedItemSeenAt\":null,\"fineTuneFeedItemDismissedAt\":null,\"aiGeneratedTextMode\":\"show\",\"feedVideoPreference\":5,\"feedAudioPreference\":5,\"feedLongerPostsPreference\":5,\"feedChatPreference\":5},\"mux_env_key\":\"u42pci814i6011qg3segrcpp9\",\"persona_environment_id\":\"env_o1Lbk4JhpY4PmvNkwaBdYwe5Fzkt\",\"sentry_environment\":\"production\",\"launchWelcomePage\":false,\"pendingInviteForActiveLiveStream\":null,\"isEligibleForLiveStreamCreation\":true,\"webviewPlatform\":null,\"noIndex\":false,\"post\":{\"audience\":\"only_paid\",\"audience_before_archived\":null,\"canonical_url\":\"https://blog.alexewerlof.com/p/composite-slo\",\"default_comment_sort\":null,\"editor_v2\":false,\"exempt_from_archive_paywall\":false,\"free_unlock_required\":false,\"id\":142662722,\"podcast_art_url\":null,\"podcast_duration\":null,\"podcast_preview_upload_id\":null,\"podcast_upload_id\":null,\"podcast_url\":null,\"post_date\":\"2024-03-25T05:30:17.087Z\",\"updated_at\":\"2025-06-16T07:30:02.228Z\",\"publication_id\":1002265,\"search_engine_description\":\"Complex systems are composed of multiple parts. This page discusses how to calculate the reliability of such systems for parallel or serial dependencies with plenty of examples. It ends with tips on how to improve reliability of composite systems.\",\"search_engine_title\":null,\"section_id\":67723,\"should_send_free_preview\":true,\"show_guest_bios\":true,\"slug\":\"composite-slo\",\"social_title\":\"Composite SLO\",\"subtitle\":\"How to calculate the SLO of a complex system that is made of multiple components?\",\"teaser_post_eligible\":true,\"title\":\"Composite SLO\",\"type\":\"newsletter\",\"video_upload_id\":null,\"write_comment_permissions\":\"only_paid\",\"meter_type\":\"none\",\"live_stream_id\":null,\"is_published\":true,\"restacks\":1,\"reactions\":{\"\u2764\":10},\"top_exclusions\":[],\"pins\":[],\"section_pins\":[],\"has_shareable_clips\":false,\"previous_post_slug\":\"sla\",\"next_post_slug\":\"nfr\",\"cover_image\":\"https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8143076-aaf0-4e49-b1a1-55c1763e7017_1099x607.png\",\"cover_image_is_square\":false,\"cover_image_is_explicit\":false,\"videoUpload\":null,\"podcastFields\":{\"post_id\":142662722,\"podcast_episode_number\":null,\"podcast_season_number\":null,\"podcast_episode_type\":null,\"should_syndicate_to_other_feed\":null,\"syndicate_to_section_id\":null,\"hide_from_feed\":false,\"free_podcast_url\":null,\"free_podcast_duration\":null,\"preview_contains_ad\":false,\"was_imported_self_serve_sync\":false,\"draft_free_podcast_url\":null,\"draft_free_podcast_duration\":null},\"podcastUpload\":null,\"podcastPreviewUpload\":null,\"voiceover_upload_id\":null,\"voiceoverUpload\":null,\"has_voiceover\":false,\"description\":\"How to calculate the SLO of a complex system that is made of multiple components?\",\"body_html\":\"<p>Complex systems are made of many components. We may have a <a href=\\\"https://blog.alexewerlof.com/p/slo\\\">Service Level Objective (SLO)</a> for each component but how do we calculate the SLO for the entire system?</p><p>For example, if you have 4 replicas of a microservice, how exactly does it improve the reliability of the whole?</p><p>Or if a system can only function if all its dependencies are functioning, how do we calculate the reliability of that system?</p><p>System engineering has two simple rules for calculating composite SLO:</p><ul><li><p>Multiply <strong>SLOs</strong> for <strong>serial</strong> dependencies</p></li><li><p>Multiply <strong>error budgets</strong> for <strong>parallel</strong> dependencies</p></li></ul><p>Both use a <a href=\\\"https://onlinestatbook.com/2/probability/basic.html\\\">basic concept</a> in probability theory:</p><div class=\\\"latex-rendered\\\" data-attrs=\\\"{"persistentExpression":"P(A \\\\\\\\cup B) = P(A).P(B)","id":"KYLFHVPZPJ"}\\\" data-component-name=\\\"LatexBlockToDOM\\\"></div><p>The probability of two <em>independent</em> events happening at the same time is the result of multiplying the probability of each one happening individually.</p><p>Let\u2019s unpack that with plenty of examples.</p><p>Notes:</p><ul><li><p><em>Composite SLO</em> is about how to calculate the SLO of different sub-systems in a complex system. It\u2019s not to be confused with <em><a href=\\\"https://blog.alexewerlof.com/p/multi-tiered-slos\\\">multi-tiered SLO</a></em> which is about having multiple SLOs for the same system.</p></li><li><p><em>The first two examples in this article are very simplified to demonstrate the math. We then add a more complex example afterwards.</em></p></li></ul><h1>Serial Dependencies</h1><p>In the diagram below, we have 3 systems:</p><div class=\\\"captioned-image-container\\\"><figure><a class=\\\"image-link image2 is-viewable-img\\\" target=\\\"_blank\\\" href=\\\"https://substackcdn.com/image/fetch/$s_!M_kU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56ea2bcc-6960-4683-988e-17c499ffcad6_1056x633.png\\\" data-component-name=\\\"Image2ToDOM\\\"><div class=\\\"image2-inset\\\"><picture><source type=\\\"image/webp\\\" srcset=\\\"https://substackcdn.com/image/fetch/$s_!M_kU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56ea2bcc-6960-4683-988e-17c499ffcad6_1056x633.png 424w, https://substackcdn.com/image/fetch/$s_!M_kU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56ea2bcc-6960-4683-988e-17c499ffcad6_1056x633.png 848w, https://substackcdn.com/image/fetch/$s_!M_kU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56ea2bcc-6960-4683-988e-17c499ffcad6_1056x633.png 1272w, https://substackcdn.com/image/fetch/$s_!M_kU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56ea2bcc-6960-4683-988e-17c499ffcad6_1056x633.png 1456w\\\" sizes=\\\"100vw\\\"><img src=\\\"https://substackcdn.com/image/fetch/$s_!M_kU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56ea2bcc-6960-4683-988e-17c499ffcad6_1056x633.png\\\" width=\\\"1056\\\" height=\\\"633\\\" data-attrs=\\\"{"src":"https://substack-post-media.s3.amazonaws.com/public/images/56ea2bcc-6960-4683-988e-17c499ffcad6_1056x633.png","srcNoWatermark":null,"fullscreen":null,"imageSize":null,"height":633,"width":1056,"resizeWidth":null,"bytes":25238,"alt":null,"title":null,"type":"image/png","href":null,"belowTheFold":true,"topImage":false,"internalRedirect":"https://blog.alexewerlof.com/i/142662722?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56ea2bcc-6960-4683-988e-17c499ffcad6_1056x633.png","isProcessing":false,"align":null,"offset":false}\\\" class=\\\"sizing-normal\\\" alt=\\\"\\\" srcset=\\\"https://substackcdn.com/image/fetch/$s_!M_kU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56ea2bcc-6960-4683-988e-17c499ffcad6_1056x633.png 424w, https://substackcdn.com/image/fetch/$s_!M_kU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56ea2bcc-6960-4683-988e-17c499ffcad6_1056x633.png 848w, https://substackcdn.com/image/fetch/$s_!M_kU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56ea2bcc-6960-4683-988e-17c499ffcad6_1056x633.png 1272w, https://substackcdn.com/image/fetch/$s_!M_kU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56ea2bcc-6960-4683-988e-17c499ffcad6_1056x633.png 1456w\\\" sizes=\\\"100vw\\\" loading=\\\"lazy\\\"></picture><div class=\\\"image-link-expand\\\"><div class=\\\"pencraft pc-display-flex pc-gap-8 pc-reset\\\"><button tabindex=\\\"0\\\" type=\\\"button\\\" class=\\\"pencraft pc-reset pencraft icon-container restack-image\\\"><svg aria-hidden=\\\"true\\\" width=\\\"20\\\" height=\\\"20\\\" viewBox=\\\"0 0 20 20\\\" fill=\\\"none\\\" stroke-width=\\\"1.5\\\" stroke=\\\"var(--color-fg-primary)\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><g><path d=\\\"M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882\\\"></path></g></svg></button><button tabindex=\\\"0\\\" type=\\\"button\\\" class=\\\"pencraft pc-reset pencraft icon-container view-image\\\"><svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"20\\\" height=\\\"20\\\" viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" class=\\\"lucide lucide-maximize2 lucide-maximize-2\\\"><polyline points=\\\"15 3 21 3 21 9\\\"></polyline><polyline points=\\\"9 21 3 21 3 15\\\"></polyline><line x1=\\\"21\\\" x2=\\\"14\\\" y1=\\\"3\\\" y2=\\\"10\\\"></line><line x1=\\\"3\\\" x2=\\\"10\\\" y1=\\\"21\\\" y2=\\\"14\\\"></line></svg></button></div></div></div></a></figure></div><p>System C: an API that has two hard dependencies</p><ol><li><p>System A: an database with the availability of <code>99.8%</code></p></li><li><p>System B: an upstream API with the availability of <code>95.3%</code></p></li></ol><p>For the sake of simplicity, we assume that these two dependencies run on a different infrastructure (e.g. bought from a 3rd party) and System C does not have any resilience architecture in place meaning if any of A or B go down, C also goes down.</p><p>Here, the downtime is marked in red over a period of time (e.g. 1 month):</p><div class=\\\"captioned-image-container\\\"><figure><a class=\\\"image-link image2 is-viewable-img\\\" target=\\\"_blank\\\" href=\\\"https://substackcdn.com/image/fetch/$s_!RQdf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08a88e8f-9014-48dc-b20d-9e52f56f2dc1_1060x511.png\\\" data-component-name=\\\"Image2ToDOM\\\"><div class=\\\"image2-inset\\\"><picture><source type=\\\"image/webp\\\" srcset=\\\"https://substackcdn.com/image/fetch/$s_!RQdf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08a88e8f-9014-48dc-b20d-9e52f56f2dc1_1060x511.png 424w, https://substackcdn.com/image/fetch/$s_!RQdf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08a88e8f-9014-48dc-b20d-9e52f56f2dc1_1060x511.png 848w, https://substackcdn.com/image/fetch/$s_!RQdf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08a88e8f-9014-48dc-b20d-9e52f56f2dc1_1060x511.png 1272w, https://substackcdn.com/image/fetch/$s_!RQdf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08a88e8f-9014-48dc-b20d-9e52f56f2dc1_1060x511.png 1456w\\\" sizes=\\\"100vw\\\"><img src=\\\"https://substackcdn.com/image/fetch/$s_!RQdf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08a88e8f-9014-48dc-b20d-9e52f56f2dc1_1060x511.png\\\" width=\\\"1060\\\" height=\\\"511\\\" data-attrs=\\\"{"src":"https://substack-post-media.s3.amazonaws.com/public/images/08a88e8f-9014-48dc-b20d-9e52f56f2dc1_1060x511.png","srcNoWatermark":null,"fullscreen":null,"imageSize":null,"height":511,"width":1060,"resizeWidth":null,"bytes":23678,"alt":null,"title":null,"type":"image/png","href":null,"belowTheFold":true,"topImage":false,"internalRedirect":"https://blog.alexewerlof.com/i/142662722?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08a88e8f-9014-48dc-b20d-9e52f56f2dc1_1060x511.png","isProcessing":false,"align":null,"offset":false}\\\" class=\\\"sizing-normal\\\" alt=\\\"\\\" srcset=\\\"https://substackcdn.com/image/fetch/$s_!RQdf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08a88e8f-9014-48dc-b20d-9e52f56f2dc1_1060x511.png 424w, https://substackcdn.com/image/fetch/$s_!RQdf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08a88e8f-9014-48dc-b20d-9e52f56f2dc1_1060x511.png 848w, https://substackcdn.com/image/fetch/$s_!RQdf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08a88e8f-9014-48dc-b20d-9e52f56f2dc1_1060x511.png 1272w, https://substackcdn.com/image/fetch/$s_!RQdf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08a88e8f-9014-48dc-b20d-9e52f56f2dc1_1060x511.png 1456w\\\" sizes=\\\"100vw\\\" loading=\\\"lazy\\\"></picture><div class=\\\"image-link-expand\\\"><div class=\\\"pencraft pc-display-flex pc-gap-8 pc-reset\\\"><button tabindex=\\\"0\\\" type=\\\"button\\\" class=\\\"pencraft pc-reset pencraft icon-container restack-image\\\"><svg aria-hidden=\\\"true\\\" width=\\\"20\\\" height=\\\"20\\\" viewBox=\\\"0 0 20 20\\\" fill=\\\"none\\\" stroke-width=\\\"1.5\\\" stroke=\\\"var(--color-fg-primary)\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><g><path d=\\\"M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882\\\"></path></g></svg></button><button tabindex=\\\"0\\\" type=\\\"button\\\" class=\\\"pencraft pc-reset pencraft icon-container view-image\\\"><svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"20\\\" height=\\\"20\\\" viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" class=\\\"lucide lucide-maximize2 lucide-maximize-2\\\"><polyline points=\\\"15 3 21 3 21 9\\\"></polyline><polyline points=\\\"9 21 3 21 3 15\\\"></polyline><line x1=\\\"21\\\" x2=\\\"14\\\" y1=\\\"3\\\" y2=\\\"10\\\"></line><line x1=\\\"3\\\" x2=\\\"10\\\" y1=\\\"21\\\" y2=\\\"14\\\"></line></svg></button></div></div></div></a></figure></div><p>As we can see, the probability of System C being <strong>available</strong> equals to the probability of System A <strong>and</strong> B being <strong>available</strong>.</p><p>SLO is expressed in percentage, but we use numbers in the 0 to 1 range when using probability math:</p><ol><li><p>Probability of system B being available: <code>0.998</code></p></li><li><p>Probability of System C being available: <code>0.953</code></p></li></ol><div class=\\\"latex-rendered\\\" data-attrs=\\\"{"persistentExpression":"P_{up}(C) = P_{up}(A \\\\\\\\cup B) = P_{up}(A).P_{up}(B) = 0.998 \\\\\\\\times 0.953 = 0.951094","id":"UZDKKOIGSX"}\\\" data-component-name=\\\"LatexBlockToDOM\\\"></div><p>Expressed in percentage, the SLO of System A is 95.1094%</p><p>As you can see, the availability of System A is worse than its least reliable dependency, which is expected in the case of serial dependency.</p><div class=\\\"subscription-widget-wrap-editor\\\" data-attrs=\\\"{"url":"https://blog.alexewerlof.com/subscribe?","text":"Subscribe","language":"en"}\\\" data-component-name=\\\"SubscribeWidgetToDOM\\\"><div class=\\\"subscription-widget show-subscribe\\\"><div class=\\\"preamble\\\"><p class=\\\"cta-caption\\\">If you like this type of knowledge, make sure to subscribe.</p></div><form class=\\\"subscription-widget-subscribe\\\"><input type=\\\"email\\\" class=\\\"email-input\\\" name=\\\"email\\\" placeholder=\\\"Type your email\u2026\\\" tabindex=\\\"-1\\\"><input type=\\\"submit\\\" class=\\\"button primary\\\" value=\\\"Subscribe\\\"><div class=\\\"fake-input-wrapper\\\"><div class=\\\"fake-input\\\"></div><div class=\\\"fake-button\\\"></div></div></form></div></div><h1>Parallel Dependencies</h1><p>In the diagram below, we have 3 systems:</p><div class=\\\"captioned-image-container\\\"><figure><a class=\\\"image-link image2 is-viewable-img\\\" target=\\\"_blank\\\" href=\\\"https://substackcdn.com/image/fetch/$s_!lPhf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6532e124-541f-49f5-874d-de3ff40f2ae2_1061x644.png\\\" data-component-name=\\\"Image2ToDOM\\\"><div class=\\\"image2-inset\\\"><picture><source type=\\\"image/webp\\\" srcset=\\\"https://substackcdn.com/image/fetch/$s_!lPhf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6532e124-541f-49f5-874d-de3ff40f2ae2_1061x644.png 424w, https://substackcdn.com/image/fetch/$s_!lPhf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6532e124-541f-49f5-874d-de3ff40f2ae2_1061x644.png 848w, https://substackcdn.com/image/fetch/$s_!lPhf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6532e124-541f-49f5-874d-de3ff40f2ae2_1061x644.png 1272w, https://substackcdn.com/image/fetch/$s_!lPhf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6532e124-541f-49f5-874d-de3ff40f2ae2_1061x644.png 1456w\\\" sizes=\\\"100vw\\\"><img src=\\\"https://substackcdn.com/image/fetch/$s_!lPhf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6532e124-541f-49f5-874d-de3ff40f2ae2_1061x644.png\\\" width=\\\"1061\\\" height=\\\"644\\\" data-attrs=\\\"{"src":"https://substack-post-media.s3.amazonaws.com/public/images/6532e124-541f-49f5-874d-de3ff40f2ae2_1061x644.png","srcNoWatermark":null,"fullscreen":null,"imageSize":null,"height":644,"width":1061,"resizeWidth":null,"bytes":25794,"alt":null,"title":null,"type":"image/png","href":null,"belowTheFold":true,"topImage":false,"internalRedirect":"https://blog.alexewerlof.com/i/142662722?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6532e124-541f-49f5-874d-de3ff40f2ae2_1061x644.png","isProcessing":false,"align":null,"offset":false}\\\" class=\\\"sizing-normal\\\" alt=\\\"\\\" srcset=\\\"https://substackcdn.com/image/fetch/$s_!lPhf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6532e124-541f-49f5-874d-de3ff40f2ae2_1061x644.png 424w, https://substackcdn.com/image/fetch/$s_!lPhf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6532e124-541f-49f5-874d-de3ff40f2ae2_1061x644.png 848w, https://substackcdn.com/image/fetch/$s_!lPhf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6532e124-541f-49f5-874d-de3ff40f2ae2_1061x644.png 1272w, https://substackcdn.com/image/fetch/$s_!lPhf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6532e124-541f-49f5-874d-de3ff40f2ae2_1061x644.png 1456w\\\" sizes=\\\"100vw\\\" loading=\\\"lazy\\\"></picture><div class=\\\"image-link-expand\\\"><div class=\\\"pencraft pc-display-flex pc-gap-8 pc-reset\\\"><button tabindex=\\\"0\\\" type=\\\"button\\\" class=\\\"pencraft pc-reset pencraft icon-container restack-image\\\"><svg aria-hidden=\\\"true\\\" width=\\\"20\\\" height=\\\"20\\\" viewBox=\\\"0 0 20 20\\\" fill=\\\"none\\\" stroke-width=\\\"1.5\\\" stroke=\\\"var(--color-fg-primary)\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><g><path d=\\\"M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882\\\"></path></g></svg></button><button tabindex=\\\"0\\\" type=\\\"button\\\" class=\\\"pencraft pc-reset pencraft icon-container view-image\\\"><svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"20\\\" height=\\\"20\\\" viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" class=\\\"lucide lucide-maximize2 lucide-maximize-2\\\"><polyline points=\\\"15 3 21 3 21 9\\\"></polyline><polyline points=\\\"9 21 3 21 3 15\\\"></polyline><line x1=\\\"21\\\" x2=\\\"14\\\" y1=\\\"3\\\" y2=\\\"10\\\"></line><line x1=\\\"3\\\" x2=\\\"10\\\" y1=\\\"21\\\" y2=\\\"14\\\"></line></svg></button></div></div></div></a></figure></div><p>System C: an API gateway that has two parallel dependencies:</p><ol><li><p>System A: an upstream in the local region with the availability of <code>99.8%</code></p></li><li><p>System B: the same upstream in another region with the availability of <code>95.3%</code></p></li></ol><p>We picked the same availability numbers as before just to see how serial and parallel dependencies impact the overall system reliability.</p><p>Looking at the uptime of those systems we can see that system C is available when either System A or B are available:</p><div class=\\\"captioned-image-container\\\"><figure><a class=\\\"image-link image2 is-viewable-img\\\" target=\\\"_blank\\\" href=\\\"https://substackcdn.com/image/fetch/$s_!FCu7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39e185e5-038a-4626-a025-6dd2fe16af6e_1060x514.png\\\" data-component-name=\\\"Image2ToDOM\\\"><div class=\\\"image2-inset\\\"><picture><source type=\\\"image/webp\\\" srcset=\\\"https://substackcdn.com/image/fetch/$s_!FCu7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39e185e5-038a-4626-a025-6dd2fe16af6e_1060x514.png 424w, https://substackcdn.com/image/fetch/$s_!FCu7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39e185e5-038a-4626-a025-6dd2fe16af6e_1060x514.png 848w, https://substackcdn.com/image/fetch/$s_!FCu7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39e185e5-038a-4626-a025-6dd2fe16af6e_1060x514.png 1272w, https://substackcdn.com/image/fetch/$s_!FCu7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39e185e5-038a-4626-a025-6dd2fe16af6e_1060x514.png 1456w\\\" sizes=\\\"100vw\\\"><img src=\\\"https://substackcdn.com/image/fetch/$s_!FCu7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39e185e5-038a-4626-a025-6dd2fe16af6e_1060x514.png\\\" width=\\\"1060\\\" height=\\\"514\\\" data-attrs=\\\"{"src":"https://substack-post-media.s3.amazonaws.com/public/images/39e185e5-038a-4626-a025-6dd2fe16af6e_1060x514.png","srcNoWatermark":null,"fullscreen":null,"imageSize":null,"height":514,"width":1060,"resizeWidth":null,"bytes":23625,"alt":null,"title":null,"type":"image/png","href":null,"belowTheFold":true,"topImage":false,"internalRedirect":"https://blog.alexewerlof.com/i/142662722?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39e185e5-038a-4626-a025-6dd2fe16af6e_1060x514.png","isProcessing":false,"align":null,"offset":false}\\\" class=\\\"sizing-normal\\\" alt=\\\"\\\" srcset=\\\"https://substackcdn.com/image/fetch/$s_!FCu7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39e185e5-038a-4626-a025-6dd2fe16af6e_1060x514.png 424w, https://substackcdn.com/image/fetch/$s_!FCu7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39e185e5-038a-4626-a025-6dd2fe16af6e_1060x514.png 848w, https://substackcdn.com/image/fetch/$s_!FCu7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39e185e5-038a-4626-a025-6dd2fe16af6e_1060x514.png 1272w, https://substackcdn.com/image/fetch/$s_!FCu7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39e185e5-038a-4626-a025-6dd2fe16af6e_1060x514.png 1456w\\\" sizes=\\\"100vw\\\" loading=\\\"lazy\\\"></picture><div class=\\\"image-link-expand\\\"><div class=\\\"pencraft pc-display-flex pc-gap-8 pc-reset\\\"><button tabindex=\\\"0\\\" type=\\\"button\\\" class=\\\"pencraft pc-reset pencraft icon-container restack-image\\\"><svg aria-hidden=\\\"true\\\" width=\\\"20\\\" height=\\\"20\\\" viewBox=\\\"0 0 20 20\\\" fill=\\\"none\\\" stroke-width=\\\"1.5\\\" stroke=\\\"var(--color-fg-primary)\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><g><path d=\\\"M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882\\\"></path></g></svg></button><button tabindex=\\\"0\\\" type=\\\"button\\\" class=\\\"pencraft pc-reset pencraft icon-container view-image\\\"><svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"20\\\" height=\\\"20\\\" viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" class=\\\"lucide lucide-maximize2 lucide-maximize-2\\\"><polyline points=\\\"15 3 21 3 21 9\\\"></polyline><polyline points=\\\"9 21 3 21 3 15\\\"></polyline><line x1=\\\"21\\\" x2=\\\"14\\\" y1=\\\"3\\\" y2=\\\"10\\\"></line><line x1=\\\"3\\\" x2=\\\"10\\\" y1=\\\"21\\\" y2=\\\"14\\\"></line></svg></button></div></div></div></a></figure></div><p>As we can see, the probability of System A being <strong>unavailable</strong> equals to the probability of System B <strong>and</strong> C being <strong>unavailable</strong>.</p><p>Converting SLO percentage to the 0 to 1 range to make them suitable for probability math we have:</p><ol><li><p>Probability of system B being unavailable: <code>1 - 0.998 = 0.002</code></p></li><li><p>Probability of System C being unavailable: <code>1 - 0.953 = 0.047</code></p></li></ol><div class=\\\"latex-rendered\\\" data-attrs=\\\"{"persistentExpression":"P_{down}(C) = P_{down}(A \\\\\\\\cup B) = P_{down}(A).P_{down}(B) = 0.002 \\\\\\\\times 0.047 = 0.000094","id":"IGJIGDFLCQ"}\\\" data-component-name=\\\"LatexBlockToDOM\\\"></div><p>Probability of System A being unavailable = <code>0.002 x 0.047 = 0.000094</code></p><p>Converting it to the percentage, we get 0.0094% but that is unavailability (i.e. the <em><a href=\\\"https://blog.alexewerlof.com/p/error-budget\\\">error budget</a></em>). The SLO will be the complement of that:</p><p>System A availability = <code>100% - 0.0094% = 99.9906%</code></p><p>As you can see, the availability of System A is better than its most reliable dependency, which is expected in the case of parallel dependency.</p><p class=\\\"button-wrapper\\\" data-attrs=\\\"{"url":"https://blog.alexewerlof.com/subscribe?","text":"Subscribe now","action":null,"class":null}\\\" data-component-name=\\\"ButtonCreateButton\\\"><a class=\\\"button primary\\\" href=\\\"https://blog.alexewerlof.com/subscribe?\\\"><span>Subscribe now</span></a></p><h1>More Complex and Realistic Example</h1><p>This is a typical website example:</p><div class=\\\"captioned-image-container\\\"><figure><a class=\\\"image-link image2 is-viewable-img\\\" target=\\\"_blank\\\" href=\\\"https://substackcdn.com/image/fetch/$s_!dUHI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41ec82b8-09e3-4455-9dec-9ba517b16e7b_1105x1046.png\\\" data-component-name=\\\"Image2ToDOM\\\"><div class=\\\"image2-inset\\\"><picture><source type=\\\"image/webp\\\" srcset=\\\"https://substackcdn.com/image/fetch/$s_!dUHI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41ec82b8-09e3-4455-9dec-9ba517b16e7b_1105x1046.png 424w, https://substackcdn.com/image/fetch/$s_!dUHI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41ec82b8-09e3-4455-9dec-9ba517b16e7b_1105x1046.png 848w, https://substackcdn.com/image/fetch/$s_!dUHI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41ec82b8-09e3-4455-9dec-9ba517b16e7b_1105x1046.png 1272w, https://substackcdn.com/image/fetch/$s_!dUHI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41ec82b8-09e3-4455-9dec-9ba517b16e7b_1105x1046.png 1456w\\\" sizes=\\\"100vw\\\"><img src=\\\"https://substackcdn.com/image/fetch/$s_!dUHI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41ec82b8-09e3-4455-9dec-9ba517b16e7b_1105x1046.png\\\" width=\\\"1105\\\" height=\\\"1046\\\" data-attrs=\\\"{"src":"https://substack-post-media.s3.amazonaws.com/public/images/41ec82b8-09e3-4455-9dec-9ba517b16e7b_1105x1046.png","srcNoWatermark":null,"fullscreen":null,"imageSize":null,"height":1046,"width":1105,"resizeWidth":null,"bytes":68176,"alt":null,"title":null,"type":"image/png","href":null,"belowTheFold":true,"topImage":false,"internalRedirect":null,"isProcessing":false,"align":null,"offset":false}\\\" class=\\\"sizing-normal\\\" alt=\\\"\\\" srcset=\\\"https://substackcdn.com/image/fetch/$s_!dUHI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41ec82b8-09e3-4455-9dec-9ba517b16e7b_1105x1046.png 424w, https://substackcdn.com/image/fetch/$s_!dUHI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41ec82b8-09e3-4455-9dec-9ba517b16e7b_1105x1046.png 848w, https://substackcdn.com/image/fetch/$s_!dUHI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41ec82b8-09e3-4455-9dec-9ba517b16e7b_1105x1046.png 1272w, https://substackcdn.com/image/fetch/$s_!dUHI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41ec82b8-09e3-4455-9dec-9ba517b16e7b_1105x1046.png 1456w\\\" sizes=\\\"100vw\\\" loading=\\\"lazy\\\"></picture><div class=\\\"image-link-expand\\\"><div class=\\\"pencraft pc-display-flex pc-gap-8 pc-reset\\\"><button tabindex=\\\"0\\\" type=\\\"button\\\" class=\\\"pencraft pc-reset pencraft icon-container restack-image\\\"><svg aria-hidden=\\\"true\\\" width=\\\"20\\\" height=\\\"20\\\" viewBox=\\\"0 0 20 20\\\" fill=\\\"none\\\" stroke-width=\\\"1.5\\\" stroke=\\\"var(--color-fg-primary)\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><g><path d=\\\"M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882\\\"></path></g></svg></button><button tabindex=\\\"0\\\" type=\\\"button\\\" class=\\\"pencraft pc-reset pencraft icon-container view-image\\\"><svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"20\\\" height=\\\"20\\\" viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" class=\\\"lucide lucide-maximize2 lucide-maximize-2\\\"><polyline points=\\\"15 3 21 3 21 9\\\"></polyline><polyline points=\\\"9 21 3 21 3 15\\\"></polyline><line x1=\\\"21\\\" x2=\\\"14\\\" y1=\\\"3\\\" y2=\\\"10\\\"></line><line x1=\\\"3\\\" x2=\\\"10\\\" y1=\\\"21\\\" y2=\\\"14\\\"></line></svg></button></div></div></div></a></figure></div><ul><li><p><strong>Static server</strong> serves the website assets like HTML, JavaScript, CSS, images, etc. This simple service is run behind CDN which is available from multiple locations</p></li><li><p><strong>CDN: </strong>Content Delivery Network distributes static files across the globe. CDN usually has a cache that acts as a <a href=\\\"https://blog.alexewerlof.com/p/fallback\\\">fallback</a> mechanism for when the upstream server is down. This CDN also has a <a href=\\\"https://blog.alexewerlof.com/p/failover\\\">failover</a> mechanism to automatically pick the next node when one of the nodes is down.</p></li><li><p><strong>API server:</strong> supports the functionality of the web app. For example, it can be a BFF (dedicated backend for frontend), or a GraphQL server abstracting away multiple other APIs toward the browser application.</p></li><li><p><strong>IDaaS:</strong> The website and API server both depend on a 3rd party identity as-a-service provider.</p></li></ul><p>Based on the research, you get the following availability numbers:</p><ul><li><p>The CDN provider commits to 99.9% availability for each of their edge nodes</p></li><li><p>The IDaaS provider commits to 99% availability in their SLA</p></li><li><p>The static file server is available 98% of the time based on historical data</p></li><li><p>The API server is available 95% of the time. That is because the API server has hard dependencies to other upstream services which are not shown in the diagram.</p></li></ul><p>So how do we go about calculating the availability of the browser application?</p><p>It has 3 dependencies:</p><ul><li><p><strong>CDN</strong> is available if any of its 3 nodes are available.</p><ul><li><p>Each CDN node has a serial dependency on the static server. Therefore, the usefulness of the CDN node is <code>0.999 x 0.98 = 0.97902</code>. This means the error budget for each CDN node is <code>1 - 0.97902 = 0.02098</code></p></li><li><p>There are 3 CDN nodes in parallel, so the collective error budget is calculated from multiplying their error budgets: <code>0.02098 x 0.02098 x 0.02098 = 0.00000923456</code></p></li><li><p>Therefore, the availability of the CDN is <code>1 - 0.00000923456 = 0.99999076544</code></p></li><li><p>The whole CDN (including the 3 nodes) can be seen as one serial dependency for the browser app.</p></li></ul></li><li><p><strong>API server</strong> is available 95% but since it also requires the IDaaS provider to serve the browser, its availability is <code>0.95 x 0.99 = 0.9405</code></p></li><li><p>IDaaS is available <code>99%</code> towards the browser too. Converted to 0-1 range, we get <code>0.99</code></p></li></ul><p>Putting them all together, the browser app\u2019s availability is the multiplication of all its serial dependencies for it to be served, function, and identify the user:</p><p><code>0.99999076544 x 0.9405 x 0.99 = 0.93108640174</code></p><p>Converted to percentage, we get <code>93.108640174%</code> or <code>93.1%</code> for short.</p><p>Is it good? Is it bad? It really depends on what makes sense to your service consumers as we discussed in \u201Clagom\u201D SLO:</p><div class=\\\"digest-post-embed\\\" data-attrs=\\\"{"nodeId":"b92d5799-dd16-47c6-a5ee-52ef312ee4db","caption":"\uD83D\uDD34Note: the red circle indicates links to articles that will be published in my WIP book: Reliability Engineering Mindset. When you communicate your \uD83D\uDD34SLO to your service consumers, 2 things can happen. Either they\u2019re happy with it or they\u2019re not. \uD83C\uDDF8\uD83C\uDDEA I want to borrow a Swedish word. \u201CLagom\u201D is a Swedish word that is hard to translate.","cta":null,"showBylines":true,"showDescription":true,"showImage":true,"size":"sm","isEditorNode":true,"title":"Lagom SLO","publishedBylines":[{"id":87732486,"name":"Alex Ewerl\u00F6f","bio":"Writes about technical leadership, growth mindset, and system reliability engineering.\\\\n\\\\nSenior Staff Engineer, MSc Systems Engineering from KTH, Stockholmer, dad, amateur artist.\\\\n\\\\nRead more here: https://www.alexewerlof.com/who","photo_url":"https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2713990-da82-481b-b579-01a7aaa5b85b_560x560.jpeg","is_guest":false,"bestseller_tier":null}],"post_date":"2023-12-11T05:30:37.243Z","cover_image":"https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F254c376f-0f73-460f-b011-9d0cafd2b720_895x890.png","cover_image_alt":null,"canonical_url":"https://blog.alexewerlof.com/p/lagom-slo","section_name":"SRE","video_upload_id":null,"id":139125736,"type":"newsletter","reaction_count":1,"comment_count":0,"publication_id":null,"publication_name":"Alex Ewerl\u00F6f Notes","publication_logo_url":"https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c58cb07-9341-402b-bcdb-9fa767c2cdac_500x500.png","belowTheFold":true,"youtube_url":null,"show_links":null,"feed_url":null}\\\"></div><h1>Pro-Tips</h1><p><em><a href=\\\"https://blog.alexewerlof.com/p/faq#%C2%A7payment\\\">My monetization strategy</a> is to give away most of content for free. However, these posts take anywhere from a few hours to days to draft, edit, illustrate, and publish. I pull these hours from my private time and weekends. For those who spare a few bucks, the pro-tips are a token of appreciation. The bar for pro-tips is to give tools and mindset that you can use at your work to earn more. Right now, you can get 20% off via <a href=\\\"https://blog.alexewerlof.com/protipsdiscount\\\">this link</a>. If you don\u2019t want to spend money, sharing it with a wider audience also helps. Thanks in advance.</em></p><p class=\\\"button-wrapper\\\" data-attrs=\\\"{"url":"https://blog.alexewerlof.com/p/composite-slo?utm_source=substack&utm_medium=email&utm_content=share&action=share","text":"Share","action":null,"class":null}\\\" data-component-name=\\\"ButtonCreateButton\\\"><a class=\\\"button primary\\\" href=\\\"https://blog.alexewerlof.com/p/composite-slo?utm_source=substack&utm_medium=email&utm_content=share&action=share\\\"><span>Share</span></a></p>\",\"has_dynamic_content\":false,\"truncated_body_text\":\"Complex systems are made of many components. We may have a Service Level Objective (SLO) for each component but how do we calculate the SLO for the entire system?\",\"wordcount\":1632,\"post_preview_limit\":null,\"language\":\"en\",\"postTags\":[{\"id\":\"41c8e46a-a899-466d-b9d9-a3d1c099b04b\",\"publication_id\":1002265,\"name\":\"reliability\",\"slug\":\"reliability\",\"hidden\":false},{\"id\":\"534a54d4-65f3-4e24-88c0-c603442c7530\",\"publication_id\":1002265,\"name\":\"slo\",\"slug\":\"slo\",\"hidden\":false},{\"id\":\"5e9cbdcc-0b40-4ae7-8c80-cc8b60db862b\",\"publication_id\":1002265,\"name\":\"systems engineering\",\"slug\":\"systems-engineering\",\"hidden\":false},{\"id\":\"ae2bf941-bf61-45c2-a8b9-a6dc27247c3a\",\"publication_id\":1002265,\"name\":\"service levels\",\"slug\":\"service-levels\",\"hidden\":false}],\"postCountryBlocks\":[],\"headlineTest\":null,\"coverImagePalette\":{\"Vibrant\":{\"rgb\":[68,171,251],\"population\":1522},\"DarkVibrant\":{\"rgb\":[4,20,36],\"population\":2218},\"LightVibrant\":{\"rgb\":[251,100,100],\"population\":286},\"Muted\":{\"rgb\":[100,124,169],\"population\":3},\"DarkMuted\":{\"rgb\":[67,43,55],\"population\":203},\"LightMuted\":{\"rgb\":[180,124,140],\"population\":11}},\"publishedBylines\":[{\"id\":87732486,\"name\":\"Alex Ewerl\u00F6f\",\"handle\":\"alexewerlof\",\"photo_url\":\"https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2713990-da82-481b-b579-01a7aaa5b85b_560x560.jpeg\",\"bio\":\"Writes about technical leadership, growth mindset, and system reliability engineering. Senior Staff Engineer, MSc Systems Engineering from KTH, Stockholmer, dad, amateur artist. Read more here: https://www.alexewerlof.com/who\",\"profile_set_up_at\":\"2022-07-14T22:27:32.130Z\",\"reader_installed_at\":\"2022-10-11T17:24:45.190Z\",\"publicationUsers\":[{\"id\":947579,\"user_id\":87732486,\"publication_id\":1002265,\"role\":\"admin\",\"public\":true,\"is_primary\":true,\"publication\":{\"id\":1002265,\"name\":\"Alex Ewerl\u00F6f Notes\",\"subdomain\":\"alexewerlof\",\"custom_domain\":\"blog.alexewerlof.com\",\"custom_domain_optional\":false,\"hero_text\":\"Technical Leadership, Reliability Engineering, Growth\",\"logo_url\":\"https://substack-post-media.s3.amazonaws.com/public/images/8c58cb07-9341-402b-bcdb-9fa767c2cdac_500x500.png\",\"author_id\":87732486,\"primary_user_id\":87732486,\"theme_var_background_pop\":\"#786CFF\",\"created_at\":\"2022-07-14T22:27:58.683Z\",\"email_from_name\":\"Alex Ewerl\u00F6f Notes\",\"copyright\":\"Alex Ewerl\u00F6f\",\"founding_plan_name\":\"VIP supporter\",\"community_enabled\":true,\"invite_only\":false,\"payments_state\":\"enabled\",\"language\":null,\"explicit\":false,\"homepage_type\":\"newspaper\",\"is_personal_mode\":false,\"logo_url_wide\":\"https://substack-post-media.s3.amazonaws.com/public/images/bd56dc7c-4b9f-43f2-99a1-ecc995284940_1200x256.png\"}},{\"id\":8561877,\"user_id\":87732486,\"publication_id\":8361889,\"role\":\"admin\",\"public\":true,\"is_primary\":false,\"publication\":{\"id\":8361889,\"name\":\"AI Reliability Engineering\",\"subdomain\":\"aireliabilityengineering\",\"custom_domain\":null,\"custom_domain_optional\":false,\"hero_text\":\"From the Author of Reliability Engineering Mindset but focused on AI systems and components.\",\"logo_url\":\"https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2713990-da82-481b-b579-01a7aaa5b85b_560x560.jpeg\",\"author_id\":87732486,\"primary_user_id\":null,\"theme_var_background_pop\":\"#FF6719\",\"created_at\":\"2026-03-18T10:58:12.396Z\",\"email_from_name\":null,\"copyright\":\"Alex Ewerl\u00F6f\",\"founding_plan_name\":null,\"community_enabled\":true,\"invite_only\":false,\"payments_state\":\"disabled\",\"language\":null,\"explicit\":false,\"homepage_type\":\"newspaper\",\"is_personal_mode\":false,\"logo_url_wide\":null}}],\"twitter_screen_name\":\"alexewerlof\",\"is_guest\":false,\"bestseller_tier\":null,\"status\":{\"bestsellerTier\":null,\"subscriberTier\":null,\"leaderboard\":null,\"vip\":false,\"badge\":null,\"subscriber\":null}}],\"reaction\":null,\"reaction_count\":10,\"comment_count\":4,\"child_comment_count\":1,\"audio_items\":[{\"post_id\":142662722,\"voice_id\":\"en-US-OnyxTurboMultilingualNeural\",\"audio_url\":null,\"type\":\"tts\",\"status\":\"paywalled\"}],\"is_geoblocked\":false,\"hidden\":true,\"hasCashtag\":false,\"section\":{\"id\":67723,\"created_at\":\"2023-05-31T19:57:24.859Z\",\"updated_at\":\"2024-03-22T13:16:12.203Z\",\"publication_id\":1002265,\"name\":\"Reliability Engineering\",\"description\":\"Concepts that help you with building reliable systems and architecture\",\"slug\":\"sre\",\"is_podcast\":false,\"is_live\":true,\"is_default_on\":true,\"sibling_rank\":1,\"port_status\":\"success\",\"logo_url\":null,\"hide_from_navbar\":false,\"email_from_name\":\"\",\"hide_posts_from_pub_listings\":false,\"email_banner_url\":null,\"cover_photo_url\":null,\"hide_intro_title\":false,\"hide_intro_subtitle\":false,\"ignore_publication_email_settings\":false,\"custom_config\":{},\"unifiedPodcastSettings\":null,\"showLinks\":[],\"podcastSettings\":null,\"pageTheme\":{\"id\":51609,\"publication_id\":1002265,\"section_id\":67723,\"page\":null,\"page_hero\":\"default\",\"page_posts\":\"grid\",\"show_podcast_links\":true,\"hero_alignment\":\"center\"},\"podcastPalette\":{\"DarkMuted\":{\"population\":72,\"rgb\":[73,153,137]},\"DarkVibrant\":{\"population\":6013,\"rgb\":[4,100,84]},\"LightMuted\":{\"population\":7,\"rgb\":[142,198,186]},\"LightVibrant\":{\"population\":3,\"rgb\":[166,214,206]},\"Muted\":{\"population\":6,\"rgb\":[92,164,156]},\"Vibrant\":{\"population\":5,\"rgb\":[76,164,146]}},\"spotify_podcast_settings\":null,\"unified_podcast_settings\":null}},\"comments\":[],\"canonicalUrl\":\"https://blog.alexewerlof.com/p/composite-slo\",\"inlineComments\":false,\"readerIsSearchCrawler\":false,\"ogUrl\":\"https://blog.alexewerlof.com/p/composite-slo\",\"bannedFromNotes\":false,\"themeVariables\":{\"color_theme_bg_pop\":\"#FFBC52\",\"background_pop\":\"#FFBC52\",\"color_theme_bg_web\":\"#001426\",\"cover_bg_color\":\"#001426\",\"cover_bg_color_secondary\":\"#0f2233\",\"background_pop_darken\":\"#ffb238\",\"print_on_pop\":\"#ffffff\",\"color_theme_bg_pop_darken\":\"#ffb238\",\"color_theme_print_on_pop\":\"#ffffff\",\"color_theme_bg_pop_20\":\"rgba(255, 188, 82, 0.2)\",\"color_theme_bg_pop_30\":\"rgba(255, 188, 82, 0.3)\",\"print_pop\":\"#ffbc52\",\"color_theme_accent\":\"#ffbc52\",\"cover_print_primary\":\"#ffffff\",\"cover_print_secondary\":\"#d9d9d9\",\"cover_print_tertiary\":\"#d9d9d9\",\"cover_border_color\":\"#ffffff\",\"font_family_headings_preset\":\"'SF Pro Display', -apple-system, system-ui, BlinkMacSystemFont, 'Inter', 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'\",\"font_weight_headings_preset\":900,\"font_family_body_preset\":\"Merriweather,sans-serif\",\"font_weight_body_preset\":400,\"font_preset_heading\":\"sans\",\"font_preset_body\":\"fancy_serif\",\"home_hero\":\"feature-media\",\"home_posts\":\"custom\",\"home_show_top_posts\":true,\"web_bg_color\":\"#001426\",\"background_contrast_1\":\"#0f2233\",\"background_contrast_2\":\"#223443\",\"background_contrast_3\":\"#485663\",\"background_contrast_4\":\"#6d7882\",\"background_contrast_5\":\"#aeb5ba\",\"color_theme_bg_contrast_1\":\"#0f2233\",\"color_theme_bg_contrast_2\":\"#223443\",\"color_theme_bg_contrast_3\":\"#485663\",\"color_theme_bg_contrast_4\":\"#6d7882\",\"color_theme_bg_contrast_5\":\"#aeb5ba\",\"color_theme_bg_elevated\":\"#0f2233\",\"color_theme_bg_elevated_secondary\":\"#223443\",\"color_theme_bg_elevated_tertiary\":\"#485663\",\"color_theme_detail\":\"#192b3c\",\"background_contrast_pop\":\"rgba(255, 188, 82, 0.4)\",\"color_theme_bg_contrast_pop\":\"rgba(255, 188, 82, 0.4)\",\"theme_bg_is_dark\":\"1\",\"print_on_web_bg_color\":\"hsl(208.4210526315789, 25.00000000000006%, 90.74509803921569%)\",\"print_secondary_on_web_bg_color\":\"#99a1a8\",\"footer_bg_color\":\"#000C17\",\"footer_bg_color_h\":\"208.69565217391306\",\"footer_bg_color_s\":\"100%\",\"footer_bg_color_l\":\"4.509803921568627%\",\"print_on_footer_bg_color\":\"hsl(208.69565217391306, 25.000000000000057%, 90.45098039215686%)\",\"print_secondary_on_footer_bg_color\":\"#999ea2\",\"footer_bg_contrast_1\":\"#0f1b25\",\"footer_bg_contrast_2\":\"#222d36\",\"footer_bg_contrast_3\":\"#485158\",\"footer_bg_contrast_4\":\"#6d737a\",\"footer_bg_elevated\":\"#0f1b25\",\"footer_bg_elevated_secondary\":\"#222d36\",\"footer_bg_elevated_tertiary\":\"#485158\",\"footer_detail_color\":\"#19242e\",\"background_pop_rgb\":\"255, 188, 82\",\"color_theme_bg_pop_rgb\":\"255, 188, 82\",\"color_theme_accent_rgb\":\"255, 188, 82\"},\"recentEpisodes\":null,\"trackFrontendVisit\":true,\"activeLiveStream\":null,\"freeTrialCoupon\":{\"id\":\"3cce95ff\",\"trial_period_days\":7},\"defaultCoupon\":null,\"isChatActive\":false,\"publicationPageAlert\":null,\"features\":{},\"browser\":{\"name\":\"Chrome\",\"version\":\"151.0.0.0\",\"major\":\"151\"},\"showCookieBanner\":false,\"disabledCookies\":[],\"dd_env\":\"prod\",\"dd_ti\":true}")</script>
|
||
<script nonce="nF8kJC9AKHtLEB8weHmwWA">window._analyticsConfig = JSON.parse("{\"properties\":{\"subdomain\":\"alexewerlof\",\"publication_id\":1002265,\"has_plans\":true,\"pub_community_enabled\":true,\"is_personal_publication\":false,\"section_name\":\"Reliability Engineering\",\"section_slug\":\"sre\",\"section_id\":67723,\"section_is_podcast\":false,\"is_subscribed\":false,\"is_free_subscribed\":false,\"is_author\":false,\"is_contributor\":false,\"is_admin\":false,\"is_founding\":false},\"adwordsAccountId\":\"AW-316245675\",\"adwordsEventSendTo\":\"Tf76CKqcyL4DEKuN5pYB\"}")</script>
|
||
|
||
|
||
|
||
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/lib-router.7371871e.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/55188.571db0c6.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/62357.a0731d37.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/53754.d196682b.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/33485.2686bb5d.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/2237.ae8857e4.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/37707.4614ce58.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/9351.41564edd.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/80821.b2140fcd.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/44292.f3dc2b43.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/70291.7aa24e85.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/17499.1820773d.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/57975.765aca5a.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/19714.2f1bdde5.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/48320.4e726ad5.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/93000.f03f24de.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/44014.f579d62b.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/43745.80c75c78.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/60892.92b9fc9c.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/40646.258e49f2.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/87906.d493457b.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/36479.ce61e623.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/17706.015b0f71.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/93977.f1207089.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/37606.b91ab2ef.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/94311.b93f6845.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/89356.66161d1e.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/21262.211a7337.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/47925.24a01d36.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/80220.03bd4c41.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/71505.3dc43e33.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/11100.5d148f2c.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/3663.86d95e8c.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/18725.a5a682c3.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/86118.ff1ec843.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/93519.7fe128ac.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/84828.c78aabc1.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/5075.d6e9f8ec.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/29231.a7af5911.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/56725.2b32bbb6.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/42336.f1c17ded.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/89879.1d0af2b9.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/70793.951c11cb.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/39522.58e078b0.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/53164.dfde36c8.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/74584.94c6b3f1.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/71199.a327e9f4.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/63266.8bb0d59c.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/47358.8f5c5991.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/4492.cb326b80.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/88089.680833b5.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/97348.df6a856d.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/52109.cf3bcc2c.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/56256.8a1bc5dd.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/77410.3f20fb36.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/25058.bdbc4e21.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/58483.3adddb8a.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/94881.0a97506f.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/27386.09a9082f.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/10174.7f0face7.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/92610.a4fc1daf.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/91214.cb10b4b8.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/11244.b723f409.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/99260.28b0ed6a.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/48445.7d5c5ba3.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/76768.9a2f2bae.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/41932.6c688f22.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/12114.979fb38e.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/48409.9732c6f9.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/26252.4f5ae3be.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/53871.2923c5c9.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/18494.588a06d1.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/99068.bd2e1fba.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/91850.79d3f415.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/49047.c7f428fb.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/16075.098bcbcf.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/28856.2eb51db5.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/95396.72d1d844.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/63175.bbf1c283.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/74628.2e8ed950.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/32552.889dd584.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/27313.c287f2d8.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/mainReactRouter.6c265246.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/91507.9b9761ae.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/54770.b40bf629.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/30054.07cd629b.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/78118.35b48b09.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/57051.f37fb930.js" charset="utf-8"></script>
|
||
|
||
<script defer type="module" src="https://substackcdn.com/bundle/static/js/78191.24075434.js" charset="utf-8"></script>
|
||
|
||
|
||
<script nonce="nF8kJC9AKHtLEB8weHmwWA" nomodule>
|
||
(function() {
|
||
var message = 'Your browser does not support modern JavaScript modules. Please upgrade your browser for the best experience.';
|
||
var warningDiv = document.createElement('div');
|
||
warningDiv.style.color = 'red';
|
||
warningDiv.style.padding = '10px';
|
||
warningDiv.style.margin = '10px 0';
|
||
warningDiv.style.border = '1px solid red';
|
||
warningDiv.style.backgroundColor = 'lightyellow';
|
||
warningDiv.innerText = message;
|
||
document.body.prepend(warningDiv);
|
||
})();
|
||
</script>
|
||
|
||
|
||
<!-- Datadog Analytics -->
|
||
<script nonce="nF8kJC9AKHtLEB8weHmwWA">
|
||
(function(h,o,u,n,d) {
|
||
h=h[d]=h[d]||{q:[],onReady:function(c){h.q.push(c)}}
|
||
d=o.createElement(u);d.async=1;d.src=n
|
||
n=o.getElementsByTagName(u)[0];n.parentNode.insertBefore(d,n)
|
||
})(window,document,'script','https://www.datadoghq-browser-agent.com/us1/v5/datadog-rum.js','DD_RUM')
|
||
window.DD_RUM.onReady(function() {
|
||
window.DD_RUM.init({
|
||
clientToken: 'puba71073f072643721169b68f352438710',
|
||
applicationId: '2e321b35-c76b-4073-8d04-cc9a10461793',
|
||
site: 'datadoghq.com',
|
||
service: 'web',
|
||
env: window._preloads.dd_env,
|
||
version: '8b4c00716b2bc0f7ca1fded553014f7e37b5b07a',
|
||
sessionSampleRate: 1,
|
||
sessionReplaySampleRate: 10,
|
||
trackUserInteractions: window._preloads.dd_ti,
|
||
trackResources: true,
|
||
trackLongTasks: true,
|
||
defaultPrivacyLevel: 'mask-user-input',
|
||
allowedTracingUrls: [/https?:\/\/(.+\/.)?substack(cdn)?\.com/]
|
||
});
|
||
})
|
||
</script>
|
||
<!-- End Datadog Analytics -->
|
||
|
||
<!-- Cloudflare Web Analytics -->
|
||
<script defer src="https://static.cloudflareinsights.com/beacon.min.js" data-cf-beacon='{"token": "216309cffb464db4b0e02daf0b8e8060"}'></script>
|
||
<!-- End Cloudflare Web Analytics -->
|
||
|
||
|
||
<!-- Fallback tracking pixels -->
|
||
|
||
|
||
|
||
|
||
<noscript>
|
||
<style>
|
||
#nojs-banner {
|
||
position: fixed;
|
||
bottom: 0;
|
||
left: 0;
|
||
padding: 16px 16px 16px 32px;
|
||
width: 100%;
|
||
box-sizing: border-box;
|
||
background: red;
|
||
color: white;
|
||
font-family: -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||
font-size: 13px;
|
||
line-height: 13px;
|
||
}
|
||
#nojs-banner a {
|
||
color: inherit;
|
||
text-decoration: underline;
|
||
}
|
||
</style>
|
||
|
||
<div id="nojs-banner">
|
||
This site requires JavaScript to run correctly. Please <a href="https://enable-javascript.com/" target="_blank">turn on JavaScript</a> or unblock scripts
|
||
</div>
|
||
</noscript>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" nonce="nF8kJC9AKHtLEB8weHmwWA" data-cf-beacon='{"version":"2024.11.0","token":"68cfe66b5c4749e2ba64d4d9640c04c0","spa":2}' crossorigin="anonymous"></script>
|
||
</body>
|
||
</html>
|