Files
nexus/sreweekly/articles/387/02-time-based-vs-event-based-slis.html
2026-09-12 17:23:01 +08:00

490 lines
210 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="en" 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">Time based vs Event based SLIs - 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="Time based vs Event based SLIs"/><meta data-rh="true" name="twitter:title" content="Time based vs Event based SLIs"/><meta data-rh="true" name="description" content="One of the most important decisions about SLI"/><meta data-rh="true" property="og:description" content="One of the most important decisions about SLI"/><meta data-rh="true" name="twitter:description" content="One of the most important decisions about SLI"/><meta data-rh="true" property="og:image" content="https://substackcdn.com/image/fetch/$s_!_h6V!,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%2Fd3be84d4-5a4b-4e52-8e7e-77744df9eaa7_1093x705.png"/><meta data-rh="true" name="twitter:image" content="https://substackcdn.com/image/fetch/$s_!d4AX!,f_auto,q_auto:best,fl_progressive:steep/https%3A%2F%2Falexewerlof.substack.com%2Fapi%2Fv1%2Fpost_preview%2F135808888%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-07-14T20:54:25.023Z"/>
<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/time-based-vs-event-based" />
<link rel="canonical" href="https://blog.alexewerlof.com/p/time-based-vs-event-based" />
<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%2Ftime-based-vs-event-based&amp;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="rmwAJVfOPsTpYGrEad5uRQ" type="application/ld+json">{"@context":"https://schema.org","@type":"NewsArticle","url":"https://blog.alexewerlof.com/p/time-based-vs-event-based","mainEntityOfPage":"https://blog.alexewerlof.com/p/time-based-vs-event-based","headline":"Time based vs Event based SLIs","description":"One of the most important decisions about SLI","image":[{"@type":"ImageObject","url":"https://substackcdn.com/image/fetch/$s_!_h6V!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3be84d4-5a4b-4e52-8e7e-77744df9eaa7_1093x705.png"}],"datePublished":"2023-08-07T21:31:48+00:00","dateModified":"2023-08-07T21:31:48+00:00","isAccessibleForFree":true,"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":4},{"@type":"InteractionCounter","interactionType":"https://schema.org/ShareAction","userInteractionCount":0},{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":2}]}</script><script nonce="rmwAJVfOPsTpYGrEad5uRQ" 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":"Time based vs Event based SLIs","item":"https://blog.alexewerlof.com/p/time-based-vs-event-based"}]}</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&amp;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">Time based vs Event based SLIs</h1><h3 dir="auto" class="subtitle subtitle-HEEcLo">One of the most important decisions about SLI</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="2023-08-07T21:31:48.931Z" title="2023-08-07T21:31:48.931Z">Aug 07, 2023</time></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 (4)" 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">4</div></button></div><button tabindex="0" type="button" aria-label="View comments (2)" data-href="https://blog.alexewerlof.com/p/time-based-vs-event-based/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">2</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 no-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></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 class="visibility-check"></div><div><div class="dt-post-body"><div class="available-content"><div dir="auto" class="body markup"><p><a href="https://blog.alexewerlof.com/p/sli">Service level indicator (SLI)</a><span> is defined as the percentage of good divided by valid:</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;">\(SLI = \frac {\text{good}} {\text{valid}} \times 100\)</span></div></div><p>There are two types of Service Level Indicators based on the definition of what good looks like:</p><ul><li><p><strong>Time based:</strong><span> measures good time (uptime)</span></p></li><li><p><strong>Event based:</strong><span> measure good events (failures)</span></p></li></ul><p>This choice has huge implication on how you do error budgeting.</p><p>This article talks about these two types of SLI with some examples and when to use which.</p><h1 class="header-anchor-post">Time Based<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="§time-based" class="pencraft pc-reset header-anchor offset-top"></div><button tabindex="0" type="button" aria-label="Link" data-href="https://blog.alexewerlof.com/i/135808888/time-based" 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>Time-based service level indicators measure the percentage of time that the system was behaving good.</p><p>The focus is on the time period where the system was behaving correctly.</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;">\(SLI = \frac {\text{good time}} {\text{valid time}} \times 100\)</span></div></div><p>Although the definition of SLI allows being more specific, usually the valid time is the entire measurement window. In other words:</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;">\(SLI = \frac {\text{good time}} {\text{entire window}} \times 100\)</span></div></div><h3 class="header-anchor-post">Time slice<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="§time-slice" class="pencraft pc-reset header-anchor offset-top"></div><button tabindex="0" type="button" aria-label="Link" data-href="https://blog.alexewerlof.com/i/135808888/time-slice" 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></h3><p><span>Although, it is possible to calculate the good time down to any precision, Time-Based SLIs often count the number of good </span><em>time slices</em><span> (e.g. number of good minutes in a month). That way the formula looks like this:</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;">\(SLI = \frac {\text{count(good time slice)}} {\text{number of time slices in the window}} \times 100\)</span></div></div><p>The length of the time slice defines the granularity of the measurement.</p><p>If there are multiple data points in a given time slice, they need to be aggregated to calculate the good/bad status of the time slice. There are many aggregation methods:</p><ul><li><p><strong>Sampling:</strong><span> just take the data point in the selected time slice</span></p><ul><li><p><strong>First value:</strong><span> take the first data point</span></p></li><li><p><strong>Last value:</strong><span> take the last data point</span></p></li><li><p><strong>Random value:</strong><span> take a random data point as a representative of the whole time slice</span></p></li></ul></li><li><p><strong>Average (mean):</strong><span> calculate the average of all data points in a given time slice</span></p></li><li><p><strong>Min:</strong><span> take the data point with the smallest value in a time slice</span></p></li><li><p><strong>Max:</strong><span> take the data point with the largest value in a time slice</span></p></li><li><p><strong>Range:</strong><span> calculate Max - Min</span></p></li><li><p><strong>Mode:</strong><span> find the most frequent value</span></p></li><li><p><strong><a href="https://blog.alexewerlof.com/p/percentile">Percentile</a><span>:</span></strong><span> sort the data points in the time slice based on their values values, then pick the data point closer to the P% of the length of the data set</span></p><ul><li><p><strong>P99:</strong><span> select the data point at the 99% index (e.g. if there are 612 data points, P99 is the data at position 605 in the sorted data set)</span></p></li><li><p><strong>P50 (Median):</strong><span> select the data point at the 50% index. This means 50% of the data points are larger or equal than this data point and 50% are lower or equal to this data point.</span></p></li><li><p>...</p></li></ul></li><li><p><strong>Count:</strong><span> count the number of data points in a given time slice</span></p></li><li><p><strong>Sum: </strong><span>add the value of all data points in a given time slice</span></p></li><li><p><strong>Rate:</strong><span> calculate the ratio of the number of data points that match a criteria from all the data points in a given time slice</span></p></li><li><p><strong><a href="https://www.youtube.com/watch?v=esskJJF8pCc">Stddev</a><span>:</span></strong><span> The standard deviation is a measure of how the data is scattered around the </span><em>mean (average)</em><span>. It has the same unit as the data point value.</span></p></li><li><p><strong><a href="https://www.youtube.com/watch?v=5wJUUgnMGWA">Stdvar</a><span>:</span></strong><span> The standard variance is the squared average diff from the </span><em>mean (average)</em><span>. The unit is the square of the data point value unit.</span></p></li><li><p><strong>Topk or Bottomk:</strong><span> select the top (or bottom) data points in a data set that is sorted in ascending order.</span></p></li></ul><p><span>Note: some platforms call this functionality </span><em>rollup</em><span> (e.g. </span><a href="https://docs.datadoghq.com/dashboards/functions/rollup/">Datadog</a><span>) while others call it aggregation (e.g. </span><a href="https://grafana.com/docs/grafana-cloud/cost-management-and-billing/reduce-costs/metrics-costs/control-metrics-usage-via-adaptive-metrics/define-metrics-aggregation-rules/#supported-aggregation-types">Grafana</a><span> or </span><a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/sql-functions-aggs.html">Elastic</a><span>).</span></p><h3 class="header-anchor-post">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="§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/135808888/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></h3><p><span>Suppose we have a database and decided to use the </span><em>query response latency</em><span> as SLI with a time slice of 1 minute. If the P75 percentile of the data response latencies in a minute is above 1000ms (threshold of good), we consider that entire minute a failed time slice.</span></p><p>This is an example of our data points:</p><div class="captioned-image-container"><figure><a target="_blank" href="https://substackcdn.com/image/fetch/$s_!_h6V!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3be84d4-5a4b-4e52-8e7e-77744df9eaa7_1093x705.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_!_h6V!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3be84d4-5a4b-4e52-8e7e-77744df9eaa7_1093x705.png 424w, https://substackcdn.com/image/fetch/$s_!_h6V!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3be84d4-5a4b-4e52-8e7e-77744df9eaa7_1093x705.png 848w, https://substackcdn.com/image/fetch/$s_!_h6V!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3be84d4-5a4b-4e52-8e7e-77744df9eaa7_1093x705.png 1272w, https://substackcdn.com/image/fetch/$s_!_h6V!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3be84d4-5a4b-4e52-8e7e-77744df9eaa7_1093x705.png 1456w" sizes="100vw"/><img src="https://substackcdn.com/image/fetch/$s_!_h6V!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3be84d4-5a4b-4e52-8e7e-77744df9eaa7_1093x705.png" width="1093" height="705" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d3be84d4-5a4b-4e52-8e7e-77744df9eaa7_1093x705.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:705,&quot;width&quot;:1093,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:64375,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" alt srcset="https://substackcdn.com/image/fetch/$s_!_h6V!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3be84d4-5a4b-4e52-8e7e-77744df9eaa7_1093x705.png 424w, https://substackcdn.com/image/fetch/$s_!_h6V!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3be84d4-5a4b-4e52-8e7e-77744df9eaa7_1093x705.png 848w, https://substackcdn.com/image/fetch/$s_!_h6V!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3be84d4-5a4b-4e52-8e7e-77744df9eaa7_1093x705.png 1272w, https://substackcdn.com/image/fetch/$s_!_h6V!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3be84d4-5a4b-4e52-8e7e-77744df9eaa7_1093x705.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><h3 class="header-anchor-post">Pros<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="§pros" class="pencraft pc-reset header-anchor offset-top"></div><button tabindex="0" type="button" aria-label="Link" data-href="https://blog.alexewerlof.com/i/135808888/pros" 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></h3><ul><li><p>Time-based SLI is easier to measure</p></li><li><p>Uptime is a bit more intuitive to understand</p></li><li><p>At any given point in time, it’s easy to calculate the remaining error budget (e.g. How much downtime is remaining for this month?)</p></li><li><p>Time-based SLIs are not sensitive to the amount of load (number of data points in a time slice is aggregated anyway). This means a time-based SLI is a good choice for systems that don’t get too much traffic. On the flip side, time-based SLIs are more forgiving to failures due to a spike in load (as far as the SLI is concerned a minute failed during the night is as significant as a minute failed during peak hours). This property may not be desired.</p></li><li><p><span>Some SLIs are time-based by nature. For example, </span><a href="https://blog.alexewerlof.com/p/percentile">percentiles</a><span> are used to focus the optimization on outliers. Percentile is calculated for a range of values over time (e.g. 5 minutes), which fits perfectly into the concept of time slices. You can also calculate the percentile over the entire SLO window (e.g. P99 of all response latencies in the past 30 days) but this is not the time-based SLI we are talking about. It’s event-based as we’ll get to.</span></p></li><li><p><span>It is easy to tell the current status based on the recent data. That is because the status of each time slice is calculated separately. You don’t need to aggregate the data through the entire window in order to calculate the current </span><a href="https://blog.alexewerlof.com/p/sls">SLS</a><span> (service level status).</span></p></li></ul><h3 class="header-anchor-post">Cons<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="§cons" class="pencraft pc-reset header-anchor offset-top"></div><button tabindex="0" type="button" aria-label="Link" data-href="https://blog.alexewerlof.com/i/135808888/cons" 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></h3><ul><li><p><span>Unless the system receives a uniform load (i.e. ~200 req/sec for the entire month), </span><em>time</em><span> and </span><em>impact</em><span> may not be correlated. For example, if the system was down for 30 minutes due to heavy demand right after launching a new product, this disruption is considered as serious as 30 minutes in the middle of the night when most users don’t use the system.</span></p></li><li><p><span>A few bad events can easily hide in an aggregation period and go under the radar. For example, if the average latency in a minute is in the “good” range, there can be requests in the same aggregation period which their latency in not in the “good” range. For these cases it is better to use </span><a href="https://blog.alexewerlof.com/p/percentile">percentile</a><span>.</span></p></li><li><p>The time-based SLIs usually miss the notion of working hours and assume a global 24/7 service. This doesn't make sense for some products. For example, if a product is supposed to be used only during working hours in a certain time zone, it doesn’t make too much sense to have on-call during night and weekends. As we’ll see in an upcoming article, this is not a show-stopper because the alert notification can be decoupled from the failure detection. In other words, the system can be down outside office hours and the alert can only trigger during the office hours.</p></li><li><p>Excluding planned maintenance windows from time-based SLIs can be complicated.</p></li><li><p>In 🔴alerting on SLOs we’ll discuss how the speed at which we consume our error budget (burn rate) will be used to trigger an alert. Time-based alerts will have to look back at the predefined time window (based on the burn rate) to detect an incident. This makes the alerts too slow compared to event-based SLIs which trigger as soon as a good/valid ratio drops below the SLO.</p></li></ul><div class="subscription-widget-wrap"><div class="subscription-widget show-subscribe"><div class="preamble"><p>I break down more complex topics about service levels in the upcoming articles</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="135808888"/><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">Event Based SLI<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="§event-based-sli" class="pencraft pc-reset header-anchor offset-top"></div><button tabindex="0" type="button" aria-label="Link" data-href="https://blog.alexewerlof.com/i/135808888/event-based-sli" 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>The focus is on the number of good events divided by the total number of events.</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;">\(SLI = \frac {\text{good events}} {\text{valid events}} \times 100\)</span></div></div><p>In the same example as before:</p><h3 class="header-anchor-post">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="§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/135808888/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></h3><p>Let’s reuse the previous example. Suppose that for a database we have decided to use the query response time as SLI. We define a threshold (for example one second) and any individual query that takes longer than one second to response is considered bad.</p><p>The diagram below shows the total number of events over time. It changes as the demand for our system fluctuates.</p><div class="captioned-image-container"><figure><a target="_blank" href="https://substackcdn.com/image/fetch/$s_!mOQ5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F711ee3e1-ef14-4237-913a-2f84a7ddfd55_1094x876.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_!mOQ5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F711ee3e1-ef14-4237-913a-2f84a7ddfd55_1094x876.png 424w, https://substackcdn.com/image/fetch/$s_!mOQ5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F711ee3e1-ef14-4237-913a-2f84a7ddfd55_1094x876.png 848w, https://substackcdn.com/image/fetch/$s_!mOQ5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F711ee3e1-ef14-4237-913a-2f84a7ddfd55_1094x876.png 1272w, https://substackcdn.com/image/fetch/$s_!mOQ5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F711ee3e1-ef14-4237-913a-2f84a7ddfd55_1094x876.png 1456w" sizes="100vw"/><img src="https://substackcdn.com/image/fetch/$s_!mOQ5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F711ee3e1-ef14-4237-913a-2f84a7ddfd55_1094x876.png" width="1094" height="876" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/711ee3e1-ef14-4237-913a-2f84a7ddfd55_1094x876.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:876,&quot;width&quot;:1094,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:88506,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" alt srcset="https://substackcdn.com/image/fetch/$s_!mOQ5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F711ee3e1-ef14-4237-913a-2f84a7ddfd55_1094x876.png 424w, https://substackcdn.com/image/fetch/$s_!mOQ5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F711ee3e1-ef14-4237-913a-2f84a7ddfd55_1094x876.png 848w, https://substackcdn.com/image/fetch/$s_!mOQ5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F711ee3e1-ef14-4237-913a-2f84a7ddfd55_1094x876.png 1272w, https://substackcdn.com/image/fetch/$s_!mOQ5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F711ee3e1-ef14-4237-913a-2f84a7ddfd55_1094x876.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>Event based SLIs are interested in the percentage of good events from valid events.</p><h3 class="header-anchor-post">Pros<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="§pros" class="pencraft pc-reset header-anchor offset-top"></div><button tabindex="0" type="button" aria-label="Link" data-href="https://blog.alexewerlof.com/i/135808888/pros" 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></h3><ul><li><p>They automatically adjust to the amount of load</p></li><li><p>Better map to impact. If 10x more requests got error in the same amount of time, this affects the SLI and error budget 10x.</p></li><li><p>In 🔴alerting on SLOs we’ll discuss how the speed at which we consume our error budget (burn rate) will be used to trigger an alert. Event-based SLIs will adjust automatically if the error budget is consumed faster than predicted. For example, if the error budget is being consumed at the rate of 1000x, the event-based alert will quickly pick it up.</p></li></ul><h3 class="header-anchor-post">Cons<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="§cons" class="pencraft pc-reset header-anchor offset-top"></div><button tabindex="0" type="button" aria-label="Link" data-href="https://blog.alexewerlof.com/i/135808888/cons" 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></h3><ul><li><p>Unlike time-based SLI, it is hard to tell the status based on recent data (there’s no time slice). We need the data for the entire evaluation window.</p></li><li><p>It is harder to reason about the error budgets for event based SLIs.</p></li><li><p>It is more punishing the team when a high number of bad events happen in a short time and can practically burn the entire error budget. One could argue that that these spikes in load are exactly why we’re measuring service levels in the first place.</p></li></ul><h1 class="header-anchor-post">Conclusion<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="§conclusion" class="pencraft pc-reset header-anchor offset-top"></div><button tabindex="0" type="button" aria-label="Link" data-href="https://blog.alexewerlof.com/i/135808888/conclusion" 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>Which one you pick boils down to a few question:</p><ul><li><p>Is the reliability perceived as good time or good events?</p></li><li><p>Does the service consumption pattern vary a lot during time? For example does the load drop significantly during the night or weekends? Do you get massive spikes in high season? This means different time slices have different impact and an event-based SLI suits better.</p></li><li><p>Time-based is less punishing for the team when incidents happen during high traffic.</p></li><li><p>How should the error budget be formulated?</p><ul><li><p>Time-based SLIs consume the error budget based on the duration of bad time</p></li><li><p>Event based SLIs consume the error budget based on the proportion of bad events1.</p></li></ul></li><li><p>Do you want easy math? Time-based has easier in calculations.</p></li><li><p>Do you want to know exactly how much error budget is remaining at any given time? Event-based SLIs don’t give an accurate estimate of the remaining error budget if you can’t predict the future load.</p></li><li><p>Do you want the SLI to map to the impact? Event-based is more accurate and maps better to the impact. It considers the impact of low/high load and spikes in the load.</p></li></ul><div data-attrs="{&quot;url&quot;:&quot;https://blog.alexewerlof.com/p/time-based-vs-event-based?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM" class="captioned-button-wrap"><div class="preamble"><p class="cta-caption">If you found this article insightful, why not share the inspiration within your circles or on social media? 🙂</p></div><p data-attrs="{&quot;url&quot;:&quot;https://blog.alexewerlof.com/p/time-based-vs-event-based?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton" class="button-wrapper"><a href="https://blog.alexewerlof.com/p/time-based-vs-event-based?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share" class="button primary"><span>Share</span></a></p></div><h1 class="header-anchor-post">References<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="§references" class="pencraft pc-reset header-anchor offset-top"></div><button tabindex="0" type="button" aria-label="Link" data-href="https://blog.alexewerlof.com/i/135808888/references" 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><ul><li><p><a href="https://cloud.google.com/stackdriver/docs/solutions/slo-monitoring#defn-sli">Request-based and Window-based SLIs</a><span> (Google Cloud SLO Monitoring)</span></p></li><li><p><a href="https://www.ibm.com/docs/en/instana-observability/current?topic=instana-service-level-objectives-slo#sli-types">SLI Types</a><span> (IBM Instana Observability)</span></p></li><li><p><a href="https://cloud.google.com/blog/products/devops-sre/sre-fundamentals-slis-slas-and-slos">SRE fundamentals: SLIs, SLAs and SLOs</a><span> (google cloud blog)</span></p></li><li><p><a href="https://uptime.is/">Uptime.is</a><span>: a simple uptime calculator</span></p></li></ul></div></div><div class="visibility-check"></div></div><div class="post-footer"><div class="pencraft pc-display-flex pc-gap-16 pc-paddingTop-16 pc-paddingBottom-16 pc-justifyContent-space-between pc-alignItems-center pc-reset flex-grow-rzmknG border-top-detail-themed-k9TZAY border-bottom-detail-themed-Ua9186 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 (4)" 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">4</div></button></div><button tabindex="0" type="button" aria-label="View comments (2)" data-href="https://blog.alexewerlof.com/p/time-based-vs-event-based/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">2</div></button><button tabindex="0" type="button" id="radix-P0-56" aria-haspopup="menu" aria-expanded="false" data-state="closed" class="pencraft pc-reset pencraft post-ufi-button style-button no-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></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></article></div></div></div><div class="pencraft pc-display-contents pc-reset pubTheme-yiXxQA"><div class="visibility-check"></div><div id="discussion" class="pencraft pc-display-flex pc-flexDirection-column pc-gap-16 pc-paddingTop-32 pc-paddingBottom-32 pc-reset"><div class="pencraft pc-display-flex pc-flexDirection-column pc-gap-32 pc-reset container"><h4 class="pencraft pc-reset line-height-24-jnGwiv font-display-nhmvtD size-20-P_cSRT weight-bold-DmI9lw reset-IxiVJZ">Discussion about this post</h4><div class="pencraft pc-alignSelf-flex-start pc-reset"><div class="pencraft pc-display-flex pc-flexDirection-column pc-position-relative pc-minWidth-0 pc-reset bg-primary-zk6FDl outline-detail-vcQLyr pc-borderRadius-sm overflow-hidden-WdpwT6"><div dir="ltr" data-orientation="horizontal" class="pencraft pc-display-flex pc-flexDirection-column pc-reset flex-grow-rzmknG"><div style="outline:none;" tabindex="-1" aria-label="Select discussion type" role="tablist" aria-orientation="horizontal" data-orientation="horizontal" class="pencraft pc-display-flex pc-gap-4 pc-padding-4 pc-position-relative pc-reset cursor-default-flE2S1 pc-borderRadius-sm overflow-auto-7WTsTi scrollBar-hidden-HcAIpI"><button tabindex="-1" type="button" role="tab" aria-selected="true" aria-controls="radix-P0-70-content-comments" data-state="active" id="radix-P0-70-trigger-comments" data-orientation="horizontal" data-radix-collection-item class="pencraft pc-reset flex-auto-j3S2WA pencraft segment-j4TeZ4 buttonBase-GK1x3M buttonText-X0uSmG buttonStyle-r7yGCK priority_quaternary-kpMibu size_sm-G3LciD">Comments</button><button tabindex="-1" type="button" role="tab" aria-selected="false" aria-controls="radix-P0-70-content-restacks" data-state="inactive" id="radix-P0-70-trigger-restacks" data-orientation="horizontal" data-radix-collection-item class="pencraft pc-reset flex-auto-j3S2WA pencraft segment-j4TeZ4 buttonBase-GK1x3M buttonText-X0uSmG buttonStyle-r7yGCK priority_quaternary-kpMibu size_sm-G3LciD">Restacks</button><div class="pencraft pc-position-absolute pc-height-32 pc-reset bg-secondary-UUD3_J pc-borderRadius-xs sizing-border-box-DggLA4 highlight-U002IP"></div></div></div><div class="pencraft pc-display-flex pc-alignItems-center pc-reset arrowButtonContainer-O4uSiH arrowButtonOverlaidContainer-t10AyH left-Tg8vqp"><div class="overlay-zrMCxn primary-lv_sOW"></div></div><div class="pencraft pc-display-flex pc-alignItems-center pc-reset arrowButtonContainer-O4uSiH arrowButtonOverlaidContainer-t10AyH right-i3oWGi"><div class="overlay-zrMCxn primary-lv_sOW"></div></div></div></div></div><div id="substack-comments" class="single-post-section comments-section"><div class="container"><div class="visibility-check"></div><div data-test-id="comment-input" class="pencraft pc-display-flex pc-reset flex-grow-rzmknG"><form class="comment-input-form form-CkZ7Kt"><div style="--scale:32px;" class="pencraft pc-display-flex pc-width-32 pc-height-32 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"><div style="--scale:32px;" title="User" class="pencraft pc-display-flex pc-width-32 pc-height-32 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_!TnFC!,w_32,h_32,c_fill,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack.com%2Fimg%2Favatars%2Fdefault-light.png 1x, https://substackcdn.com/image/fetch/$s_!TnFC!,w_64,h_64,c_fill,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack.com%2Fimg%2Favatars%2Fdefault-light.png 2x, https://substackcdn.com/image/fetch/$s_!TnFC!,w_96,h_96,c_fill,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack.com%2Fimg%2Favatars%2Fdefault-light.png 3x"/><img src="https://substackcdn.com/image/fetch/$s_!TnFC!,w_32,h_32,c_fill,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack.com%2Fimg%2Favatars%2Fdefault-light.png" alt="User's avatar" srcset="https://substackcdn.com/image/fetch/$s_!TnFC!,w_32,h_32,c_fill,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack.com%2Fimg%2Favatars%2Fdefault-light.png 1x, https://substackcdn.com/image/fetch/$s_!TnFC!,w_64,h_64,c_fill,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack.com%2Fimg%2Favatars%2Fdefault-light.png 2x, https://substackcdn.com/image/fetch/$s_!TnFC!,w_96,h_96,c_fill,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack.com%2Fimg%2Favatars%2Fdefault-light.png 3x" width="32" height="32" draggable="false" class="img-OACg1c object-fit-cover-u4ReeV pencraft pc-reset"/></picture></div></div><div class="pencraft pc-display-flex pc-flexDirection-column pc-gap-8 pc-reset flex-grow-rzmknG"><div class="pencraft pc-display-flex pc-flexDirection-column pc-boxShadow-xs pc-reset bg-primary-zk6FDl flex-grow-rzmknG border-detail-EGrm7T pc-borderRadius-sm"><textarea name="body" placeholder="Write a comment..." aria-label="Write a comment..." rows="4" class="pencraft input-qHk4bN autogrowing-_ipn9Y textarea-GbEjRX inputText-pV_yWb unstyled-IJLUJU"></textarea></div><div data-state="closed" class="pencraft pc-display-flex pc-flexDirection-column pc-reset overflow-hidden-WdpwT6"></div></div></form></div><div class="comment-list post-page-root-comment-list"><div class="comment-list-items"><div class="comment"><div id="comment-157283840" class="comment-anchor"></div><div id="comment-157283840-reply" class="comment-anchor"></div><div role="article" aria-label="Comment by Zeeman" class="pencraft pc-display-flex pc-gap-12 pc-paddingBottom-12 pc-reset comment-content"><div class="pencraft pc-display-flex pc-flexDirection-column pc-reset"><a href="https://substack.com/profile/2365795-zeeman?utm_source=comment" aria-label="View Zeeman's profile" class="pencraft pc-display-contents pc-reset"><div style="--scale:32px;" tabindex="0" class="pencraft pc-display-flex pc-width-32 pc-height-32 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"><div style="--scale:32px;" title="Zeeman" class="pencraft pc-display-flex pc-width-32 pc-height-32 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_!EUWq!,w_32,h_32,c_fill,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01dda90d-6d22-4964-85ac-b2dffea58cdc_144x144.png 1x, https://substackcdn.com/image/fetch/$s_!EUWq!,w_64,h_64,c_fill,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01dda90d-6d22-4964-85ac-b2dffea58cdc_144x144.png 2x, https://substackcdn.com/image/fetch/$s_!EUWq!,w_96,h_96,c_fill,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01dda90d-6d22-4964-85ac-b2dffea58cdc_144x144.png 3x"/><img src="https://substackcdn.com/image/fetch/$s_!EUWq!,w_32,h_32,c_fill,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01dda90d-6d22-4964-85ac-b2dffea58cdc_144x144.png" alt="Zeeman's avatar" srcset="https://substackcdn.com/image/fetch/$s_!EUWq!,w_32,h_32,c_fill,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01dda90d-6d22-4964-85ac-b2dffea58cdc_144x144.png 1x, https://substackcdn.com/image/fetch/$s_!EUWq!,w_64,h_64,c_fill,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01dda90d-6d22-4964-85ac-b2dffea58cdc_144x144.png 2x, https://substackcdn.com/image/fetch/$s_!EUWq!,w_96,h_96,c_fill,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01dda90d-6d22-4964-85ac-b2dffea58cdc_144x144.png 3x" width="32" height="32" draggable="false" class="img-OACg1c object-fit-cover-u4ReeV pencraft pc-reset"/></picture></div></div></a></div><div class="pencraft pc-display-flex pc-flexDirection-column pc-reset flex-grow-rzmknG"><div class="pencraft pc-display-flex pc-reset"><div class="pencraft pc-display-flex pc-flexDirection-column pc-gap-4 pc-reset"><div class="pencraft pc-display-flex pc-minWidth-0 pc-gap-8 pc-alignItems-center pc-justifyContent-space-between pc-reset line-height-20-t4M0El font-text-qe4AeH size-15-Psle70 weight-regular-mUq6Gb"><div class="pencraft pc-display-flex pc-minWidth-0 pc-gap-8 pc-alignItems-center pc-reset flex-grow-rzmknG"><div class="pencraft pc-display-flex pc-gap-6 pc-reset color-primary-zABazT line-height-20-t4M0El font-text-qe4AeH size-13-hZTUKr weight-regular-mUq6Gb reset-IxiVJZ comment-author-name"><div class="pencraft pc-display-flex pc-gap-4 pc-minWidth-0 pc-alignItems-center pc-reset"><span class="pencraft pc-reset ellipsis-Jb8om8 line-height-20-t4M0El font-text-qe4AeH size-15-Psle70 weight-medium-fw81nC reset-IxiVJZ"><span style="min-width:0;" data-state="closed"><span class="pencraft pc-reset decoration-hover-underline-ClDVRM reset-IxiVJZ"><a href="https://substack.com/profile/2365795-zeeman?utm_source=substack-feed-item" showBack data-native="true" class="link-LIBpto">Zeeman</a></span></span></span><div class="pencraft pc-display-flex pc-alignItems-center pc-reset flex-auto-j3S2WA"><div data-testid="user-badge" class="pencraft pc-reset cursor-pointer-LYORKw inlineContainer-FbhgTi"><div class="pencraft pc-display-flex pc-reset"><svg width="12" height="12" viewBox="0 0 130 130" fill="none" xmlns="http://www.w3.org/2000/svg" class="subscriberBadge-Lpjxjx isSubscriber-JdH2KX"><circle cx="65" cy="65" r="65" fill="var(--color-bg)"></circle><path d="M67.5321 67.2143C62.0162 68.2532 54.1338 68.2193 47.1778 64.9205M62.2892 67.2143C61.2169 61.5215 61.2875 53.3079 64.9106 46.1935M62.2892 62.5387C67.8295 61.4951 75.7573 61.534 82.7358 64.8765M67.6643 62.5635C68.7424 68.2874 68.6652 76.5598 64.9832 83.7008M64.9106 46.1935C66.0867 43.8841 67.6371 41.6906 69.6443 39.7368C77.6175 31.5462 89.5811 30.9614 97.1218 32.3817C98.5421 39.9224 97.9573 51.886 89.7667 59.8592C87.6515 62.032 85.2556 63.6696 82.7358 64.8765M64.9106 46.1935C63.7346 43.8841 62.1841 41.6906 60.177 39.7368C52.2038 31.5462 40.2401 30.9614 32.6995 32.3817C31.2791 39.9224 31.8639 51.886 40.0546 59.8592C42.1955 62.0585 44.6242 63.7095 47.1778 64.9205M82.7358 64.8765C85.2556 66.0834 87.6515 67.7209 89.7667 69.8938C97.9573 77.8669 98.5421 89.8306 97.1218 97.3712C89.5811 98.7916 77.6175 98.2068 69.6443 90.0162C67.6781 88.1022 66.1502 85.9583 64.9832 83.7008M64.9832 83.7008C63.8145 85.9674 62.2826 88.12 60.3092 90.041C52.3361 98.2316 40.3724 98.8164 32.8317 97.3961C31.4114 89.8554 31.9962 77.8918 40.1868 69.9186C42.2908 67.7572 44.6726 66.1255 47.1778 64.9205" stroke="var(--color-fg)" stroke-width="8.125" stroke-linejoin="round"></path></svg></div></div></div></div></div><a data-native="true" href="https://blog.alexewerlof.com/p/time-based-vs-event-based/comment/157283840" rel="nofollow" title="Sep 18, 2025, 12:59 PM" class="pencraft pc-reset color-secondary-ls1g8s decoration-hover-underline-ClDVRM reset-IxiVJZ"><span class="pencraft pc-reset color-secondary-ls1g8s line-height-20-t4M0El font-text-qe4AeH size-13-hZTUKr weight-regular-mUq6Gb nowrap-QngyoB reset-IxiVJZ">Sep 18, 2025</span></a></div></div><div class="pencraft pc-display-flex pc-gap-4 pc-reset"><button tabindex="-1" type="button" class="pencraft pc-display-flex pc-gap-4 pc-height-20 pc-paddingLeft-6 pc-paddingRight-6 pc-paddingTop-2 pc-paddingBottom-2 pc-alignItems-center pc-reset font-text-qe4AeH size-11-NuY2Zx weight-medium-fw81nC pencraft tag-XbOVLt theme_accent-Y2sqZY priority_secondary-outline-RpooJS pencraft pc-display-flex pc-height-20 pc-paddingLeft-6 pc-paddingRight-6 pc-paddingTop-2 pc-paddingBottom-2 pc-gap-4 pc-alignItems-center pc-reset cursor-inherit-LxLBJ6 pc-borderRadius-xs font-text-qe4AeH size-11-NuY2Zx weight-medium-fw81nC"><div class="pencraft pc-display-flex pc-alignItems-center pc-reset leading-mI5Ihl fillIcon-dQ0mii"><svg aria-hidden="true" style="height:14px;width:14px;" width="14" height="14" viewBox="0 0 20 20" fill="var(--color-fg-primary)" stroke-width="2.5" stroke="#000" xmlns="http://www.w3.org/2000/svg"><g><path stroke="none" d="M9.99915 16.7256C9.90515 16.7256 9.79102 16.692 9.65674 16.6249C9.52246 16.5622 9.3949 16.4906 9.27405 16.41C8.02974 15.6044 6.94657 14.7584 6.02454 13.8722C5.10697 12.9815 4.3953 12.0662 3.88953 11.1262C3.38375 10.1818 3.13086 9.23067 3.13086 8.27283C3.13086 7.63725 3.23157 7.05762 3.43298 6.53394C3.63888 6.01025 3.92086 5.55819 4.27893 5.17773C4.64148 4.79728 5.05774 4.50635 5.52771 4.30493C6.00216 4.09904 6.51241 3.99609 7.05847 3.99609C7.73433 3.99609 8.31844 4.16618 8.81079 4.50635C9.30762 4.84652 9.70374 5.28963 9.99915 5.83569C10.299 5.28516 10.6951 4.84204 11.1875 4.50635C11.6843 4.16618 12.2707 3.99609 12.9465 3.99609C13.4836 3.99609 13.9894 4.09904 14.4639 4.30493C14.9428 4.50635 15.3613 4.79728 15.7194 5.17773C16.0774 5.55819 16.3572 6.01025 16.5586 6.53394C16.7645 7.05762 16.8674 7.63725 16.8674 8.27283C16.8674 9.23067 16.6145 10.1818 16.1088 11.1262C15.603 12.0662 14.8891 12.9815 13.967 13.8722C13.0495 14.7584 11.9708 15.6044 10.731 16.41C10.6056 16.4906 10.4758 16.5622 10.3416 16.6249C10.2118 16.692 10.0976 16.7256 9.99915 16.7256Z"></path></g></svg></div>Liked by Alex Ewerlöf</button></div></div><div class="pencraft pc-display-flex pc-flexDirection-column pc-reset flex-grow-rzmknG"></div><div class="pencraft pc-display-flex pc-reset comment-menu-trigger-container triggerContainer-eX588u"><button tabindex="0" type="button" aria-label="Ellipsis" id="radix-P0-87" aria-haspopup="menu" aria-expanded="false" data-state="closed" class="pencraft pc-reset pencraft trigger-j08Uop iconButton-mq_Et5 iconButtonBase-dJGHgN buttonBase-GK1x3M buttonStyle-r7yGCK size_sm-G3LciD priority_quaternary-kpMibu"><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-ellipsis"><circle cx="12" cy="12" r="1"></circle><circle cx="19" cy="12" r="1"></circle><circle cx="5" cy="12" r="1"></circle></svg></button></div></div><div class="comment-body expanded"><p><span>If there only 2 types of SLI metrics, namely event and time based SLIs, from which we can derive availability SLO. Does it imply that there are also only ever 2 types of Availability metrics ?</span></p></div><div class="pencraft pc-display-flex pc-gap-16 pc-paddingTop-8 pc-justifyContent-flex-start pc-alignItems-center pc-reset comment-actions withShareButton-hQzuEn"><span class="pencraft pc-reset decoration-hover-underline-ClDVRM reset-IxiVJZ"><a class="pencraft pc-reset link-_X6et2 link-LIBpto"><div class="pencraft pc-display-flex pc-gap-6 pc-alignItems-center pc-reset"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="var(--color-fg-secondary-themed)" 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><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 comment-actions-label">Reply</div></div></a></span><span class="pencraft pc-reset decoration-hover-underline-ClDVRM reset-IxiVJZ"><a class="pencraft pc-reset link-_X6et2 link-LIBpto"><div class="pencraft pc-display-flex pc-gap-6 pc-alignItems-center pc-reset"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="var(--color-fg-secondary-themed)" 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><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 comment-actions-label">Share</div></div></a></span></div><div data-state="closed" class="pencraft pc-display-flex pc-flexDirection-column pc-reset overflow-hidden-WdpwT6"></div></div></div><div class="more-replies-container"><a href="https://blog.alexewerlof.com/p/time-based-vs-event-based/comment/157283840" class="more-replies">1 reply by Alex Ewerlöf</a></div></div></div></div><a href="https://blog.alexewerlof.com/p/time-based-vs-event-based/comments" class="more-comments">1 more comment...</a></div></div></div><div class="single-post-section"><div class="container"><div class="visibility-check"></div><div style="margin-left:-8px;margin-right:-8px;" aria-label="Top Posts Footer" role="region" class="pencraft pc-paddingTop-24 pc-paddingBottom-24 pc-reset"><div class="portable-archive empty-list"><div aria-label="Archive sort tabs" role="navigation" class="pencraft pc-display-flex pc-gap-12 pc-paddingLeft-8 pc-paddingRight-8 pc-paddingBottom-16 pc-justifyContent-space-between pc-alignItems-center pc-reset"><div class="pencraft pc-display-flex pc-flexDirection-column pc-position-relative pc-minWidth-0 pc-reset bg-primary-zk6FDl outline-detail-vcQLyr pc-borderRadius-sm overflow-hidden-WdpwT6"><div dir="ltr" data-orientation="horizontal" class="pencraft pc-display-flex pc-flexDirection-column pc-reset flex-grow-rzmknG"><div style="outline:none;" tabindex="-1" aria-label="Tabs" role="tablist" aria-orientation="horizontal" data-orientation="horizontal" class="pencraft pc-display-flex pc-gap-4 pc-padding-4 pc-position-relative pc-reset cursor-default-flE2S1 pc-borderRadius-sm overflow-auto-7WTsTi scrollBar-hidden-HcAIpI"><button tabindex="-1" type="button" role="tab" aria-selected="true" aria-controls="radix-P0-105-content-top" data-state="active" id="radix-P0-105-trigger-top" data-orientation="horizontal" data-radix-collection-item class="pencraft pc-reset flex-auto-j3S2WA pencraft segment-j4TeZ4 buttonBase-GK1x3M buttonText-X0uSmG buttonStyle-r7yGCK priority_quaternary-kpMibu size_sm-G3LciD">Top</button><button tabindex="-1" type="button" role="tab" aria-selected="false" aria-controls="radix-P0-105-content-new" data-state="inactive" id="radix-P0-105-trigger-new" data-orientation="horizontal" data-radix-collection-item class="pencraft pc-reset flex-auto-j3S2WA pencraft segment-j4TeZ4 buttonBase-GK1x3M buttonText-X0uSmG buttonStyle-r7yGCK priority_quaternary-kpMibu size_sm-G3LciD">Latest</button><button tabindex="-1" type="button" role="tab" aria-selected="false" aria-controls="radix-P0-105-content-community" data-state="inactive" id="radix-P0-105-trigger-community" data-orientation="horizontal" data-radix-collection-item class="pencraft pc-reset flex-auto-j3S2WA pencraft segment-j4TeZ4 buttonBase-GK1x3M buttonText-X0uSmG buttonStyle-r7yGCK priority_quaternary-kpMibu size_sm-G3LciD">Discussions</button><div class="pencraft pc-position-absolute pc-height-32 pc-reset bg-secondary-UUD3_J pc-borderRadius-xs sizing-border-box-DggLA4 highlight-U002IP"></div></div></div><div class="pencraft pc-display-flex pc-alignItems-center pc-reset arrowButtonContainer-O4uSiH arrowButtonOverlaidContainer-t10AyH left-Tg8vqp"><div class="overlay-zrMCxn primary-lv_sOW"></div></div><div class="pencraft pc-display-flex pc-alignItems-center pc-reset arrowButtonContainer-O4uSiH arrowButtonOverlaidContainer-t10AyH right-i3oWGi"><div class="overlay-zrMCxn primary-lv_sOW"></div></div></div><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></div><div class="portable-archive-list"><p class="portable-archive-empty dt-archive-empty-state">No posts</p></div></div></div></div></div><div class="visibility-check"></div><div class="pencraft pc-display-contents pc-reset pubInvertedTheme-U483dz"><div class="pencraft pc-display-flex pc-flexDirection-column pc-alignItems-center pc-justifyContent-center pc-padding-48 pc-mobile-padding-24 pc-reset bg-primary-zk6FDl container-jsOc9L"><div class="pencraft pc-display-flex pc-flexDirection-column pc-alignItems-center pc-gap-24 pc-flexWrap-wrap pc-reset content-jLbYeh"><h3 class="pencraft pc-reset color-primary-zABazT align-center-y7ZD4w line-height-28-s562kJ font-display-nhmvtD size-24-lFU3ly weight-semibold-uqA4FV reset-IxiVJZ">Ready for more?</h3><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_footer"/><input type="hidden" name="referring_pub_id"/><input type="hidden" name="additional_referring_pub_ids"/><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 emailInputOnAccentBackground-TfaCGr input-y4v6N4 inputText-pV_yWb"/></div></div><button tabindex="0" type="submit" disabled class="pencraft pc-reset pencraft rightButton primary subscribe-btn button-VFSdkv buttonOnAccentBackground-vmEt94 buttonBase-GK1x3M"><span class="button-text ">Subscribe</span></button></div><div id="error-container"></div></form></div></div></div></div></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&amp;utm_medium=web&amp;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&amp;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="rmwAJVfOPsTpYGrEad5uRQ">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="rmwAJVfOPsTpYGrEad5uRQ">
window.Sentry && window.Sentry.onLoad(function() {
window.Sentry.init({
environment: window._preloads.sentry_environment,
dsn: window._preloads.sentry_dsn,
})
})
</script>
<script nonce="rmwAJVfOPsTpYGrEad5uRQ">window._preloads = JSON.parse("{\"cspNonce\":\"rmwAJVfOPsTpYGrEad5uRQ\",\"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\":\"everyone\",\"audience_before_archived\":null,\"canonical_url\":\"https://blog.alexewerlof.com/p/time-based-vs-event-based\",\"default_comment_sort\":\"most_recent_first\",\"editor_v2\":false,\"exempt_from_archive_paywall\":false,\"free_unlock_required\":false,\"id\":135808888,\"podcast_art_url\":null,\"podcast_duration\":null,\"podcast_preview_upload_id\":null,\"podcast_upload_id\":null,\"podcast_url\":null,\"post_date\":\"2023-08-07T21:31:48.931Z\",\"updated_at\":\"2025-07-14T20:54:25.023Z\",\"publication_id\":1002265,\"search_engine_description\":null,\"search_engine_title\":null,\"section_id\":67723,\"should_send_free_preview\":false,\"show_guest_bios\":true,\"slug\":\"time-based-vs-event-based\",\"social_title\":null,\"subtitle\":\"One of the most important decisions about SLI\",\"teaser_post_eligible\":true,\"title\":\"Time based vs Event based SLIs\",\"type\":\"newsletter\",\"video_upload_id\":null,\"write_comment_permissions\":\"everyone\",\"meter_type\":\"none\",\"live_stream_id\":null,\"is_published\":true,\"restacks\":0,\"reactions\":{\"\u2764\":4},\"top_exclusions\":[],\"pins\":[],\"section_pins\":[],\"has_shareable_clips\":false,\"previous_post_slug\":\"broken-ownership\",\"next_post_slug\":\"valid-vs-total\",\"cover_image\":\"https://substackcdn.com/image/fetch/$s_!_h6V!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3be84d4-5a4b-4e52-8e7e-77744df9eaa7_1093x705.png\",\"cover_image_is_square\":false,\"cover_image_is_explicit\":false,\"videoUpload\":null,\"podcastFields\":{\"post_id\":135808888,\"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\":\"One of the most important decisions about SLI\",\"body_html\":\"<p><a href=\\\"https://blog.alexewerlof.com/p/sli\\\">Service level indicator (SLI)</a> is defined as the percentage of good divided by valid:</p><div class=\\\"latex-rendered\\\" data-attrs=\\\"{&quot;persistentExpression&quot;:&quot;SLI = \\\\\\\\frac {\\\\\\\\text{good}} {\\\\\\\\text{valid}} \\\\\\\\times 100&quot;,&quot;id&quot;:&quot;ADDCLRPSMS&quot;}\\\" data-component-name=\\\"LatexBlockToDOM\\\"></div><p>There are two types of Service Level Indicators based on the definition of what good looks like:</p><ul><li><p><strong>Time based:</strong> measures good time (uptime)</p></li><li><p><strong>Event based:</strong> measure good events (failures)</p></li></ul><p>This choice has huge implication on how you do error budgeting.</p><p>This article talks about these two types of SLI with some examples and when to use which.</p><h1>Time Based</h1><p>Time-based service level indicators measure the percentage of time that the system was behaving good.</p><p>The focus is on the time period where the system was behaving correctly.</p><div class=\\\"latex-rendered\\\" data-attrs=\\\"{&quot;persistentExpression&quot;:&quot;SLI = \\\\\\\\frac {\\\\\\\\text{good time}} {\\\\\\\\text{valid time}} \\\\\\\\times 100&quot;,&quot;id&quot;:&quot;PKMBCZJJOY&quot;}\\\" data-component-name=\\\"LatexBlockToDOM\\\"></div><p>Although the definition of SLI allows being more specific, usually the valid time is the entire measurement window. In other words:</p><div class=\\\"latex-rendered\\\" data-attrs=\\\"{&quot;persistentExpression&quot;:&quot;SLI = \\\\\\\\frac {\\\\\\\\text{good time}} {\\\\\\\\text{entire window}} \\\\\\\\times 100&quot;,&quot;id&quot;:&quot;IWWICLIPAZ&quot;}\\\" data-component-name=\\\"LatexBlockToDOM\\\"></div><h3>Time slice</h3><p>Although, it is possible to calculate the good time down to any precision, Time-Based SLIs often count the number of good <em>time slices</em> (e.g. number of good minutes in a month). That way the formula looks like this:</p><div class=\\\"latex-rendered\\\" data-attrs=\\\"{&quot;persistentExpression&quot;:&quot;SLI = \\\\\\\\frac {\\\\\\\\text{count(good time slice)}} {\\\\\\\\text{number of time slices in the window}} \\\\\\\\times 100&quot;,&quot;id&quot;:&quot;LUWAXEORLM&quot;}\\\" data-component-name=\\\"LatexBlockToDOM\\\"></div><p>The length of the time slice defines the granularity of the measurement.</p><p>If there are multiple data points in a given time slice, they need to be aggregated to calculate the good/bad status of the time slice. There are many aggregation methods:</p><ul><li><p><strong>Sampling:</strong> just take the data point in the selected time slice</p><ul><li><p><strong>First value:</strong> take the first data point</p></li><li><p><strong>Last value:</strong> take the last data point</p></li><li><p><strong>Random value:</strong> take a random data point as a representative of the whole time slice</p></li></ul></li><li><p><strong>Average (mean):</strong> calculate the average of all data points in a given time slice</p></li><li><p><strong>Min:</strong> take the data point with the smallest value in a time slice</p></li><li><p><strong>Max:</strong> take the data point with the largest value in a time slice</p></li><li><p><strong>Range:</strong> calculate Max - Min</p></li><li><p><strong>Mode:</strong> find the most frequent value</p></li><li><p><strong><a href=\\\"https://blog.alexewerlof.com/p/percentile\\\">Percentile</a>:</strong> sort the data points in the time slice based on their values values, then pick the data point closer to the P% of the length of the data set</p><ul><li><p><strong>P99:</strong> select the data point at the 99% index (e.g. if there are 612 data points, P99 is the data at position 605 in the sorted data set)</p></li><li><p><strong>P50 (Median):</strong> select the data point at the 50% index. This means 50% of the data points are larger or equal than this data point and 50% are lower or equal to this data point.</p></li><li><p>...</p></li></ul></li><li><p><strong>Count:</strong> count the number of data points in a given time slice</p></li><li><p><strong>Sum: </strong>add the value of all data points in a given time slice</p></li><li><p><strong>Rate:</strong> calculate the ratio of the number of data points that match a criteria from all the data points in a given time slice</p></li><li><p><strong><a href=\\\"https://www.youtube.com/watch?v=esskJJF8pCc\\\">Stddev</a>:</strong> The standard deviation is a measure of how the data is scattered around the <em>mean (average)</em>. It has the same unit as the data point value.</p></li><li><p><strong><a href=\\\"https://www.youtube.com/watch?v=5wJUUgnMGWA\\\">Stdvar</a>:</strong> The standard variance is the squared average diff from the <em>mean (average)</em>. The unit is the square of the data point value unit.</p></li><li><p><strong>Topk or Bottomk:</strong> select the top (or bottom) data points in a data set that is sorted in ascending order.</p></li></ul><p>Note: some platforms call this functionality <em>rollup</em> (e.g. <a href=\\\"https://docs.datadoghq.com/dashboards/functions/rollup/\\\">Datadog</a>) while others call it aggregation (e.g. <a href=\\\"https://grafana.com/docs/grafana-cloud/cost-management-and-billing/reduce-costs/metrics-costs/control-metrics-usage-via-adaptive-metrics/define-metrics-aggregation-rules/#supported-aggregation-types\\\">Grafana</a> or <a href=\\\"https://www.elastic.co/guide/en/elasticsearch/reference/current/sql-functions-aggs.html\\\">Elastic</a>).</p><h3>Example</h3><p>Suppose we have a database and decided to use the <em>query response latency</em> as SLI with a time slice of 1 minute. If the P75 percentile of the data response latencies in a minute is above 1000ms (threshold of good), we consider that entire minute a failed time slice.</p><p>This is an example of our data points:</p><div class=\\\"captioned-image-container\\\"><figure><a class=\\\"image-link image2 is-viewable-img\\\" target=\\\"_blank\\\" href=\\\"https://substackcdn.com/image/fetch/$s_!_h6V!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3be84d4-5a4b-4e52-8e7e-77744df9eaa7_1093x705.png\\\" data-component-name=\\\"Image2ToDOM\\\"><div class=\\\"image2-inset\\\"><picture><source type=\\\"image/webp\\\" srcset=\\\"https://substackcdn.com/image/fetch/$s_!_h6V!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3be84d4-5a4b-4e52-8e7e-77744df9eaa7_1093x705.png 424w, https://substackcdn.com/image/fetch/$s_!_h6V!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3be84d4-5a4b-4e52-8e7e-77744df9eaa7_1093x705.png 848w, https://substackcdn.com/image/fetch/$s_!_h6V!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3be84d4-5a4b-4e52-8e7e-77744df9eaa7_1093x705.png 1272w, https://substackcdn.com/image/fetch/$s_!_h6V!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3be84d4-5a4b-4e52-8e7e-77744df9eaa7_1093x705.png 1456w\\\" sizes=\\\"100vw\\\"><img src=\\\"https://substackcdn.com/image/fetch/$s_!_h6V!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3be84d4-5a4b-4e52-8e7e-77744df9eaa7_1093x705.png\\\" width=\\\"1093\\\" height=\\\"705\\\" data-attrs=\\\"{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d3be84d4-5a4b-4e52-8e7e-77744df9eaa7_1093x705.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:705,&quot;width&quot;:1093,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:64375,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}\\\" class=\\\"sizing-normal\\\" alt=\\\"\\\" srcset=\\\"https://substackcdn.com/image/fetch/$s_!_h6V!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3be84d4-5a4b-4e52-8e7e-77744df9eaa7_1093x705.png 424w, https://substackcdn.com/image/fetch/$s_!_h6V!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3be84d4-5a4b-4e52-8e7e-77744df9eaa7_1093x705.png 848w, https://substackcdn.com/image/fetch/$s_!_h6V!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3be84d4-5a4b-4e52-8e7e-77744df9eaa7_1093x705.png 1272w, https://substackcdn.com/image/fetch/$s_!_h6V!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3be84d4-5a4b-4e52-8e7e-77744df9eaa7_1093x705.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><h3>Pros</h3><ul><li><p>Time-based SLI is easier to measure</p></li><li><p>Uptime is a bit more intuitive to understand</p></li><li><p>At any given point in time, it\u2019s easy to calculate the remaining error budget (e.g. How much downtime is remaining for this month?)</p></li><li><p>Time-based SLIs are not sensitive to the amount of load (number of data points in a time slice is aggregated anyway). This means a time-based SLI is a good choice for systems that don\u2019t get too much traffic. On the flip side, time-based SLIs are more forgiving to failures due to a spike in load (as far as the SLI is concerned a minute failed during the night is as significant as a minute failed during peak hours). This property may not be desired.</p></li><li><p>Some SLIs are time-based by nature. For example, <a href=\\\"https://blog.alexewerlof.com/p/percentile\\\">percentiles</a> are used to focus the optimization on outliers. Percentile is calculated for a range of values over time (e.g. 5 minutes), which fits perfectly into the concept of time slices. You can also calculate the percentile over the entire SLO window (e.g. P99 of all response latencies in the past 30 days) but this is not the time-based SLI we are talking about. It\u2019s event-based as we\u2019ll get to.</p></li><li><p>It is easy to tell the current status based on the recent data. That is because the status of each time slice is calculated separately. You don\u2019t need to aggregate the data through the entire window in order to calculate the current <a href=\\\"https://blog.alexewerlof.com/p/sls\\\">SLS</a> (service level status).</p></li></ul><h3>Cons</h3><ul><li><p>Unless the system receives a uniform load (i.e. ~200 req/sec for the entire month), <em>time</em> and <em>impact</em> may not be correlated. For example, if the system was down for 30 minutes due to heavy demand right after launching a new product, this disruption is considered as serious as 30 minutes in the middle of the night when most users don\u2019t use the system.</p></li><li><p>A few bad events can easily hide in an aggregation period and go under the radar. For example, if the average latency in a minute is in the \u201Cgood\u201D range, there can be requests in the same aggregation period which their latency in not in the \u201Cgood\u201D range. For these cases it is better to use <a href=\\\"https://blog.alexewerlof.com/p/percentile\\\">percentile</a>.</p></li><li><p>The time-based SLIs usually miss the notion of working hours and assume a global 24/7 service. This doesn't make sense for some products. For example, if a product is supposed to be used only during working hours in a certain time zone, it doesn\u2019t make too much sense to have on-call during night and weekends. As we\u2019ll see in an upcoming article, this is not a show-stopper because the alert notification can be decoupled from the failure detection. In other words, the system can be down outside office hours and the alert can only trigger during the office hours.</p></li><li><p>Excluding planned maintenance windows from time-based SLIs can be complicated.</p></li><li><p>In \uD83D\uDD34alerting on SLOs we\u2019ll discuss how the speed at which we consume our error budget (burn rate) will be used to trigger an alert. Time-based alerts will have to look back at the predefined time window (based on the burn rate) to detect an incident. This makes the alerts too slow compared to event-based SLIs which trigger as soon as a good/valid ratio drops below the SLO.</p></li></ul><div class=\\\"subscription-widget-wrap-editor\\\" data-attrs=\\\"{&quot;url&quot;:&quot;https://blog.alexewerlof.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}\\\" data-component-name=\\\"SubscribeWidgetToDOM\\\"><div class=\\\"subscription-widget show-subscribe\\\"><div class=\\\"preamble\\\"><p class=\\\"cta-caption\\\">I break down more complex topics about service levels in the upcoming articles</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>Event Based SLI</h1><p>The focus is on the number of good events divided by the total number of events.</p><div class=\\\"latex-rendered\\\" data-attrs=\\\"{&quot;persistentExpression&quot;:&quot;SLI = \\\\\\\\frac {\\\\\\\\text{good events}} {\\\\\\\\text{valid events}} \\\\\\\\times 100&quot;,&quot;id&quot;:&quot;EIBEAXHNQR&quot;}\\\" data-component-name=\\\"LatexBlockToDOM\\\"></div><p>In the same example as before:</p><h3>Example</h3><p>Let\u2019s reuse the previous example. Suppose that for a database we have decided to use the query response time as SLI. We define a threshold (for example one second) and any individual query that takes longer than one second to response is considered bad.</p><p>The diagram below shows the total number of events over time. It changes as the demand for our system fluctuates.</p><div class=\\\"captioned-image-container\\\"><figure><a class=\\\"image-link image2 is-viewable-img\\\" target=\\\"_blank\\\" href=\\\"https://substackcdn.com/image/fetch/$s_!mOQ5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F711ee3e1-ef14-4237-913a-2f84a7ddfd55_1094x876.png\\\" data-component-name=\\\"Image2ToDOM\\\"><div class=\\\"image2-inset\\\"><picture><source type=\\\"image/webp\\\" srcset=\\\"https://substackcdn.com/image/fetch/$s_!mOQ5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F711ee3e1-ef14-4237-913a-2f84a7ddfd55_1094x876.png 424w, https://substackcdn.com/image/fetch/$s_!mOQ5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F711ee3e1-ef14-4237-913a-2f84a7ddfd55_1094x876.png 848w, https://substackcdn.com/image/fetch/$s_!mOQ5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F711ee3e1-ef14-4237-913a-2f84a7ddfd55_1094x876.png 1272w, https://substackcdn.com/image/fetch/$s_!mOQ5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F711ee3e1-ef14-4237-913a-2f84a7ddfd55_1094x876.png 1456w\\\" sizes=\\\"100vw\\\"><img src=\\\"https://substackcdn.com/image/fetch/$s_!mOQ5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F711ee3e1-ef14-4237-913a-2f84a7ddfd55_1094x876.png\\\" width=\\\"1094\\\" height=\\\"876\\\" data-attrs=\\\"{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/711ee3e1-ef14-4237-913a-2f84a7ddfd55_1094x876.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:876,&quot;width&quot;:1094,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:88506,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}\\\" class=\\\"sizing-normal\\\" alt=\\\"\\\" srcset=\\\"https://substackcdn.com/image/fetch/$s_!mOQ5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F711ee3e1-ef14-4237-913a-2f84a7ddfd55_1094x876.png 424w, https://substackcdn.com/image/fetch/$s_!mOQ5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F711ee3e1-ef14-4237-913a-2f84a7ddfd55_1094x876.png 848w, https://substackcdn.com/image/fetch/$s_!mOQ5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F711ee3e1-ef14-4237-913a-2f84a7ddfd55_1094x876.png 1272w, https://substackcdn.com/image/fetch/$s_!mOQ5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F711ee3e1-ef14-4237-913a-2f84a7ddfd55_1094x876.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>Event based SLIs are interested in the percentage of good events from valid events.</p><h3>Pros</h3><ul><li><p>They automatically adjust to the amount of load</p></li><li><p>Better map to impact. If 10x more requests got error in the same amount of time, this affects the SLI and error budget 10x.</p></li><li><p>In \uD83D\uDD34alerting on SLOs we\u2019ll discuss how the speed at which we consume our error budget (burn rate) will be used to trigger an alert. Event-based SLIs will adjust automatically if the error budget is consumed faster than predicted. For example, if the error budget is being consumed at the rate of 1000x, the event-based alert will quickly pick it up.</p></li></ul><h3>Cons</h3><ul><li><p>Unlike time-based SLI, it is hard to tell the status based on recent data (there\u2019s no time slice). We need the data for the entire evaluation window.</p></li><li><p>It is harder to reason about the error budgets for event based SLIs.</p></li><li><p>It is more punishing the team when a high number of bad events happen in a short time and can practically burn the entire error budget. One could argue that that these spikes in load are exactly why we\u2019re measuring service levels in the first place.</p></li></ul><h1>Conclusion</h1><p>Which one you pick boils down to a few question:</p><ul><li><p>Is the reliability perceived as good time or good events?</p></li><li><p>Does the service consumption pattern vary a lot during time? For example does the load drop significantly during the night or weekends? Do you get massive spikes in high season? This means different time slices have different impact and an event-based SLI suits better.</p></li><li><p>Time-based is less punishing for the team when incidents happen during high traffic.</p></li><li><p>How should the error budget be formulated?</p><ul><li><p>Time-based SLIs consume the error budget based on the duration of bad time</p></li><li><p>Event based SLIs consume the error budget based on the proportion of bad events1.</p></li></ul></li><li><p>Do you want easy math? Time-based has easier in calculations.</p></li><li><p>Do you want to know exactly how much error budget is remaining at any given time? Event-based SLIs don\u2019t give an accurate estimate of the remaining error budget if you can\u2019t predict the future load.</p></li><li><p>Do you want the SLI to map to the impact? Event-based is more accurate and maps better to the impact. It considers the impact of low/high load and spikes in the load.</p></li></ul><div class=\\\"captioned-button-wrap\\\" data-attrs=\\\"{&quot;url&quot;:&quot;https://blog.alexewerlof.com/p/time-based-vs-event-based?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}\\\" data-component-name=\\\"CaptionedButtonToDOM\\\"><div class=\\\"preamble\\\"><p class=\\\"cta-caption\\\">If you found this article insightful, why not share the inspiration within your circles or on social media? \uD83D\uDE42</p></div><p class=\\\"button-wrapper\\\" data-attrs=\\\"{&quot;url&quot;:&quot;https://blog.alexewerlof.com/p/time-based-vs-event-based?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}\\\" data-component-name=\\\"ButtonCreateButton\\\"><a class=\\\"button primary\\\" href=\\\"https://blog.alexewerlof.com/p/time-based-vs-event-based?utm_source=substack&utm_medium=email&utm_content=share&action=share\\\"><span>Share</span></a></p></div><h1>References</h1><ul><li><p><a href=\\\"https://cloud.google.com/stackdriver/docs/solutions/slo-monitoring#defn-sli\\\">Request-based and Window-based SLIs</a> (Google Cloud SLO Monitoring)</p></li><li><p><a href=\\\"https://www.ibm.com/docs/en/instana-observability/current?topic=instana-service-level-objectives-slo#sli-types\\\">SLI Types</a> (IBM Instana Observability)</p></li><li><p><a href=\\\"https://cloud.google.com/blog/products/devops-sre/sre-fundamentals-slis-slas-and-slos\\\">SRE fundamentals: SLIs, SLAs and SLOs</a> (google cloud blog)</p></li><li><p><a href=\\\"https://uptime.is/\\\">Uptime.is</a>: a simple uptime calculator</p></li></ul>\",\"has_dynamic_content\":false,\"truncated_body_text\":\"Service level indicator (SLI) is defined as the percentage of good divided by valid:\",\"wordcount\":1691,\"post_preview_limit\":null,\"language\":\"en\",\"postTags\":[{\"id\":\"161adc2f-d613-486e-a332-3de6f2a4c419\",\"publication_id\":1002265,\"name\":\"time\",\"slug\":\"time\",\"hidden\":false},{\"id\":\"41c8e46a-a899-466d-b9d9-a3d1c099b04b\",\"publication_id\":1002265,\"name\":\"reliability\",\"slug\":\"reliability\",\"hidden\":false},{\"id\":\"5e680a13-60a3-45b8-b0a0-6275b3f1ff23\",\"publication_id\":1002265,\"name\":\"measurement\",\"slug\":\"measurement\",\"hidden\":false},{\"id\":\"cf340fd3-2968-4314-9bb0-028636f7035a\",\"publication_id\":1002265,\"name\":\"optimization\",\"slug\":\"optimization\",\"hidden\":false},{\"id\":\"e52ec82c-ab7b-45ab-8f2d-6102570d3bf0\",\"publication_id\":1002265,\"name\":\"metrics\",\"slug\":\"metrics\",\"hidden\":false}],\"postCountryBlocks\":[],\"headlineTest\":null,\"coverImagePalette\":{\"Vibrant\":{\"rgb\":[28,193,83],\"population\":373},\"DarkVibrant\":{\"rgb\":[12,96,60],\"population\":179},\"LightVibrant\":{\"rgb\":[214,88,90],\"population\":219},\"Muted\":{\"rgb\":[132,108,66],\"population\":80},\"DarkMuted\":{\"rgb\":[95,48,62],\"population\":145},\"LightMuted\":{\"rgb\":[122.84134615384616,30.15865384615384,31.6298076923077],\"population\":0}},\"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\":4,\"comment_count\":2,\"child_comment_count\":1,\"audio_items\":[{\"post_id\":135808888,\"voice_id\":\"en-US-OnyxTurboMultilingualNeural\",\"audio_url\":\"https://substack-video.s3.amazonaws.com/video_upload/post/135808888/tts/17b310a0-efff-4eff-9820-3fde9034f345/en-US-OnyxTurboMultilingualNeural.mp3\",\"type\":\"tts\",\"status\":\"completed\"}],\"is_geoblocked\":false,\"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\":[{\"id\":157283840,\"body\":\"If there only 2 types of SLI metrics, namely event and time based SLIs, from which we can derive availability SLO. Does it imply that there are also only ever 2 types of Availability metrics ?\",\"body_json\":{\"type\":\"doc\",\"attrs\":{\"schemaVersion\":\"v1\"},\"content\":[{\"type\":\"paragraph\",\"content\":[{\"type\":\"text\",\"text\":\"If there only 2 types of SLI metrics, namely event and time based SLIs, from which we can derive availability SLO. Does it imply that there are also only ever 2 types of Availability metrics ?\"}]}]},\"publication_id\":1002265,\"post_id\":135808888,\"user_id\":2365795,\"ancestor_path\":\"\",\"type\":\"comment\",\"deleted\":false,\"date\":\"2025-09-18T12:59:13.009Z\",\"edited_at\":null,\"status\":\"published\",\"pinned_by_user_id\":null,\"restacks\":0,\"name\":\"Zeeman\",\"photo_url\":\"https://substack-post-media.s3.amazonaws.com/public/images/01dda90d-6d22-4964-85ac-b2dffea58cdc_144x144.png\",\"handle\":\"cruzancaramele\",\"reactor_names\":[\"Alex Ewerl\u00F6f\"],\"reaction\":null,\"reactions\":{\"\u2764\":1},\"reaction_count\":1,\"children\":[],\"bans\":[],\"suppressed\":false,\"user_banned\":false,\"user_banned_for_comment\":false,\"user_slug\":\"cruzancaramele\",\"metadata\":{\"is_author\":false,\"membership_state\":\"subscribed\",\"eligibleForGift\":false},\"user_bestseller_tier\":null,\"can_dm\":true,\"userStatus\":{\"bestsellerTier\":null,\"subscriberTier\":1,\"leaderboard\":null,\"vip\":false,\"badge\":{\"type\":\"subscriber\",\"tier\":1,\"accent_colors\":{\"fg\":{\"light\":{\"r\":255,\"g\":255,\"b\":255,\"a\":1},\"dark\":{\"r\":0,\"g\":0,\"b\":0,\"a\":0.8}},\"bg\":{\"light\":{\"r\":222,\"g\":158,\"b\":52,\"a\":1},\"dark\":{\"r\":255,\"g\":188,\"b\":82,\"a\":1}}}},\"subscriber\":null},\"score\":6,\"children_count\":1,\"reported_by_user\":false,\"restacked\":false,\"childrenSummary\":\"1 reply by Alex Ewerl\u00F6f\"}],\"canonicalUrl\":\"https://blog.alexewerlof.com/p/time-based-vs-event-based\",\"inlineComments\":false,\"readerIsSearchCrawler\":false,\"ogUrl\":\"https://blog.alexewerlof.com/p/time-based-vs-event-based\",\"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\":\"125.0\",\"major\":\"125\"},\"showCookieBanner\":false,\"disabledCookies\":[],\"dd_env\":\"prod\",\"dd_ti\":true}")</script>
<script nonce="rmwAJVfOPsTpYGrEad5uRQ">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="rmwAJVfOPsTpYGrEad5uRQ" 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="rmwAJVfOPsTpYGrEad5uRQ">
(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="rmwAJVfOPsTpYGrEad5uRQ" data-cf-beacon='{"version":"2024.11.0","token":"68cfe66b5c4749e2ba64d4d9640c04c0","spa":2}' crossorigin="anonymous"></script>
</body>
</html>