Files
nexus/sreweekly/articles/52/05-building-and-scaling-the-fastly-network-part-2-balancing-requests.html
2026-09-12 17:23:01 +08:00

489 lines
273 KiB
HTML
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html><html lang="en" class="_html-container_1xd3m_22"><head><meta charset="UTF-8"><script>
;(function () {
var callbacks = []
var granted = false
function readCookie(n) {
return (
(
document.cookie.split(/;\s*/).find(function (c) {
return c.startsWith(n + "=")
}) || ""
).slice(n.length + 1) || undefined
)
}
function readSubcookie(cv, sck) {
var raw = (
cv.split(/&/).find(function (sc) {
return sc.startsWith(sck + "=")
}) || ""
).slice(sck.length + 1)
try {
return decodeURIComponent(raw) || undefined
} catch (e) {
return undefined
}
}
function hasFunctionalConsent() {
var consent = readCookie("OptanonConsent")
if (!consent) return false
var groups = readSubcookie(consent, "groups")
if (!groups) return false
return groups.split(",").some(function (g) {
return g === "funcs:1"
})
}
function flush() {
granted = true
while (callbacks.length) {
callbacks.shift()()
}
}
// As of now, we only load third-party scripts that meet the
// functional/performance criteria
if (hasFunctionalConsent()) {
flush()
}
window.__consentReady = function (cb) {
if (granted) {
cb()
} else {
callbacks.push(cb)
}
}
window.__consentGranted = function (attempts) {
if (granted) return
// This works around a race condition between the banner closing
// and the cookie being updated
if (hasFunctionalConsent()) {
flush()
} else if ((attempts || 0) < 10) {
setTimeout(function () {
window.__consentGranted((attempts || 0) + 1)
}, 100)
}
}
})()
</script><script>
window.__consentReady(function () {
var n = document.documentElement
var s = { p: [], r: [] }
var u = {
p: s.p,
r: s.r,
push: function (e) {
s.p.push(e)
},
ready: function (e) {
s.r.push(e)
},
}
window.intellimize = u
n.className += " anti-flicker"
setTimeout(function () {
n.className = n.className.replace(RegExp(" ?anti-flicker"), "")
}, 1000)
var style = document.createElement("style")
style.textContent =
".anti-flicker, .anti-flicker * {visibility: hidden !important; opacity: 0 !important;}"
document.head.appendChild(style)
var script = document.createElement("script")
script.src = "https://cdn.intellimize.co/snippet/117419923.js"
script.async = true
script.onerror = function () {
n.className = n.className.replace(RegExp(" ?anti-flicker"), "")
}
document.head.appendChild(script)
})
</script><title>Scaling Fastly Network: Balancing Requests | Fastly | Fastly</title><meta name="description" content="Our previous post detailed how Fastly started down the slippery slope of network software. By implementing a distributed routing system on commodity switches, we were able to maintain complete control over how we forward packets at a fraction of the cost imposed by conventional networking wisdom."><meta name="viewport" content="width=device-width"><link href="https://www.fastly.com/blog/building-and-scaling-fastly-network-part-2-balancing-requests" hreflang="en" rel="alternate"><link href="https://www.fastly.com/jp/blog/building-and-scaling-fastly-network-part-2-balancing-requests" hreflang="ja" rel="alternate"><link href="https://www.fastly.com/es/blog/building-and-scaling-fastly-network-part-2-balancing-requests" hreflang="es-es" rel="alternate"><link href="https://www.fastly.com/es-latam/blog/building-and-scaling-fastly-network-part-2-balancing-requests" hreflang="es" rel="alternate"><link href="https://www.fastly.com/de/blog/building-and-scaling-fastly-network-part-2-balancing-requests" hreflang="de" rel="alternate"><link href="https://www.fastly.com/fr/blog/building-and-scaling-fastly-network-part-2-balancing-requests" hreflang="fr" rel="alternate"><link href="https://www.fastly.com/it/blog/building-and-scaling-fastly-network-part-2-balancing-requests" hreflang="it" rel="alternate"><link href="https://www.fastly.com/blog/building-and-scaling-fastly-network-part-2-balancing-requests" hreflang="x-default" rel="alternate"><link href="https://www.fastly.com/blog/building-and-scaling-fastly-network-part-2-balancing-requests" rel="canonical"><link href="/blog_rss.xml" rel="alternate" title="RSS" type="application/rss+xml"><meta content="Scaling Fastly Network: Balancing Requests | Fastly | Fastly" property="og:title"><meta content="Our previous post detailed how Fastly started down the slippery slope of network software. By implementing a distributed routing system on commodity switches, we were able to maintain complete control over how we forward packets at a fraction of the cost imposed by conventional networking wisdom." property="og:description"><meta content="website" property="og:type"><meta content="//www.fastly.com/cimages/ocb1q9kflo7k/6JBugTYTfoKMXil79Ob4ne/ff8a21b1b1c21f2b7e21ed759977b944/metadataImage-fastly-generic.png?auto=avif&amp;canvas=1200:630&amp;width=1200&amp;height=630&amp;fit=bounds&amp;bg-color=FFFFFF" name="image" property="og:image"><meta content="summary_large_image" name="twitter:card"><meta content="@fastly" name="twitter:creator"><meta content="Scaling Fastly Network: Balancing Requests | Fastly | Fastly" name="twitter:title"><meta content="Our previous post detailed how Fastly started down the slippery slope of network software. By implementing a distributed routing system on commodity switches, we were able to maintain complete control over how we forward packets at a fraction of the cost imposed by conventional networking wisdom." name="twitter:description"><meta content="//www.fastly.com/cimages/ocb1q9kflo7k/6JBugTYTfoKMXil79Ob4ne/ff8a21b1b1c21f2b7e21ed759977b944/metadataImage-fastly-generic.png?auto=avif&amp;canvas=1200:600&amp;width=1200&amp;height=600&amp;fit=bounds&amp;bg-color=FFFFFF" name="twitter:image"><link href="/favicons/favicon.ico" rel="icon" sizes="any"><link href="/favicons/favicon.svg" rel="icon" type="image/svg+xml"><link href="/favicons/favicon.png" rel="icon" type="image/png"><link href="/favicons/apple-touch-icon-57x57.png" rel="apple-touch-icon-precomposed" sizes="57x57"><link href="/favicons/apple-touch-icon-114x114.png" rel="apple-touch-icon-precomposed" sizes="114x114"><link href="/favicons/apple-touch-icon-72x72.png" rel="apple-touch-icon-precomposed" sizes="72x72"><link href="/favicons/apple-touch-icon-144x144.png" rel="apple-touch-icon-precomposed" sizes="144x144"><link href="/favicons/apple-touch-icon-60x60.png" rel="apple-touch-icon-precomposed" sizes="60x60"><link href="/favicons/apple-touch-icon-120x120.png" rel="apple-touch-icon-precomposed" sizes="120x120"><link href="/favicons/apple-touch-icon-76x76.png" rel="apple-touch-icon-precomposed" sizes="76x76"><link href="/favicons/apple-touch-icon-152x152.png" rel="apple-touch-icon-precomposed" sizes="152x152"><link href="/favicons/favicon-196x196.png" rel="icon" sizes="196x196" type="image/png"><link href="/favicons/favicon-96x96.png" rel="icon" sizes="96x96" type="image/png"><link href="/favicons/favicon-32x32.png" rel="icon" sizes="32x32" type="image/png"><link href="/favicons/favicon-16x16.png" rel="icon" sizes="16x16" type="image/png"><link href="/favicons/favicon-128x128.png" rel="icon" sizes="128x128" type="image/png"><meta content=" " name="application-name"><meta content="#FFFFFF" name="msapplication-TileColor"><meta content="/favicons/mstile-144x144.png" name="msapplication-TileImage"><meta content="/favicons/mstile-70x70.png" name="msapplication-square70x70logo"><meta content="/favicons/mstile-150x150.png" name="msapplication-square150x150logo"><meta content="/favicons/mstile-256x256.png" name="msapplication-wide256x256logo"><meta name="experiment" content="revamp" data-variant="baseline"><script type="text/javascript">
window.__consentReady(function () {
;(function (apiKey) {
;(function (p, e, n, d, o) {
var v, w, x, y, z
o = p[d] = p[d] || {}
o._q = o._q || []
v = ["initialize", "identify", "updateOptions", "pageLoad", "track"]
for (w = 0, x = v.length; w < x; ++w)
(function (m) {
o[m] =
o[m] ||
function () {
o._q[m === v[0] ? "unshift" : "push"]([m].concat([].slice.call(arguments, 0)))
}
})(v[w])
y = e.createElement(n)
y.async = !0
y.src = "https://cdn.pendo.io/agent/static/" + apiKey + "/pendo.js"
z = e.getElementsByTagName(n)[0]
z.parentNode.insertBefore(y, z)
})(window, document, "script", "pendo")
})("08eb7aa5-3521-4ef5-597f-4d6073b28ef8")
var retries = 0
var maxRetries = 20
var initializePendo = function () {
if (window.pendo) {
var experimentMeta = document.head.querySelector('meta[name="experiment"]')
var flagKey = experimentMeta ? experimentMeta.getAttribute("content") : null
var activeFlags =
flagKey && experimentMeta.dataset.variant === "experiment" ? [flagKey] : []
return window.pendo.initialize({
visitor: {
id: null,
activeDotComFeatureFlags: activeFlags,
},
account: {
id: null,
},
})
} else if (retries < maxRetries) {
retries++
setTimeout(initializePendo, 500)
}
}
initializePendo()
})
</script><script>
window.__consentReady(function () {
LUX = (function () {
function n() {
return Date.now ? Date.now() : +new Date()
}
var r,
e = n(),
t = window.performance || {},
a = t.timing || {
navigationStart: (null === (r = window.LUX) || void 0 === r ? void 0 : r.ns) || e,
}
function o() {
return t.now ? ((r = t.now()), Math.floor(r)) : n() - a.navigationStart
var r
}
;(((LUX = window.LUX || {}).ac = []),
(LUX.addData = function (n, r) {
return LUX.cmd(["addData", n, r])
}),
(LUX.cmd = function (n) {
return LUX.ac.push(n)
}),
(LUX.getDebug = function () {
return [[e, 0, []]]
}),
(LUX.init = function () {
return LUX.cmd(["init"])
}),
(LUX.mark = function () {
for (var n = [], r = 0; r < arguments.length; r++) n[r] = arguments[r]
if (t.mark) return t.mark.apply(t, n)
var e = n[0],
a = n[1] || {}
void 0 === a.startTime && (a.startTime = o())
LUX.cmd(["mark", e, a])
}),
(LUX.markLoadTime = function () {
return LUX.cmd(["markLoadTime", o()])
}),
(LUX.measure = function () {
for (var n = [], r = 0; r < arguments.length; r++) n[r] = arguments[r]
if (t.measure) return t.measure.apply(t, n)
var e,
a = n[0],
i = n[1],
u = n[2]
e = "object" == typeof i ? n[1] : { start: i, end: u }
e.duration || e.end || (e.end = o())
LUX.cmd(["measure", a, e])
}),
(LUX.send = function () {
return LUX.cmd(["send"])
}),
(LUX.ns = e))
var i = LUX
if (
((window.LUX_ae = []),
window.addEventListener("error", function (n) {
window.LUX_ae.push(n)
}),
(window.LUX_al = []),
"function" == typeof PerformanceObserver && "function" == typeof PerformanceLongTaskTiming)
) {
var u = new PerformanceObserver(function (n) {
for (var r = n.getEntries(), e = 0; e < r.length; e++) window.LUX_al.push(r[e])
})
try {
u.observe({ type: "longtask" })
} catch (n) {}
}
return i
})()
var s = document.createElement("script")
s.src = "https://cdn.speedcurve.com/js/lux.js?id=4272646268"
s.async = true
s.crossOrigin = "anonymous"
document.head.appendChild(s)
})
</script><script type="application/ld+json">
{
"@context": "http://schema.org/",
"@type": "Organization",
"name": "Fastly",
"address": {
"@type": "PostalAddress",
"addressLocality": "San Francisco, CA",
"postalCode": "94107",
"streetAddress": "475 Brannan St #300"
},
"contactPoint": {
"@type": "ContactPoint",
"telephone": "+1-844-432-7859",
"contactType": "customer service"
},
"url": "https://www.fastly.com",
"logo": "https://www.fastly.com/img/og-image-lg.png?canvas=1200:630&width=1200&height=630&fit=bounds&bg-color=FFFFFF",
"sameAs": [
"https://www.facebook.com/FastlyEdgeCloud",
"https://twitter.com/fastly",
"https://twitter.com/fastlyjapan",
"https://en.wikipedia.org/wiki/Fastly",
"https://www.youtube.com/user/FastlyCDN",
"https://www.linkedin.com/company/fastly",
"https://vimeo.com/fastly"
]
}
</script><script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "Corporation",
"name": "Fastly",
"url": "https://www.fastly.com",
"description": "Fastly’s edge cloud platform helps the world’s most
popular digital businesses keep pace with their customer expectations
by delivering fast, secure, and scalable online experiences."
}
</script><!-- Before GTM code --><script>
window.dataLayer = window.dataLayer || []
function gtag() {
dataLayer.push(arguments)
}
</script><!-- Google Tag Manager --><script>
;(function (w, d, s, l, i) {
w[l] = w[l] || []
w[l].push({ "gtm.start": new Date().getTime(), event: "gtm.js" })
var f = d.getElementsByTagName(s)[0],
j = d.createElement(s),
dl = l != "dataLayer" ? "&l=" + l : ""
j.async = true
j.src = "/metrics/gtm/?id=" + i + dl
f.parentNode.insertBefore(j, f)
})(window, document, "script", "dataLayer", "GTM-W9FKFHD")
</script><!-- End Google Tag Manager --><link as="font" crossorigin="anonymous" href="/_astro/inter-latin-wght-normal.Dx4kXJAl.woff2" rel="preload"><link as="font" crossorigin="anonymous" href="/_astro/ESRebondGrotesque-Bold.Vvb2hi1S.woff2" rel="preload"><link as="font" crossorigin="anonymous" href="/_astro/ESRebondGrotesque-Medium.C-5an2ne.woff2" rel="preload"><link as="font" crossorigin="anonymous" href="/_astro/ESRebondGrotesque-Regular.BMHg1z8b.woff2" rel="preload"><script type="application/ld+json">{
"@context": "https://schema.org",
"@type": "Article",
"@id": "https://www.fastly.com/blog/building-and-scaling-fastly-network-part-2-balancing-requests#article",
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "https://www.fastly.com/blog/building-and-scaling-fastly-network-part-2-balancing-requests"
},
"headline": "Scaling Fastly Network: Balancing Requests | Fastly",
"description": "Our previous post detailed how Fastly started down the slippery slope of network software. By implementing a distributed routing system on commodity switches, we were able to maintain complete control over how we forward packets at a fraction of the cost imposed by conventional networking wisdom.",
"publisher": {
"@type": "Organization",
"name": "Fastly",
"logo": {
"@type": "ImageObject",
"url": "https://www.fastly.com/img/og-image-lg.png?canvas=1200:630&width=1200&height=630&fit=bounds&bg-color=FFFFFF"
}
},
"datePublished": "2024-12-06T09:03:01.968Z",
"dateModified": "2024-12-06T09:03:01.968Z",
"inLanguage": "en-US",
"url": "https://www.fastly.com/blog/building-and-scaling-fastly-network-part-2-balancing-requests",
"author": [
{
"@type": "Person",
"name": "João Taveira Araújo",
"url": "https://www.fastly.com/blog/author/joao-taveira-araujo"
},
{
"@type": "Person",
"name": "Lorenzo Saino",
"url": "https://www.fastly.com/blog/author/lorenzo-saino"
},
{
"@type": "Person",
"name": "Lennert Buytenhek",
"url": "https://www.fastly.com/blog/author/lennert-buytenhek"
}
],
"articleSection": "Engineering"
}</script><link rel="stylesheet" href="/_astro/Combobox.R-Np-5SM.css"><style>._menu-item_1k2nt_3{all:unset;cursor:pointer;color:var(--COLOR--grey--10);flex-direction:column;margin-block-end:var(--LAYOUT--size--xs);display:flex;&:hover,&:focus-visible{color:var(--COLOR--white)}&:focus-visible{outline:1px solid var(--COLOR--white);outline-offset:var(--LAYOUT--size--xs)}}._link-arrow_1k2nt_22{color:var(--COLOR--green--30);display:none;._menu-item_1k2nt_3:hover &{display:block}}._menu-item-title_1k2nt_31{font-weight:var(--TYPOGRAPHY--font-weight--bold);justify-content:space-between;margin:0;margin-block-end:var(--LAYOUT--size--xs);padding-inline-end:var(--LAYOUT--size--lg);display:inline-flex;._menu-item_1k2nt_3:hover &,._menu-item_1k2nt_3:focus-visible &{color:var(--COLOR--white);text-decoration:underline}}._menu-item-description_1k2nt_46{font-size:var(--TYPOGRAPHY--font-size--sm);line-height:var(--TYPOGRAPHY--line-height--md);margin:0}
._tab-trigger_1nges_3{color:var(--COLOR--white);text-align:left;font-size:var(--TYPOGRAPHY--font-size--xl);padding:var(--LAYOUT--size--2xs);border-radius:var(--LAYOUT--radius--md);gap:var(--LAYOUT--size--xs);cursor:pointer;background:0 0;border:none;flex-wrap:nowrap;align-items:center;padding-inline-end:var(--LAYOUT--size--md);display:flex;&:hover,&[data-state=active]{outline:1px solid var(--COLOR--white);outline-offset:var(--LAYOUT--size--2xs)}&:focus-visible{outline:1px solid var(--COLOR--white);outline-offset:var(--LAYOUT--size--2xs);box-shadow:0 0 0 1px var(--COLOR--green--20)}}._tab-trigger-title_1nges_31{font-weight:var(--TYPOGRAPHY--font-weight--regular);display:block}._tab-trigger-description_1nges_36{font-size:var(--TYPOGRAPHY--font-size--sm);line-height:var(--TYPOGRAPHY--line-height--md);display:block}
._top-level-item_1w1zo_3{border-inline-start:2px solid #0000;padding-inline-start:var(--LAYOUT--size--xs)}._container_1w1zo_8{--toc-offset:calc(var(--LAYOUT--global-header-height) + var(--LAYOUT--size--lg));top:var(--toc-offset);gap:var(--LAYOUT--size--xs);padding-block:var(--LAYOUT--size--xs);max-height:calc(100vh - var(--toc-offset));flex-direction:column;display:none;position:sticky;overflow-y:scroll;@media (width>=1100px){display:flex}}._title_1w1zo_26{font-size:var(--TYPOGRAPHY--font-size--sm);line-height:var(--TYPOGRAPHY--line-height--lg);font-weight:var(--TYPOGRAPHY--font-weight--bold);font-family:var(--TYPOGRAPHY--type--font-family--ornamental);@media (width>=768px){font-size:var(--TYPOGRAPHY--font-size--md)}border-inline-start:2px solid #0000;padding-inline-start:var(--LAYOUT--size--xs)}._nav-container_1w1zo_32{gap:var(--LAYOUT--size--xs);flex-direction:column;display:flex}._nav-item_1w1zo_38{font-size:var(--TYPOGRAPHY--font-size--sm);line-height:var(--TYPOGRAPHY--line-height--md);transition:all var(--MOTION--animation-duration);color:var(--COLOR--grey--60);border-inline-start:2px solid #0000;padding-inline-start:var(--LAYOUT--size--xs);& a{&:hover{color:var(--COLOR--link);text-decoration:underline}&:focus-visible{outline:2px solid var(--COLOR--link);outline-offset:2px;border-radius:var(--LAYOUT--radius--sm)}}&[data-active]{border-color:var(--COLOR--blue--70);color:var(--COLOR--black)}&[data-level=second]{margin-inline-start:var(--LAYOUT--size--lg)}}
</style><link rel="stylesheet" href="/_astro/Layout.nG_Ukui4.css"><style>@layer reset{:where(:not(html,iframe,canvas,img,svg,video,audio):not(svg *,symbol *)){all:unset;display:revert}*,:before,:after{box-sizing:border-box}html{text-size-adjust:none;font-variation-settings:"slnt" 0}a,button{cursor:revert}ol,ul,menu,summary{list-style:none}ol{counter-reset:revert}img{max-block-size:100%;max-inline-size:100%}table{border-collapse:collapse}input,textarea{-webkit-user-select:auto}textarea{white-space:revert}meter{appearance:revert}:where(pre){all:revert;box-sizing:border-box}::placeholder{color:unset}:where([hidden]){display:none}:where([contenteditable]:not([contenteditable=false])){-moz-user-modify:read-write;-webkit-user-modify:read-write;overflow-wrap:break-word;-webkit-line-break:after-white-space;-webkit-user-select:auto}:where([draggable=true]){-webkit-user-drag:element}:where(dialog:modal){all:revert;box-sizing:border-box}::-webkit-details-marker{display:none}}._container_1xd3m_1{height:100%;min-height:100vh;font-family:var(--TYPOGRAPHY--type--font-family--base);background-color:var(--COLOR--page-background);line-height:1.75;font-size:var(--TYPOGRAPHY--font-size--md);flex-direction:column;display:flex;& main{flex-grow:1}@media (width>=768px){line-height:1.5}}._html-container_1xd3m_22{scroll-behavior:smooth}
._caption_koi9r_7{font-size:var(--TYPOGRAPHY--font-size--md);text-align:center;color:var(--COLOR--grey--70)}._container_koi9r_13{max-height:fit-content;aspect-ratio:var(--aspect-ratio)}._container-img_koi9r_18{max-height:fit-content;aspect-ratio:var(--aspect-ratio);max-width:fit-content;&:has(figcaption){max-height:none}}._image-anchor_koi9r_28{display:flex;&:focus-visible{outline:2px solid var(--COLOR--blue--70);outline-offset:-2px;border-radius:var(--LAYOUT--radius--sm)}}._image-anchor-with-placeholder_koi9r_36{height:100%;display:flex;&:focus-visible{outline:2px solid var(--COLOR--blue--70);outline-offset:-2px;border-radius:var(--LAYOUT--radius--sm)}}._placeholder_koi9r_45{object-fit:cover;border-radius:var(--LAYOUT--radius--sm);background:linear-gradient(135deg,#eb1a0c 0%,#ff8533 69.79%);width:100%;height:100%;@media (prefers-reduced-motion:no-preference){transition:border-radius var(--MOTION--animation-duration)}&:hover{border-radius:var(--LAYOUT--radius--xl)}&:focus-visible{outline:2px solid var(--COLOR--blue--70);outline-offset:-2px;border-radius:var(--LAYOUT--radius--sm)}}
</style><link rel="stylesheet" href="/_astro/StatsMarquee.dxiw-53j.css"><style>._error-container_1o27x_1{align-content:center;width:100%;max-width:1036px;@media (width>=768px){margin-block-end:var(--LAYOUT--size--md)}}
._container_7vaf5_3{padding:var(--LAYOUT--size--md);background-color:var(--COLOR--background);color:var(--COLOR--text);border-bottom-style:solid;border-bottom-width:1px;border-bottom-color:var(--COLOR--grey--30);flex-direction:column;align-items:center;display:flex;&[data-section-theme=dark]{border-bottom-color:#0000}}._container-blog-home_7vaf5_19{font-size:var(--TYPOGRAPHY--font-size--sm);line-height:var(--TYPOGRAPHY--line-height--md);padding:var(--LAYOUT--size--xs) var(--LAYOUT--size--md)}._container-text-hero_7vaf5_24{padding-block:var(--LAYOUT--size--2xs);padding-inline:var(--LAYOUT--size--lg)}._inner_7vaf5_29{width:100%;max-width:var(--LAYOUT--max-width);box-sizing:content-box;align-items:center;display:flex}._inner-alignment-default_7vaf5_37{justify-content:space-between}._inner-alignment-end_7vaf5_41{justify-content:end}._inner-alignment-center_7vaf5_45{justify-content:center}._blog-home-text_7vaf5_49{font-size:var(--TYPOGRAPHY--font-size--sm);line-height:var(--TYPOGRAPHY--line-height--lg);font-weight:var(--TYPOGRAPHY--font-weight--bold);font-family:var(--TYPOGRAPHY--type--font-family--ornamental);@media (width>=768px){font-size:var(--TYPOGRAPHY--font-size--md)}}._icons-wrapper_7vaf5_53{align-items:center;gap:var(--LAYOUT--size--xs);text-align:right;display:flex}._text-wrapper_7vaf5_60{display:none;@media (width>=768px){display:flex}}._icon-link_7vaf5_68{color:var(--COLOR--grey--90);gap:var(--LAYOUT--size--2xs);display:inline-flex;&:hover{color:var(--COLOR--link)}[data-section-theme=dark] &{color:var(--COLOR--white)}&:focus-visible{outline:2px solid var(--COLOR--link);outline-offset:2px;border-radius:var(--LAYOUT--radius--sm)}}._icon_7vaf5_53{height:100%}._x-twitter-icon-link_7vaf5_88:hover path{fill:var(--COLOR--link)}._back-link_7vaf5_92{align-items:center;gap:var(--LAYOUT--size--sm);text-align:start;align-self:start;display:flex;&:hover{color:var(--COLOR--link);text-decoration:underline}&:focus-visible{outline:2px solid var(--COLOR--link);outline-offset:2px;border-radius:var(--LAYOUT--radius--sm)}}
._container_r69i7_3{color:var(--COLOR--black);gap:var(--LAYOUT--size--sm);min-width:200px;max-width:280px;display:flex}._img_r69i7_11{width:64px;height:auto;max-inline-size:unset;max-block-size:unset;padding-block-start:var(--LAYOUT--size--2xs)}._author-name_r69i7_19{font-size:var(--TYPOGRAPHY--font-size--sm);line-height:var(--TYPOGRAPHY--line-height--md);font-weight:var(--TYPOGRAPHY--font-weight--bold);&:hover{color:var(--COLOR--link);text-decoration:underline}&:focus-visible{outline:2px solid var(--COLOR--link);outline-offset:2px;border-radius:var(--LAYOUT--radius--sm)}}._author-job-title_r69i7_26{font-size:var(--TYPOGRAPHY--font-size--sm);line-height:var(--TYPOGRAPHY--line-height--md)}
._summary-text_11spr_1{margin-block-end:var(--LAYOUT--size--lg)}._container_11spr_5{max-width:var(--LAYOUT--body-max-width)}._content_11spr_9{gap:var(--LAYOUT--size--2xs);color:var(--COLOR--black);padding-left:var(--LAYOUT--size--sm);font-size:var(--TYPOGRAPHY--font-size--sm);border-left:1px dashed;flex-direction:column;margin-block-end:var(--LAYOUT--size--2xl);display:flex;@media (width>=768px){gap:var(--LAYOUT--size--xs)}}._logo-container_11spr_24{gap:var(--LAYOUT--size--sm);display:flex}._space-after-comma_11spr_29{margin-right:var(--LAYOUT--size--2xs)}._eyebrow-style_14ujm_3{font-size:var(--TYPOGRAPHY--font-size--sm);font-weight:var(--TYPOGRAPHY--font-weight--bold);color:var(--COLOR--black);font-family:var(--TYPOGRAPHY--type--font-family--ornamental)}._authors-container_14ujm_10{gap:var(--LAYOUT--size--md);grid-template-columns:1fr;margin-block-end:var(--LAYOUT--size--lg);display:grid;@media (width>=48rem){grid-template-columns:repeat(2,1fr)}@media (width>=64rem){grid-template-columns:repeat(3,1fr)}}._article-title_14ujm_25{font-size:var(--TYPOGRAPHY--font-size--3xl);line-height:var(--TYPOGRAPHY--line-height--sm);font-weight:var(--TYPOGRAPHY--font-weight--medium);font-family:var(--TYPOGRAPHY--type--font-family--ornamental);@media (width>=768px){font-size:var(--TYPOGRAPHY--font-size--4xl)}margin-block-end:var(--LAYOUT--size--lg)}._article-title-logo-img_14ujm_30{width:auto;min-height:60px}._article-container_14ujm_35[data-show-sidebar] ._article-title_14ujm_25{@media (width>=1100px){width:100%;margin-inline:0}}._top-level-item_1w1zo_3{border-inline-start:2px solid #0000;padding-inline-start:var(--LAYOUT--size--xs)}._container_1w1zo_8{--toc-offset:calc(var(--LAYOUT--global-header-height) + var(--LAYOUT--size--lg));top:var(--toc-offset);gap:var(--LAYOUT--size--xs);padding-block:var(--LAYOUT--size--xs);max-height:calc(100vh - var(--toc-offset));flex-direction:column;display:none;position:sticky;overflow-y:scroll;@media (width>=1100px){display:flex}}._title_1w1zo_26{font-size:var(--TYPOGRAPHY--font-size--sm);line-height:var(--TYPOGRAPHY--line-height--lg);font-weight:var(--TYPOGRAPHY--font-weight--bold);font-family:var(--TYPOGRAPHY--type--font-family--ornamental);@media (width>=768px){font-size:var(--TYPOGRAPHY--font-size--md)}border-inline-start:2px solid #0000;padding-inline-start:var(--LAYOUT--size--xs)}._nav-container_1w1zo_32{gap:var(--LAYOUT--size--xs);flex-direction:column;display:flex}._nav-item_1w1zo_38{font-size:var(--TYPOGRAPHY--font-size--sm);line-height:var(--TYPOGRAPHY--line-height--md);transition:all var(--MOTION--animation-duration);color:var(--COLOR--grey--60);border-inline-start:2px solid #0000;padding-inline-start:var(--LAYOUT--size--xs);& a{&:hover{color:var(--COLOR--link);text-decoration:underline}&:focus-visible{outline:2px solid var(--COLOR--link);outline-offset:2px;border-radius:var(--LAYOUT--radius--sm)}}&[data-active]{border-color:var(--COLOR--blue--70);color:var(--COLOR--black)}&[data-level=second]{margin-inline-start:var(--LAYOUT--size--lg)}}
._main_jdjt1_4{background-color:var(--COLOR--grey--10);min-height:100%;padding:var(--LAYOUT--size--lg) var(--LAYOUT--size--md);flex-direction:column;flex-grow:1;align-items:center;display:flex}._article-container_jdjt1_14{background-color:var(--COLOR--white);border:1px solid var(--COLOR--grey--30);color:var(--COLOR--grey--90);overflow-wrap:anywhere;width:100%;max-width:1036px;box-shadow:8px 8px 16px #4446391a;&[data-show-sidebar]{@media (width>=1280px){max-width:calc(var(--LAYOUT--sidebar-width-breakpoint) + 50px)}}}._article-child-margin_jdjt1_30{margin:var(--LAYOUT--size--lg);@media (width>=768px){margin:var(--LAYOUT--size--3xl)}@media (width>=1024px){margin:var(--LAYOUT--size--5xl)}[data-show-sidebar] &{@media (width>=1100px){margin:var(--LAYOUT--size--3xl);margin-inline-end:var(--LAYOUT--size--xl)}@media (width>=1280px){margin:var(--LAYOUT--size--5xl)}}}._body-max-width_jdjt1_53{._article-content_jdjt1_54 &{max-width:var(--LAYOUT--body-max-width);margin-inline:auto}[data-show-sidebar] ._article-content_jdjt1_54 &{@media (width>=1100px){margin-inline:unset}}}[data-show-sidebar] ._article-content-container_jdjt1_66{@media (width>=1100px){justify-content:space-between;align-items:flex-start;column-gap:var(--LAYOUT--size--lg);grid-template-columns:1fr 240px;display:grid}}._article-content_jdjt1_54{scroll-margin-block-start:80px;overflow-x:hidden;&>:is(h2,h3,h4){padding-block-start:0}}._hero-image_jdjt1_85{border-radius:var(--LAYOUT--radius--sm)}._hero-image-container_jdjt1_89{margin-block-end:var(--LAYOUT--size--lg)}._article-sidebar-container_jdjt1_93{gap:var(--LAYOUT--size--xs);padding-block:var(--LAYOUT--size--xs);max-width:var(--LAYOUT--body-max-width);flex-direction:column;margin-inline:auto;display:flex;@media (width>=1100px){margin-inline:unset}}._article-footer-container_jdjt1_106{border-top:1px solid var(--COLOR--grey--30);width:100%;overflow:hidden}._article-footer-inner_jdjt1_112{&:is(div){padding:var(--LAYOUT--size--xl);align-items:center;overflow:hidden}}
</style><link rel="stylesheet" href="/_astro/PreFooter.BVIabvRF.css"><link rel="stylesheet" href="/_astro/ContactForm.B9cFeujo.css"><link rel="stylesheet" href="/_astro/SectionList.kMiFhHz7.css"><style>._internal-banner_1h6qy_3{width:100%;padding:var(--LAYOUT--size--md);border-radius:var(--LAYOUT--radius--xl);border:1px solid var(--COLOR--grey--20);color:var(--COLOR--white);background-color:var(--COLOR--black);justify-content:center;align-items:center;gap:var(--LAYOUT--size--sm);flex-direction:column;display:flex;@media (width>=768px){gap:var(--LAYOUT--size--xl);flex-direction:row;justify-content:space-between;&:has(p._short_1h6qy_22){justify-content:center}}& p{font-family:var(--TYPOGRAPHY--type--font-family--base);line-height:165%;font-weight:var(--TYPOGRAPHY--font-weight--light);text-wrap:pretty;font-size:var(--TYPOGRAPHY--font-size--md);@media (width>=768px){font-size:var(--TYPOGRAPHY--font-size--lg)}margin-block:0}}._button-overrides_1h6qy_34{flex-shrink:0}._info-notice_1h6qy_38{border:1px solid var(--COLOR--blue--70);border-radius:var(--LAYOUT--radius--xs);padding-inline-start:var(--LAYOUT--size--xl);padding-inline-end:var(--LAYOUT--size--md);padding-block:var(--LAYOUT--size--sm);position:relative;@media (width>=768px){padding-inline-start:var(--LAYOUT--size--3xl);padding-inline-end:var(--LAYOUT--size--lg)}& ._icon_1h6qy_51{color:var(--COLOR--blue--70)}}._info-notice-graf_1h6qy_56{font-size:var(--TYPOGRAPHY--font-size--sm);line-height:var(--TYPOGRAPHY--line-height--md);text-wrap:pretty}._info-notice-heading-6_1h6qy_61{font-size:var(--TYPOGRAPHY--font-size--md);line-height:var(--TYPOGRAPHY--line-height--lg);font-family:var(--TYPOGRAPHY--type--font-family--base);font-weight:var(--TYPOGRAPHY--font-weight--bold)}._icon_1h6qy_51{left:var(--LAYOUT--size--xs);top:var(--LAYOUT--size--sm);margin-block-start:6px;position:absolute;@media (width>=768px){left:var(--LAYOUT--size--lg)}}
@layer base{._container_1h785_2{color:var(--COLOR--text);background:var(--COLOR--background);scroll-margin-top:var(--LAYOUT--global-header-height);flex-direction:column;flex-grow:1;align-items:center;display:flex}._inner_1h785_12{max-width:var(--LAYOUT--max-width);flex-direction:column;flex-grow:1;align-items:flex-start;width:100%;display:flex}._inner-padding_1h785_21{padding-inline:var(--LAYOUT--size--lg);padding-block:var(--LAYOUT--size--lg);@media (width>=1280px){max-width:calc(var(--LAYOUT--max-width) + calc(2 * var(--LAYOUT--size--lg)))}}}
</style><link rel="stylesheet" href="/_astro/Button.WGyJgzdt.css"><link rel="stylesheet" href="/_astro/RelatedContentCard.BpNmbcr9.css"><link rel="stylesheet" href="/_astro/shared.Depv9b8Q.css"><link rel="stylesheet" href="/_astro/VideoEmbed.CME-1IGk.css"><style>._code-block-container_nmrzt_3{max-width:var(--LAYOUT--body-max-width);margin-inline:auto;position:relative;[data-show-sidebar] &{@media (width>=1100px){margin-inline:unset}}}._code-block_nmrzt_3{font-size:var(--TYPOGRAPHY--font-size--sm);font-family:var(--TYPOGRAPHY--type--font-family--mono);line-height:var(--TYPOGRAPHY--line-height--md);padding:var(--LAYOUT--size--md);border-radius:var(--LAYOUT--radius--md);border:1px solid var(--COLOR--grey--30);margin-block-end:var(--LAYOUT--size--lg);@media (width>=544px){font-size:inherit}}._code-block-wrap_nmrzt_21{text-wrap:pretty}._copy-success_nmrzt_25{right:var(--LAYOUT--size--xl);top:var(--LAYOUT--size--2xs);z-index:calc(var(--LAYOUT--z-index--menu) + 1);color:var(--COLOR--black);border-radius:var(--LAYOUT--radius--sm);padding-block:var(--LAYOUT--size--xs);padding-inline:var(--LAYOUT--size--xs);vertical-align:middle;backdrop-filter:blur(4px);border:1px solid var(--COLOR--grey--20);opacity:0;line-height:1.333;transition:all .125s;position:absolute;scale:.75;&[aria-hidden=false]{right:var(--LAYOUT--size--3xl);opacity:1;scale:1}}._copy-success-dark_nmrzt_49{color:var(--COLOR--white);border-color:var(--COLOR--grey--80);background:color-mix(in srgb, currentColor 10%, transparent);backdrop-filter:blur(2px)brightness(.75)}._clip-button_nmrzt_56{height:var(--LAYOUT--size--2xl);width:var(--LAYOUT--size--2xl);padding:var(--LAYOUT--size--xs);border-radius:var(--LAYOUT--radius--sm);fill:var(--COLOR--black);cursor:pointer;backdrop-filter:blur(2px);border:1px solid var(--COLOR--grey--20);top:var(--LAYOUT--size--2xs);right:var(--LAYOUT--size--2xs);z-index:var(--LAYOUT--z-index--menu);position:absolute;&:hover{fill:var(--COLOR--blue--70)}&:focus-visible{fill:var(--COLOR--blue--70);outline:2px solid var(--COLOR--blue--70)}}._clip-button-dark_nmrzt_80{backdrop-filter:blur(2px)brightness(.75);border-color:var(--COLOR--grey--80);fill:var(--COLOR--white);&:hover{fill:var(--COLOR--green--30)}&:focus-visible{fill:var(--COLOR--green--30);outline:2px solid var(--COLOR--green--30)}}
</style><script type="module" src="/_astro/page.sxlF4EnU.js"></script></head><body data-page-theme="light" class="_container_1xd3m_1" style="--theme-accent:var(--COLOR--blue--60)"><!-- Google Tag Manager (noscript) --><noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W9FKFHD" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript><!-- End Google Tag Manager (noscript) --><div class="_container_1xd3m_1"><div class="_header-container_1jqcd_1"><script type="module" src="/_astro/Combobox.astro_astro_type_script_index_0_lang.BRdzizZe.js"></script><script type="module">(function(){try{var e=typeof window<`u`?window:typeof global<`u`?global:typeof globalThis<`u`?globalThis:typeof self<`u`?self:{};e.SENTRY_RELEASE={id:`05ef44b745e3202c9cca360a52fe5c627d2ef830`};var t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]=`e615f4fb-5224-43f6-bd85-9cfee836a7cd`,e._sentryDebugIdIdentifier=`sentry-dbid-e615f4fb-5224-43f6-bd85-9cfee836a7cd`)}catch{}})();var e=class extends HTMLElement{connectedCallback(){let e=this.querySelector(`button[role="combobox"]`),t=this.querySelector(`div[role="listbox"]`),n=this.querySelector(`input[type="hidden"]`);if(!e||!t||!n)return;let r=n.value,i=e.querySelector(`span`);i&&new MutationObserver(()=>{i.textContent!==r&&(i.textContent=r)}).observe(i,{childList:!0,characterData:!0,subtree:!0}),e.addEventListener(`blur`,()=>{n.value=r,t.querySelectorAll(`div[role="option"]`).forEach(e=>{let t=e.dataset.label===r;e.setAttribute(`aria-selected`,t?`true`:`false`)})}),t.addEventListener(`mouseenter`,()=>{t.removeAttribute(`data-keyboard-nav`)}),this.addEventListener(`keydown`,e=>{(e.key===`ArrowDown`||e.key===`ArrowUp`)&&t.setAttribute(`data-keyboard-nav`,`true`)});let a=e=>{let t=window.location.pathname.replace(/^\/(en-US|jp|es-latam|es|de|fr|it)/,``)||`/`;e===`en-US`?window.location.href=t:window.location.href=`/${e}${t}`},o=()=>{let e=window.location.pathname.match(/^\/(en-US|jp|es-latam|es|de|fr|it)/);return e?e[1]:`en-US`};t.addEventListener(`click`,e=>{let t=e.target.closest(`div[role="option"]`);if(!t)return;let n=t.dataset.id;n&&n!==o()&&a(n)},!0),this.addEventListener(`keydown`,n=>{if(n.key===`Enter`||n.key===` `){let n=e.getAttribute(`aria-activedescendant`);if(!n)return;let r=t.querySelector(`div[role="option"][data-id="${n}"]`);if(!r)return;let i=r.dataset.id;if(!i||i===o())return;a(i)}},!0)}};customElements.define(`language-selector`,e);</script><script type="module" src="/_astro/SearchCombobox.astro_astro_type_script_index_0_lang.Cq8jgSra.js"></script><script type="module" src="/_astro/MegaMenu.astro_astro_type_script_index_0_lang.tJywxEC7.js"></script><global-navigation class="_wrapper_12y82_3" data-search-index="false"><nav class="_nav-container_12y82_25" aria-label="Main navigation"><div class="_nav-content_12y82_31"><div class="_secondary-nav_12y82_36"><a href="/" title="Home" data-logo-global><svg role="img" width="100" viewBox="0 0 1709 768" fill="white"><title>Fastly</title><g><path d="M1154.2 134.3v421.1h126.4v-64.3h-41.8V70.2h-84.7zM55.9 491.1h43V287.9h-43V232l43-7.1v-56.6c0-68.5 14.9-98.2 102.3-98.2 18.9 0 41.2 2.8 60.8 6.3l-11.6 68.9c-13.3-2.1-19.8-2.5-28.2-2.5-30.8 0-38.6 3.1-38.6 33.1V225h63.9v62.9h-63.9V491h42.5v64.3H55.9v-64.2zM1111.1 470.7c-13.2 2.8-24.8 2.5-33.2 2.7-34.8.9-31.8-10.6-31.8-43.5v-142h66.3V225H1046V70.2h-84.7v377.3c0 74.1 18.3 107.9 98 107.9 18.9 0 44.8-4.9 64.4-9zM1637.2 491.4c17.8 0 32.2 14.1 32.2 32 0 17.8-14.4 31.9-32.2 31.9s-32.1-14.1-32.1-31.9 14.3-32 32.1-32m0 58.9c14.8 0 26.8-12.1 26.8-26.9s-12-26.6-26.8-26.6-26.7 11.8-26.7 26.6 11.9 26.9 26.7 26.9m5.9-11.2l-6.5-9.5h-4.5v9.5h-7.2v-31.4h13.1c7.8 0 12.6 3.9 12.6 10.9 0 5.1-2.6 8.6-6.6 9.8l7.8 10.8h-8.7zm-10.9-15.8h5.7c3.3 0 5.5-1.3 5.5-4.7 0-3.3-2.2-4.6-5.3-4.6h-5.9zM855.6 287.8v-11.3c-25.6-4.7-51.1-4.7-64.9-4.7-39.4 0-44.2 20.9-44.2 32.2 0 16 5.5 24.7 48.2 34 62.4 14 125.1 28.6 125.1 106 0 73.4-37.8 111.3-117.3 111.3-53.2 0-104.8-11.4-144.2-21.4v-63.2h64.1v11.2c27.6 5.3 56.5 4.8 71.6 4.8 42 0 48.8-22.6 48.8-34.6 0-16.7-12.1-24.7-51.5-32.7-74.2-12.7-133.2-38-133.2-113.5 0-71.4 47.7-99.4 127.3-99.4 53.9 0 94.8 8.4 134.2 18.4v62.8h-64zM465.9 343.4l-6.4-6.4-32.7 28.5c-1.7-.6-3.4-.9-5.3-.9-8.8 0-16 7.4-16 16.4 0 9.1 7.2 16.4 16 16.4s16-7.4 16-16.4c0-1.7-.3-3.4-.7-4.9z"></path><path d="M595.6 470.7l-.1-263.6h-84.7v24.7c-17.4-10.5-36.9-17.9-57.6-21.8h.5v-29.2H464v-21.5h-85.3v21.5H389V210h.6c-81 14.9-142.4 85.8-142.4 171.2 0 96.2 77.9 174.1 174.1 174.1 32.8 0 63.5-9.1 89.7-24.9l15.3 24.9h89.5v-84.7h-20.2zm-169.1-.1v-10h-10.1v9.9c-45.5-2.6-81.8-39.2-84.2-84.7h10.1v-10.1h-10c2.7-45.2 38.9-81.4 84.1-84v10h10.1v-10c44.6 2.4 80.5 37.4 84.4 81.5v2.9h-10.2v10.1h10.2v2.8c-3.8 44.2-39.8 79.2-84.4 81.6zM1495 225h174.7v62.9h-41.8l-107.1 263.6c-30.7 74-81.1 143.7-157.9 143.7-18.9 0-44-2.1-61.5-6.3l7.7-76.9c11.2 2.1 25.8 3.5 33.5 3.5 35.6 0 75.8-22.1 88.4-60.5l-108.6-267.1h-41.8V225h174.8v62.9h-41.7l61.5 151.3 61.5-151.3H1495z"></path></g></svg></a><div class="_language-selector_12y82_71"><language-selector class="_wrapper_1sgyp_1"><dropdown-combobox data-id="language-selector" class="_dropdown_f21kc_3" data-focused="false" data-color-mode="dark" data-variant="select"><div class="_label-style-medium_1gwcl_20 _visually-hidden_f21kc_205" id="combobox-label-language-selector">Language</div><button class="_button_f21kc_46 _combobox_f21kc_71" id="menu-button-language-selector" aria-haspopup="listbox" aria-labelledby="combobox-label-language-selector" aria-expanded="false" aria-controls="listbox-language-selector" aria-activedescendant="en-US" role="combobox"><svg width="18" height="18" viewBox="0 0 24 24" class="_select-icon_f21kc_120" data-icon="mdi:web"><use href="#ai:mdi:web"></use></svg><span>English</span><svg width="20" height="20" viewBox="0 0 24 24" class="_arrow_f21kc_321" data-icon="mdi:arrow-drop-down"><use href="#ai:mdi:arrow-drop-down"></use></svg></button><input type="hidden" id="input-language-selector" value="English"><div class="_dropdown-content_f21kc_217" tabindex="-1"><div id="listbox-language-selector" role="listbox" aria-labelledby="combobox-label-language-selector"><div role="option" class="_text_f21kc_260 _li_f21kc_255 _option_f21kc_279" aria-selected="true" data-id="en-US" data-label="English">English<svg width="20" height="20" viewBox="0 0 24 24" class="_check_f21kc_311" data-icon="mdi:check"><use href="#ai:mdi:check"></use></svg></div><div role="option" class="_text_f21kc_260 _li_f21kc_255 _option_f21kc_279" aria-selected="false" data-id="jp" data-label="日本語">日本語<svg width="20" height="20" viewBox="0 0 24 24" class="_check_f21kc_311" data-icon="mdi:check"><use href="#ai:mdi:check"></use></svg></div><div role="option" class="_text_f21kc_260 _li_f21kc_255 _option_f21kc_279" aria-selected="false" data-id="es" data-label="Español (España)">Español (España)<svg width="20" height="20" viewBox="0 0 24 24" class="_check_f21kc_311" data-icon="mdi:check"><use href="#ai:mdi:check"></use></svg></div><div role="option" class="_text_f21kc_260 _li_f21kc_255 _option_f21kc_279" aria-selected="false" data-id="es-latam" data-label="Español (Latinoamérica)">Español (Latinoamérica)<svg width="20" height="20" viewBox="0 0 24 24" class="_check_f21kc_311" data-icon="mdi:check"><use href="#ai:mdi:check"></use></svg></div><div role="option" class="_text_f21kc_260 _li_f21kc_255 _option_f21kc_279" aria-selected="false" data-id="de" data-label="Deutsch">Deutsch<svg width="20" height="20" viewBox="0 0 24 24" class="_check_f21kc_311" data-icon="mdi:check"><use href="#ai:mdi:check"></use></svg></div><div role="option" class="_text_f21kc_260 _li_f21kc_255 _option_f21kc_279" aria-selected="false" data-id="fr" data-label="Français">Français<svg width="20" height="20" viewBox="0 0 24 24" class="_check_f21kc_311" data-icon="mdi:check"><use href="#ai:mdi:check"></use></svg></div><div role="option" class="_text_f21kc_260 _li_f21kc_255 _option_f21kc_279" aria-selected="false" data-id="it" data-label="Italiano">Italiano<svg width="20" height="20" viewBox="0 0 24 24" class="_check_f21kc_311" data-icon="mdi:check"><use href="#ai:mdi:check"></use></svg></div></div></div></dropdown-combobox></language-selector></div><div class="_top-nav-items_12y82_75"><a href="/under-attack" class="_under-attack-button_12y82_82">Under Attack?</a><a data-variant="text" data-color-mode="dark" data-size="compact" href="tel:+18444327859" url="tel:+18444327859" class="_button_wofj8_1">(844) 4FASTLY</a><a data-variant="text" data-color-mode="dark" data-size="compact" href="https://support.fastly.com/" url="https://support.fastly.com/" class="_button_wofj8_1">Support Center</a><a data-variant="text" data-color-mode="dark" data-size="compact" href="https://manage.fastly.com/" url="https://manage.fastly.com/" class="_button_wofj8_1">Log in</a></div></div><div class="_main-nav_12y82_56"><ul class="_nav-list_b9ewp_1" role="menubar"><li role="none"><button id="trigger-44yZWBNAnmvVgaiMJRurtX" type="button" class="_nav-item_b9ewp_9" role="menuitem" aria-expanded="false" aria-controls="dropdown-44yZWBNAnmvVgaiMJRurtX" aria-haspopup="true" data-nav-trigger>Why?</button></li><li role="none"><button id="trigger-5plfLUYXwULycD5pW2MINF" type="button" class="_nav-item_b9ewp_9" role="menuitem" aria-expanded="false" aria-controls="dropdown-5plfLUYXwULycD5pW2MINF" aria-haspopup="true" data-nav-trigger>Products</button></li><li role="none"><button id="trigger-7nMUmUownQUZIWjKC3MXSE" type="button" class="_nav-item_b9ewp_9" role="menuitem" aria-expanded="false" aria-controls="dropdown-7nMUmUownQUZIWjKC3MXSE" aria-haspopup="true" data-nav-trigger>Services</button></li><li role="none"><button id="trigger-3cwp6vqK4KGxwjAcMdV4Wh" type="button" class="_nav-item_b9ewp_9" role="menuitem" aria-expanded="false" aria-controls="dropdown-3cwp6vqK4KGxwjAcMdV4Wh" aria-haspopup="true" data-nav-trigger>Solutions</button></li><li role="none"><button id="trigger-2NBNxeRlRxZY2hyGQXRPwb" type="button" class="_nav-item_b9ewp_9" role="menuitem" aria-expanded="false" aria-controls="dropdown-2NBNxeRlRxZY2hyGQXRPwb" aria-haspopup="true" data-nav-trigger>Devs</button></li><li role="none"><button id="trigger-4x75k3ubJrX3pMXCqSHyHY" type="button" class="_nav-item_b9ewp_9" role="menuitem" aria-expanded="false" aria-controls="dropdown-4x75k3ubJrX3pMXCqSHyHY" aria-haspopup="true" data-nav-trigger>Partners</button></li><li role="none"><button id="trigger-3EHgWFnwPf2U4g7S7iqvPu" type="button" class="_nav-item_b9ewp_9" role="menuitem" aria-expanded="false" aria-controls="dropdown-3EHgWFnwPf2U4g7S7iqvPu" aria-haspopup="true" data-nav-trigger>Resources</button></li><li role="none"><a href="/pricing" class="_nav-item_b9ewp_9" role="menuitem">Pricing</a></li></ul><div class="_actions-area_12y82_63"><button class="_search-trigger_12y82_121" data-search-trigger aria-label="Search"><svg width="20" height="20" data-icon="material-symbols:search"><symbol id="ai:material-symbols:search" viewBox="0 0 24 24"><path fill="currentColor" d="m19.6 21l-6.3-6.3q-.75.6-1.725.95T9.5 16q-2.725 0-4.612-1.888T3 9.5t1.888-4.612T9.5 3t4.613 1.888T16 9.5q0 1.1-.35 2.075T14.7 13.3l6.3 6.3zM9.5 14q1.875 0 3.188-1.312T14 9.5t-1.312-3.187T9.5 5T6.313 6.313T5 9.5t1.313 3.188T9.5 14"/></symbol><use href="#ai:material-symbols:search"></use></svg></button><div class="_search-panel_12y82_142" data-search-panel><div class="_search-panel-content_12y82_155"><search-combobox data-endpoint="https://api.fastly.com/public-search/marketing" data-min-chars="3" data-locale-path="en-US"><dropdown-combobox data-id="nav-search" class="_dropdown_f21kc_3" data-focused="false" data-color-mode="dark" data-variant="search"><div class="_label-style-medium_1gwcl_20 _visually-hidden_f21kc_205" id="combobox-label-nav-search">Search</div><div class="_autocomplete-wrapper_f21kc_92"><div class="_input-icon_f21kc_97" aria-hidden="true"><svg width="20" height="20" viewBox="0 0 24 24" class="_search-icon_f21kc_112" data-icon="material-symbols:search"><use href="#ai:material-symbols:search"></use></svg><svg class="_spinner_f21kc_124" viewBox="25 25 50 50"><circle cx="50" cy="50" fill="none" r="20"></circle></svg></div><input type="text" class="_button_f21kc_46 _combobox_f21kc_71 _autocomplete-input_f21kc_174" id="menu-button-nav-search" aria-haspopup="listbox" aria-labelledby="combobox-label-nav-search" aria-expanded="false" aria-controls="listbox-nav-search" aria-activedescendant="" aria-autocomplete="list" role="combobox" autocomplete="off"></div><input type="hidden" id="input-nav-search" value><div class="_dropdown-content_f21kc_217" tabindex="-1"><div id="listbox-nav-search" role="listbox" aria-labelledby="combobox-label-nav-search"></div><div class="_text_f21kc_260 _no-results_f21kc_192 _hidden_f21kc_188" role="status" aria-live="polite">Sorry, no results found.</div></div></dropdown-combobox><div class="_actions_d68ur_1" data-search-actions><button class="_clear_d68ur_6" data-search-clear disabled>Clear</button><span class="_search-action-divider_12y82_193"></span><button class="_search-close_12y82_201" data-search-close aria-label="Close search"><svg width="20" height="20" data-icon="material-symbols:close"><symbol id="ai:material-symbols:close" viewBox="0 0 24 24"><path fill="currentColor" d="M6.4 19L5 17.6l5.6-5.6L5 6.4L6.4 5l5.6 5.6L17.6 5L19 6.4L13.4 12l5.6 5.6l-1.4 1.4l-5.6-5.6z"/></symbol><use href="#ai:material-symbols:close"></use></svg></button></div></search-combobox></div></div><a data-variant="outline" data-color-mode="dark" data-size="normal" href="/contact-sales" url="/contact-sales" class="_button_wofj8_1">Talk to an expert</a><a data-variant="solid" data-color-mode="dark" data-size="normal" href="/signup" url="/signup" class="_button_wofj8_1">Try Fastly Free</a></div></div></div></nav><div data-nav-viewport class="_nav-viewport_12y82_110"><mega-menu id="dropdown-44yZWBNAnmvVgaiMJRurtX" role="region" aria-labelledby="trigger-44yZWBNAnmvVgaiMJRurtX" data-visible="false" data-default-tab="tab-0" class="_mega-menu_srtdo_25"><div class="_mega-menu-content_srtdo_64"><header class="_header_1egs7_3"><div class="_header-icon_1egs7_12"><svg width="96" height="96" viewBox="0 0 96 96" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M6 25.0001V82.39C6 85.1459 8.2341 87.38 10.99 87.38H85.01C87.7659 87.38 90 85.1459 90 82.39V25.0001H6ZM63.83 64.5C62.6965 61.0909 60.7842 57.9927 58.2447 55.4515C55.7052 52.9103 52.6084 50.9958 49.2 49.86C48.9348 49.86 48.6804 49.7546 48.4929 49.5671C48.3054 49.3796 48.2 49.1252 48.2 48.86C48.2 48.5948 48.3054 48.3404 48.4929 48.1529C48.6804 47.9654 48.9348 47.86 49.2 47.86C52.6052 46.7272 55.6999 44.8173 58.2392 42.2815C60.7784 39.7457 62.6926 36.6536 63.83 33.25C63.83 32.9848 63.9354 32.7304 64.1229 32.5429C64.3104 32.3554 64.5648 32.25 64.83 32.25C65.0952 32.25 65.3496 32.3554 65.5371 32.5429C65.7246 32.7304 65.83 32.9848 65.83 33.25C66.9614 36.657 68.8707 39.7537 71.4066 42.2948C73.9425 44.8359 77.0353 46.7516 80.44 47.89C80.7052 47.89 80.9596 47.9954 81.1471 48.1829C81.3346 48.3704 81.44 48.6248 81.44 48.89C81.44 49.1552 81.3346 49.4096 81.1471 49.5971C80.9596 49.7846 80.7052 49.89 80.44 49.89C77.0348 51.0228 73.9401 52.9327 71.4008 55.4685C68.8615 58.0043 66.9474 61.0964 65.81 64.5C65.776 64.7384 65.6572 64.9565 65.4753 65.1143C65.2935 65.2721 65.0608 65.3589 64.82 65.3589C64.5792 65.3589 64.3465 65.2721 64.1647 65.1143C63.9828 64.9565 63.864 64.7384 63.83 64.5ZM42.489 73.5349C43.9414 74.9856 45.0372 76.7537 45.69 78.7C45.729 78.8177 45.8041 78.9201 45.9047 78.9926C46.0052 79.0652 46.126 79.1043 46.25 79.1043C46.374 79.1043 46.4948 79.0652 46.5953 78.9926C46.6959 78.9201 46.771 78.8177 46.81 78.7C47.4628 76.7537 48.5586 74.9856 50.011 73.5349C51.4635 72.0842 53.2329 70.9905 55.18 70.34C55.2965 70.2984 55.3973 70.2217 55.4686 70.1206C55.5398 70.0194 55.5781 69.8987 55.5781 69.775C55.5781 69.6513 55.5398 69.5306 55.4686 69.4294C55.3973 69.3283 55.2965 69.2516 55.18 69.21C53.2314 68.5623 51.4606 67.4696 50.0077 66.0185C48.5549 64.5674 47.46 62.7978 46.81 60.85C46.771 60.7323 46.6959 60.6299 46.5953 60.5574C46.4948 60.4848 46.374 60.4457 46.25 60.4457C46.126 60.4457 46.0052 60.4848 45.9047 60.5574C45.8041 60.6299 45.729 60.7323 45.69 60.85C45.04 62.7978 43.9451 64.5674 42.4923 66.0185C41.0394 67.4696 39.2686 68.5623 37.32 69.21C37.2035 69.2516 37.1027 69.3283 37.0314 69.4294C36.9602 69.5306 36.9219 69.6513 36.9219 69.775C36.9219 69.8987 36.9602 70.0194 37.0314 70.1206C37.1027 70.2217 37.2035 70.2984 37.32 70.34C39.2671 70.9905 41.0365 72.0842 42.489 73.5349Z" fill="#EB1A0C"/>
<path d="M87.9479 10.6792C87.9144 10.6438 87.8686 10.6227 87.82 10.6201H8.18C8.13136 10.6227 8.08557 10.6438 8.05207 10.6792C8.01857 10.7145 7.99993 10.7614 8 10.8101V23.0001H88V10.8101C88.0001 10.7614 87.9814 10.7145 87.9479 10.6792Z" fill="black"/>
<path d="M87.82 10.6201C87.8686 10.6227 87.9144 10.6438 87.9479 10.6792C87.9814 10.7145 88.0001 10.7614 88 10.8101V23.0001H8V10.8101C7.99993 10.7614 8.01857 10.7145 8.05207 10.6792C8.08557 10.6438 8.13136 10.6227 8.18 10.6201H87.82ZM87.82 8.62012H8.18C7.60091 8.62276 7.04644 8.85466 6.6379 9.26508C6.22935 9.6755 5.99999 10.231 6 10.8101V25.0001H90V10.8101C90 10.231 89.7707 9.6755 89.3621 9.26508C88.9536 8.85466 88.3991 8.62276 87.82 8.62012Z" fill="white"/>
<path d="M13.58 19.12C14.8668 19.12 15.91 18.0768 15.91 16.79C15.91 15.5032 14.8668 14.46 13.58 14.46C12.2932 14.46 11.25 15.5032 11.25 16.79C11.25 18.0768 12.2932 19.12 13.58 19.12Z" fill="white"/>
<path d="M20.58 19.12C21.8668 19.12 22.91 18.0768 22.91 16.79C22.91 15.5032 21.8668 14.46 20.58 14.46C19.2932 14.46 18.25 15.5032 18.25 16.79C18.25 18.0768 19.2932 19.12 20.58 19.12Z" fill="white"/>
<path d="M27.58 19.12C28.8668 19.12 29.91 18.0768 29.91 16.79C29.91 15.5032 28.8668 14.46 27.58 14.46C26.2932 14.46 25.25 15.5032 25.25 16.79C25.25 18.0768 26.2932 19.12 27.58 19.12Z" fill="white"/>
<path d="M63.83 64.5C62.6965 61.0908 60.7842 57.9927 58.2447 55.4515C55.7052 52.9102 52.6084 50.9958 49.2 49.86C48.9348 49.86 48.6804 49.7546 48.4929 49.5671C48.3054 49.3796 48.2 49.1252 48.2 48.86C48.2 48.5948 48.3054 48.3404 48.4929 48.1529C48.6804 47.9654 48.9348 47.86 49.2 47.86C52.6052 46.7272 55.6999 44.8173 58.2392 42.2815C60.7784 39.7457 62.6926 36.6536 63.83 33.25C63.83 32.9848 63.9354 32.7304 64.1229 32.5429C64.3104 32.3554 64.5648 32.25 64.83 32.25C65.0952 32.25 65.3496 32.3554 65.5371 32.5429C65.7246 32.7304 65.83 32.9848 65.83 33.25C66.9614 36.657 68.8707 39.7537 71.4066 42.2948C73.9425 44.8359 77.0353 46.7516 80.44 47.89C80.7052 47.89 80.9596 47.9954 81.1471 48.1829C81.3346 48.3704 81.44 48.6248 81.44 48.89C81.44 49.1552 81.3346 49.4096 81.1471 49.5971C80.9596 49.7846 80.7052 49.89 80.44 49.89C77.0348 51.0228 73.9401 52.9327 71.4008 55.4685C68.8616 58.0043 66.9474 61.0964 65.81 64.5C65.776 64.7384 65.6572 64.9565 65.4753 65.1143C65.2935 65.2721 65.0608 65.3589 64.82 65.3589C64.5792 65.3589 64.3465 65.2721 64.1647 65.1143C63.9828 64.9565 63.864 64.7384 63.83 64.5Z" fill="black"/>
<path d="M45.69 78.7C45.0372 76.7537 43.9414 74.9856 42.489 73.5349C41.0365 72.0842 39.2671 70.9905 37.32 70.34C37.2035 70.2984 37.1027 70.2217 37.0314 70.1206C36.9602 70.0194 36.9219 69.8987 36.9219 69.775C36.9219 69.6513 36.9602 69.5306 37.0314 69.4294C37.1027 69.3283 37.2035 69.2516 37.32 69.21C39.2686 68.5623 41.0394 67.4696 42.4923 66.0185C43.9451 64.5674 45.04 62.7978 45.69 60.85C45.729 60.7323 45.8041 60.6299 45.9047 60.5574C46.0052 60.4848 46.126 60.4457 46.25 60.4457C46.374 60.4457 46.4948 60.4848 46.5953 60.5574C46.6959 60.6299 46.771 60.7323 46.81 60.85C47.46 62.7978 48.5549 64.5674 50.0077 66.0185C51.4606 67.4696 53.2314 68.5623 55.18 69.21C55.2965 69.2516 55.3973 69.3283 55.4686 69.4294C55.5398 69.5306 55.5781 69.6513 55.5781 69.775C55.5781 69.8987 55.5398 70.0194 55.4686 70.1206C55.3973 70.2217 55.2965 70.2984 55.18 70.34C53.2329 70.9905 51.4635 72.0842 50.011 73.5349C48.5586 74.9856 47.4628 76.7537 46.81 78.7C46.771 78.8177 46.6959 78.9201 46.5953 78.9926C46.4948 79.0652 46.374 79.1043 46.25 79.1043C46.126 79.1043 46.0052 79.0652 45.9047 78.9926C45.8041 78.9201 45.729 78.8177 45.69 78.7Z" fill="black"/>
</svg>
</div><div class="_header-text_1egs7_25"><h3 class="_header-title_1egs7_30">The future of business starts with developers</h3></div><div class="_header-cta_1egs7_43"><a data-variant="text" data-color-mode="dark" data-size="normal" href="/request-a-demo" url="/request-a-demo" class="_button_wofj8_1">Learn more</a></div></header><div class="_tab-panel_srtdo_83" role="tabpanel" data-value="Why?" data-state="active"><div class="_item-grid_srtdo_92"><a href="/company" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Company<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">The team behind better online experiences</span></a><a href="/network-map" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Network Map<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">A new architecture for the modern internet</span></a><a href="/company/analyst-relations" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Industry Analyst Relations<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">See what industry analysts say about Fastly</span></a><a href="/press" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">News<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Recent updates and announcements</span></a><a href="/fastly-platform" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Platform<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">The platform behind better, faster and more secure digital experiences</span></a><a href="/customers" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Customer Stories<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">See how the best of the web succeed</span></a><a href="/events" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Events<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Connect with Fastly at an event</span></a><a href="/about/careers" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Careers<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Join the team that&#39;s building a better internet</span></a></div></div></div></mega-menu><mega-menu id="dropdown-5plfLUYXwULycD5pW2MINF" role="region" aria-labelledby="trigger-5plfLUYXwULycD5pW2MINF" data-visible="false" data-default-tab="tab-0" class="_mega-menu_srtdo_25 _with-tabs_srtdo_102"><div class="_mega-menu-content_srtdo_64"><header class="_header_1egs7_3"><div class="_header-icon_1egs7_12"><svg fill="none" height="40" viewBox="0 0 40 40" width="40" xmlns="http://www.w3.org/2000/svg"><path d="m13.6959 31.3735 11.1958-11.1959 6.4818 6.4818-8.8388 8.8388c-1.3017 1.3018-3.4123 1.3018-4.714 0z" fill="#f60"/><path d="m20.1777 15.4636 6.4818-6.48178 8.8388 8.83878c1.3018 1.3018 1.3018 3.4123 0 4.7141l-4.1248 4.1247z" fill="#d0ff00"/><path d="m4.85705 22.5347c-1.30175-1.3018-1.30175-3.4123 0-4.7141l4.12479-4.1248 11.19586 11.1959-6.4818 6.4818z" fill="#80144e"/><path d="m8.98184 13.6958 8.83876-8.83876c1.3018-1.30174 3.4123-1.30174 4.7141 0l4.1248 4.12478-11.1959 11.19578z" fill="#006aff"/></svg></div><div class="_header-text_1egs7_25"><h3 class="_header-title_1egs7_30">The Fastly Edge Cloud Platform</h3></div><div class="_header-cta_1egs7_43"><a data-variant="text" data-color-mode="dark" data-size="normal" href="/products" url="/products" class="_button_wofj8_1">See All Products</a></div></header><div class="_tab-list_srtdo_73" role="tablist" aria-orientation="vertical"><button type="button" role="tab" class="_tab-trigger_1nges_3" id="trigger-6pT7ZuBdHbeCkYkpWcFBZG" data-value="6pT7ZuBdHbeCkYkpWcFBZG" data-state="active" aria-selected="true" tabindex="0"><svg fill="none" height="40" viewBox="0 0 40 40" width="40" xmlns="http://www.w3.org/2000/svg"><g fill="#80144e"><path d="m10.8607 22.964c1.637 0 2.9641-1.3271 2.9641-2.9641s-1.3271-2.9641-2.9641-2.9641c-1.63702 0-2.96408 1.3271-2.96408 2.9641s1.32706 2.9641 2.96408 2.9641z"/><path d="m29.1391 22.964c1.637 0 2.9641-1.3271 2.9641-2.9641s-1.3271-2.9641-2.9641-2.9641-2.9641 1.3271-2.9641 2.9641 1.3271 2.9641 2.9641 2.9641z"/><path d="m19.9999 13.805c1.637 0 2.9641-1.327 2.9641-2.9641 0-1.63697-1.3271-2.96404-2.9641-2.96404s-2.9641 1.32707-2.9641 2.96404c0 1.6371 1.3271 2.9641 2.9641 2.9641z"/><path d="m19.9987 32.123c1.637 0 2.9641-1.3271 2.9641-2.9641s-1.3271-2.9641-2.9641-2.9641-2.9641 1.3271-2.9641 2.9641 1.3271 2.9641 2.9641 2.9641z"/></g><path clip-rule="evenodd" d="m5.67784 20.9082c-.5016-.5016-.5016-1.3149 0-1.8165l13.41386-13.41385c.5016-.5016 1.3148-.5016 1.8164 0l13.4139 13.41385c.5016.5016.5016 1.3149 0 1.8165l-13.4139 13.4139c-.5016.5016-1.3148.5016-1.8164 0zm14.32206-7.1032c.7386 0 1.4142-.2701 1.9332-.717l4.9682 4.9682c.2627-.3022.5856-.5507.95-.7267l-5.1874-5.1874c.1922-.3928.3001-.8344.3001-1.3012 0-1.63697-1.3271-2.96404-2.9641-2.96404s-2.9641 1.32707-2.9641 2.96404c0 1.6371 1.3271 2.9641 2.9641 2.9641zm-2.6639-1.6628-5.1874 5.1873c-.3894-.1882-.8264-.2937-1.2879-.2937-1.63702 0-2.96408 1.3271-2.96408 2.9641s1.32706 2.9641 2.96408 2.9641c.4615 0 .8984-.1055 1.2879-.2937l5.1866 5.1866c.1778-.3631.4277-.6845.7311-.9456l-4.9677-4.9677c.4524-.5204.7262-1.2001.7262-1.9437s-.2738-1.4233-.7262-1.9436l4.9683-4.9683c-.3033-.2611-.5532-.5826-.7309-.9458zm5.3271 15.7164 5.1883-5.1882c.3894.1881.8262.2936 1.2877.2936 1.637 0 2.9641-1.3271 2.9641-2.9641s-1.3271-2.9641-2.9641-2.9641-2.9641 1.3271-2.9641 2.9641c0 .7977.3152 1.5217.8276 2.0545-.0347-.036-.0684-.0729-.1013-.1107l-4.9688 4.9688c-.5191-.4472-1.1949-.7177-1.9338-.7177-1.637 0-2.9641 1.3271-2.9641 2.9641s1.3271 2.9641 2.9641 2.9641 2.9641-1.3271 2.9641-2.9641c0-.4664-.1077-.9077-.2997-1.3003z" fill="#f4bedb" fill-rule="evenodd"/><path d="m12.1486 17.3295c.3645.1761.6874.4246.95.7268l4.9683-4.9683c-.3033-.2611-.5532-.5826-.7309-.9458z" fill="#4d1935"/><path d="m22.6639 12.1421c-.1777.3632-.4275.6847-.7308.9459l4.9682 4.9682c.2627-.3022.5856-.5507.95-.7267z" fill="#4d1935"/><path d="m27.8514 22.6704c-.3645-.1761-.6874-.4245-.9501-.7267l-4.9688 4.9688c.3032.2613.553.5828.7306.9461z" fill="#4d1935"/><path d="m17.3352 27.8569c.1778-.3631.4277-.6845.7311-.9456l-4.9677-4.9677c-.2627.3022-.5856.5507-.95.7267z" fill="#4d1935"/><path clip-rule="evenodd" d="m2.38905 23.3588c-1.852066-1.8521-1.852067-4.8549 0-6.7069l14.26275-14.26284c1.8521-1.852076 4.8549-1.85208 6.7069-.00001l14.2523 14.25225c1.852 1.8521 1.852 4.8549 0 6.7069l-14.2628 14.2629c-1.8521 1.852-4.8549 1.852-6.7069 0zm.83836-5.8686 14.26279-14.26278c1.389-1.38905 3.6411-1.38905 5.0302 0l14.2522 14.25228c1.389 1.389 1.389 3.6411 0 5.0302l-14.2628 14.2628c-1.389 1.389-3.6411 1.3891-5.0302 0l-14.25219-14.2523c-1.38904-1.389-1.38904-3.6411 0-5.0302z" fill="#000" fill-rule="evenodd"/><path clip-rule="evenodd" d="m5.67784 19.0917c-.5016.5016-.5016 1.3149 0 1.8165l13.41386 13.4139c.5016.5016 1.3148.5016 1.8164 0l13.4139-13.4139c.5016-.5016.5016-1.3149 0-1.8165l-13.4139-13.41385c-.5016-.5016-1.3148-.5016-1.8164 0zm-.76849-.7685c-.92603.9261-.92603 2.4275 0 3.3535l13.41385 13.4139c.926.926 2.4274.926 3.3535 0l13.4138-13.4139c.926-.926.926-2.4274 0-3.3535l-13.4138-13.41384c-.9261-.92604-2.4275-.92604-3.3535 0z" fill="#4d1935" fill-rule="evenodd"/></svg><div><span class="_tab-trigger-title_1nges_31">Network Services</span></div></button><button type="button" role="tab" class="_tab-trigger_1nges_3" id="trigger-4S0LnYvfinjZ5OUGftdjzN" data-value="4S0LnYvfinjZ5OUGftdjzN" data-state="inactive" aria-selected="false" tabindex="-1"><svg fill="none" height="40" viewBox="0 0 40 40" width="40" xmlns="http://www.w3.org/2000/svg"><path clip-rule="evenodd" d="m19.7648.978263c.337-.193016.7509-.193196 1.0881-.000475l15.9137 9.095412c.3349.1914.5568.5489.55.9571-.1832 10.8772-6.5896 23.1352-16.512 28.0411-.3195.158-.6971.1482-1.0077-.0245-10.18184-5.6587-16.35296-16.1589-16.46348-28.0151-.0037-.3973.2092-.763.5504-.9584zm16.4326 10.785237c.02-.4559-.2236-.8796-.6198-1.1061l-14.6474-8.37171c-.3847-.21986-.857-.21966-1.2415.00054l-14.62329 8.37477c-.39254.2248-.63487.6451-.62071 1.0972.34265 10.9412 6.0301 20.5882 15.3088 26.0015.3549.207.7919.2186 1.1545.0253 8.9972-4.7946 14.8472-15.9597 15.2894-26.0215z" fill="#000" fill-rule="evenodd"/><path d="m33.528 13.1819c-.1946 8.4848-5.1946 16.8181-12.5081 21.7037l-.1454.0853c-.1604.0903-.3409.2741-.5213.2792-.1956 0-.4011-.1789-.5716-.2792l-.1604-.0904c-8.7878-5.7138-12.49805-14.8805-12.49805-21.6835v-.1656c0-.3914.21056-.7528.54644-.9535l12.11201-6.99533c.1755-.10037.376-.15055.5716-.14553.1804 0 .3609.05018.5213.14553l11.9667 6.91503c.4261.2459.6868.6976.6868 1.1893z" fill="#f60"/><path clip-rule="evenodd" d="m34.6113 13.182c-.0017-.8766-.4683-1.6836-1.2281-2.1223l-11.9619-6.91228c-.3174-.18709-.6807-.29105-1.0541-.29359-.391-.00749-.7817.09299-1.1234.28845l-12.11601 6.99762-.01392.0082c-.65404.3908-1.07405 1.1002-1.07405 1.8834v.1656c0 7.1474 3.87743 16.6662 12.99088 22.5918l.0289.0188.1781.1002c.0116.0072.031.0199.0765.0503l.0038.0025c.0438.0292.1138.0759.1899.1208.1307.077.4428.252.8453.252h.015l.0151-.0004c.2226-.0062.4061-.066.5344-.1215.1275-.055.2316-.1195.3002-.1648.0533-.0351.1105-.0761.143-.0993.0068-.0049.0124-.0089.0168-.012.0205-.0145.0309-.0216.0345-.024l.1832-.1075.0263-.0175c7.5719-5.0582 12.7857-13.7017 12.9894-22.5797l.0002-.0198m-1.0833-.0001v-.005c0-.0041-.0001-.0082-.0001-.0123-.0061-.485-.2656-.929-.6867-1.172l-11.9667-6.91503c-.1604-.09535-.3409-.14553-.5213-.14553-.1956-.00502-.3961.04516-.5716.14553l-12.11201 6.99533c-.33588.2007-.54644.5621-.54644.9535v.1656c0 6.803 3.71025 15.9697 12.49805 21.6835l.1604.0904c.0413.0243.0847.0533.1295.0832.14.0934.2939.196.4421.196.125-.0035.2501-.0928.3685-.1774.0525-.0375.1036-.0741.1528-.1018l.1454-.0853c7.312-4.8846 12.3116-13.2156 12.5081-21.6987z" fill="#852100" fill-rule="evenodd"/><path clip-rule="evenodd" d="m32.4445 13.1789c-.1934 8.0742-4.9659 16.0775-12.0004 20.7885l-.1119.0656-.0041.0024-.145-.0817c-8.4416-5.5034-11.97666-14.3053-11.97666-20.7567v-.1656s-.00009-.0027.00277-.0077c.00274-.0047.00725-.0099.01368-.0143l12.09661-6.98642.0065-.00253.0058-.00022 11.9673 6.91547c.0885.051.1427.1418.1454.2432zm1.0835.008c-.1965 8.4831-5.1961 16.8141-12.5081 21.6987l-.1454.0853c-.0492.0277-.1003.0643-.1528.1018-.1184.0846-.2435.1739-.3685.1774-.1482 0-.3021-.1026-.4421-.196-.0448-.0299-.0882-.0589-.1295-.0832l-.1604-.0904c-8.7878-5.7138-12.49805-14.8805-12.49805-21.6835v-.1656c0-.3914.21056-.7528.54644-.9535l12.11201-6.99533c.1755-.10037.376-.15055.5716-.14553.1804 0 .3609.05018.5213.14553l11.9667 6.91503c.4211.243.6806.687.6867 1.172l.0001.0123zm-13.1749 21.2045v-.2246c.0177 0 .0345.0006.0505.0017l.046.0783z" fill="#ffa66b" fill-rule="evenodd"/><path d="m20.9455 20.739c1.2152-.2812 2.121-1.3713 2.121-2.6732 0-1.5152-1.2271-2.7436-2.7409-2.7436s-2.7409 1.2284-2.7409 2.7436c0 1.3019.9058 2.3919 2.1209 2.6732l-1.2524 2.3966c-.2675.508.0713 1.1382.6122 1.1382h2.5203c.5409 0 .8797-.6302.6123-1.1382z" fill="#ffd1b3"/></svg><div><span class="_tab-trigger-title_1nges_31">Security</span></div></button><button type="button" role="tab" class="_tab-trigger_1nges_3" id="trigger-6K9d7FoSjkN2pNhkauTctE" data-value="6K9d7FoSjkN2pNhkauTctE" data-state="inactive" aria-selected="false" tabindex="-1"><svg fill="none" height="40" viewBox="0 0 40 40" width="40" xmlns="http://www.w3.org/2000/svg"><path clip-rule="evenodd" d="m10.4771 6.78533-6.79754 11.68517c-.56559.9722-.56559 2.1701 0 3.1424l6.79754 11.6851c.5656.9723 1.6108 1.5712 2.742 1.5712h13.595c1.1312 0 2.1765-.5989 2.7421-1.5712l6.7975-11.6851c.5656-.9723.5656-2.1702 0-3.1424l-6.7975-11.68517c-.5656-.97228-1.6109-1.57122-2.7421-1.57122h-13.595c-1.1312 0-2.1764.59894-2.742 1.57122zm-7.71155 11.16137c-.75413 1.2964-.75413 2.8936 0 4.1899l6.7975 11.6852c.75415 1.2963 2.14785 2.0949 3.65605 2.0949h13.595c1.5083 0 2.902-.7986 3.6561-2.0949l6.7975-11.6852c.7541-1.2963.7541-2.8935 0-4.1899l-6.7975-11.68511c-.7541-1.29637-2.1478-2.09496-3.6561-2.09496h-13.595c-1.5082 0-2.9019.79859-3.65605 2.09496z" fill="#000" fill-rule="evenodd"/><path d="m6.52948 21.0474c-.36164-.6217-.36164-1.3897 0-2.0114l5.87262-10.09525c.3581-.61561 1.0166-.99434 1.7288-.99434h11.7715c.7122 0 1.3707.37873 1.7288.99434l5.8726 10.09525c.3617.6217.3617 1.3897 0 2.0114l-5.8726 10.0952c-.3581.6156-1.0166.9944-1.7288.9944h-11.7715c-.7122 0-1.3707-.3788-1.7288-.9944z" fill="#d0ff00"/><path clip-rule="evenodd" d="m13.3385 9.48543-5.87261 10.09527c-.16575.2849-.16575.6369 0 .9219l5.87261 10.0952c.1642.2822.466.4558.7924.4558h11.7715c.3264 0 .6282-.1736.7924-.4558l5.8726-10.0952c.1658-.285.1658-.637 0-.9219l-5.8726-10.09527c-.1642-.28216-.466-.45574-.7924-.45574h-11.7715c-.3264 0-.6282.17358-.7924.45574zm-6.80902 9.55057c-.36164.6217-.36164 1.3897 0 2.0114l5.87262 10.0952c.3581.6156 1.0166.9944 1.7288.9944h11.7715c.7122 0 1.3707-.3788 1.7288-.9944l5.8726-10.0952c.3617-.6217.3617-1.3897 0-2.0114l-5.8726-10.09525c-.3581-.61561-1.0166-.99434-1.7288-.99434h-11.7715c-.7122 0-1.3707.37873-1.7288.99434z" fill="#355000" fill-rule="evenodd"/><g fill="#4aa800"><path d="m21.2479 9.0297v6.7785c0 2.3523 1.7362 4.3022 4.0062 4.6563-.0225-.1377-.0343-.2789-.0343-.4228 0-.2183.027-.4303.0777-.633-1.7055-.3246-2.9942-1.8132-2.9942-3.6005v-6.7785z"/><path d="m29.078 26.501h-9.1141c.0346.1693.0527.3445.0527.5239 0 .1793-.0181.3544-.0527.5236h8.5047z"/><path d="m8.29586 21.9292h3.26644c2.623 0 4.7493-2.1104 4.7493-4.7136v-.9194c-.2047.0505-.4188.0774-.6393.0774-.1416 0-.2805-.0111-.4161-.0324v.8744c0 2.0247-1.6538 3.6661-3.6939 3.6661h-3.87579z"/><path d="m7.04255 21.9292-.49622-.853c.00245.0043.00493.0086.00742.0129z"/></g><path d="m15.6723 16.3736c1.4573 0 2.6386-1.1724 2.6386-2.6186 0-1.4463-1.1813-2.6187-2.6386-2.6187-1.4572 0-2.6385 1.1724-2.6385 2.6187 0 1.4462 1.1813 2.6186 2.6385 2.6186z" fill="#427100"/><path d="m17.3781 29.6437c1.4572 0 2.6385-1.1725 2.6385-2.6188s-1.1813-2.6187-2.6385-2.6187-2.6385 1.1725-2.6385 2.6187c0 1.4463 1.1813 2.6188 2.6385 2.6188z" fill="#427100"/><path d="m27.8584 22.6604c1.4572 0 2.6385-1.1724 2.6385-2.6187 0-1.4462-1.1813-2.6187-2.6385-2.6187s-2.6386 1.1724-2.6386 2.6187 1.1814 2.6187 2.6386 2.6187z" fill="#427100"/></svg><div><span class="_tab-trigger-title_1nges_31">Compute</span></div></button><button type="button" role="tab" class="_tab-trigger_1nges_3" id="trigger-46BOZIWrTbuRvtPCmgz5iz" data-value="46BOZIWrTbuRvtPCmgz5iz" data-state="inactive" aria-selected="false" tabindex="-1"><svg fill="none" height="40" viewBox="0 0 40 40" width="40" xmlns="http://www.w3.org/2000/svg"><path d="m35.1173 35.0132c-1.2939 1.2937-3.3915 1.2937-4.6854 0l-4.5795-4.5788c.9274-.5916 1.815-1.2937 2.6231-2.1061.8082-.8125 1.4927-1.6602 2.0668-2.5698l4.5706 4.57c1.2939 1.2937 1.2939 3.391 0 4.6847z" fill="#004099"/><path clip-rule="evenodd" d="m17.4237 32.0421c8.0297 0 14.5391-6.5085 14.5391-14.5371 0-8.02857-6.5094-14.53705-14.5391-14.53705-8.02973 0-14.5391 6.50848-14.5391 14.53705 0 8.0287 6.50937 14.5371 14.5391 14.5371zm15.5904-14.5371c0 8.6092-6.9801 15.5883-15.5904 15.5883-8.61037 0-15.59045-6.9791-15.59045-15.5883 0-8.60914 6.98008-15.58825 15.59045-15.58825 8.6103 0 15.5904 6.97911 15.5904 15.58825z" fill="#000" fill-rule="evenodd"/><path d="m21.5595 14.8264c1.4366 0 2.6012-1.1645 2.6012-2.601 0-1.4364-1.1646-2.60087-2.6012-2.60087-1.4367 0-2.6013 1.16447-2.6013 2.60087 0 1.4365 1.1646 2.601 2.6013 2.601z" fill="#9df"/><g clip-rule="evenodd" fill-rule="evenodd"><path d="m29.7092 17.5051c0 6.7841-5.5004 12.2837-12.2855 12.2837-6.785 0-12.28539-5.4996-12.28539-12.2837s5.50039-12.28374 12.28539-12.28374c6.7851 0 12.2855 5.49964 12.2855 12.28374zm-5.5485-5.2797c0 1.4365-1.1646 2.601-2.6012 2.601-1.4367 0-2.6013-1.1645-2.6013-2.601 0-1.4364 1.1646-2.60087 2.6013-2.60087 1.4366 0 2.6012 1.16447 2.6012 2.60087z" fill="#28a2fd"/><path d="m30.7925 17.5051c0 7.3826-5.9856 13.3671-13.3688 13.3671s-13.36873-5.9845-13.36873-13.3671c0-7.3825 5.98553-13.36703 13.36873-13.36703s13.3688 5.98453 13.3688 13.36703zm-13.3688 12.2837c6.7851 0 12.2855-5.4996 12.2855-12.2837s-5.5004-12.28374-12.2855-12.28374c-6.785 0-12.28539 5.49964-12.28539 12.28374s5.50039 12.2837 12.28539 12.2837z" fill="#004099"/><path d="m29.7499 17.4918c0 6.7886-5.5033 12.2917-12.2916 12.2917-6.7884 0-12.29172-5.5031-12.29172-12.2917 0-6.7887 5.50332-12.29175 12.29172-12.29175 6.7883 0 12.2916 5.50305 12.2916 12.29175zm-12.2916 11.2955c6.2383 0 11.2956-5.0572 11.2956-11.2955 0-6.2384-5.0573-11.29557-11.2956-11.29557-6.2384 0-11.29566 5.05717-11.29566 11.29557 0 6.2383 5.05726 11.2955 11.29566 11.2955z" fill="#0080ff"/></g></svg><div><span class="_tab-trigger-title_1nges_31">Observability</span></div></button></div><div class="_tab-panel_srtdo_83" role="tabpanel" data-value="6pT7ZuBdHbeCkYkpWcFBZG" data-state="active" aria-labelledby="trigger-6pT7ZuBdHbeCkYkpWcFBZG"><div class="_item-grid_srtdo_92"><a href="/products/cdn" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Content Delivery (CDN)<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Deliver fast, personalized experiences globally</span></a><a href="/products/live-streaming" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Live Streaming<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Deliver seamless live streaming experiences</span></a><a href="/products/streaming-media/video-on-demand" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Streaming Video (VoD)<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Deliver exceptional on-demand video experiences</span></a><a href="/products/streaming-media/media-shield" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Media Shield <svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Optimize multi-CDN deployments</span></a><a href="/products/perform/otfp" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">On-the-Fly Packager<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Dynamically package on-demand video content in real time</span></a><a href="/products/image-optimizer" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Image Optimizer<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Rapid image processing at the edge</span></a><a href="/products/load-balancing" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Load Balancer<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Granular control over routing decisions</span></a><a href="/products/tls-encryption" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">TLS Encryption<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Reduce the complexity of TLS management</span></a><a href="/products/ways-to-connect" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Origin Connect <svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Connect directly to Fastly</span></a><a href="/products/ip-addresses" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">IP Addresses<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Easily manage IP addresses</span></a><a href="/products/quic-http-3" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">HTTP/3 &amp; QUIC<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Modern protocols</span></a><a href="/products/domain-research-api" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Domain Research API<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Instant, accurate domain name discovery</span></a><a href="/products/storage" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Object Storage<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Get direct access to large files at the edge with zero egress fees</span></a></div></div><div class="_tab-panel_srtdo_83" role="tabpanel" data-value="4S0LnYvfinjZ5OUGftdjzN" data-state="inactive" aria-labelledby="trigger-4S0LnYvfinjZ5OUGftdjzN"><div class="_item-grid_srtdo_92"><a href="/products/web-application-api-protection" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Next-Gen WAF<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Modern web app and API security, anywhere</span></a><a href="/products/bot-management" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Bot Management<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Detect and mitigate bot attacks</span></a><a href="/products/ddos-protection" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">DDoS Protection<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Automated mitigation of disruptive and distributed attacks</span></a><a href="/products/api-security" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">API Security<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Secure your API endpoints</span></a><a href="/products/fastly-client-side-protection" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Client-Side Protection<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Defend against client-side attacks</span></a><a href="/products/fastly-ai-bot-management" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">AI Bot Management<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Stop AI bots from scraping website content</span></a></div></div><div class="_tab-panel_srtdo_83" role="tabpanel" data-value="6K9d7FoSjkN2pNhkauTctE" data-state="inactive" aria-labelledby="trigger-6K9d7FoSjkN2pNhkauTctE"><div class="_item-grid_srtdo_92"><a href="/products/edge-compute" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Edge Compute<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Take your apps to the edge — our instant platform helps you build amazing experiences for your users</span></a><a href="/products/kv-store" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Key Value Store<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">The fastest key value store you can get, but as easy to use as your familiar database tools</span></a><a href="/products/real-time" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Websockets &amp; Fanout <svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Real-time messaging, at global scale, with complete personalization and easy setup</span></a><a href="/products/sdks" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Developer SDKs<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Program the same services we use to build Fastly products</span></a><a href="/products/compute-enterprise" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Enterprise Serverless<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">The most powerful serverless platform, built on open standards and integrated with Fastly’s full suite of products</span></a><a href="/products/ai" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">AI<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Accelerate your AI workloads and improve efficiency with semantic caching</span></a><a href="/products/storage" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Object Storage<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Get direct access to large files at the edge with zero egress fees</span></a><a href="/products/cache" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Programmable Cache<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Get full programmatic access to the same legendary caching that powers our CDN.</span></a><a href="/products/mcp-server" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">MCP Server<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">AI-powered control for your Fastly services.</span></a></div></div><div class="_tab-panel_srtdo_83" role="tabpanel" data-value="46BOZIWrTbuRvtPCmgz5iz" data-state="inactive" aria-labelledby="trigger-46BOZIWrTbuRvtPCmgz5iz"><div class="_item-grid_srtdo_92"><a href="/products/logging" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Real-time Logging<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Stream and analyze logs in real-time</span></a><a href="/products/metrics" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Edge Observer<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Explore live and historical traffic data</span></a><a href="/products/metrics/domain-inspector" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Domain Inspector<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Assess domain level insights</span></a><a href="/products/metrics/origin-inspector" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Origin Inspector<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">View complete origin to edge insights</span></a><a href="/products/alerts" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Alerts<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Create notifications for service-related metrics</span></a><a href="/products/logexplorer-and-insights" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Log Explorer &amp; Insights<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Interact with actionable insights</span></a></div></div></div></mega-menu><mega-menu id="dropdown-7nMUmUownQUZIWjKC3MXSE" role="region" aria-labelledby="trigger-7nMUmUownQUZIWjKC3MXSE" data-visible="false" data-default-tab="tab-0" class="_mega-menu_srtdo_25"><div class="_mega-menu-content_srtdo_64"><header class="_header_1egs7_3"><div class="_header-icon_1egs7_12"><svg width="84" height="84" viewBox="0 0 84 84" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M41.957 46.45C49.6006 46.45 55.797 40.2536 55.797 32.61C55.797 24.9664 49.6006 18.77 41.957 18.77C34.3134 18.77 28.117 24.9664 28.117 32.61C28.117 40.2536 34.3134 46.45 41.957 46.45Z" fill="#FF282D"/>
<path d="M67.587 74.06V75.24C66.687 75.96 65.747 76.62 64.777 77.24C57.9769 81.6336 50.053 83.9708 41.957 83.9708C33.861 83.9708 25.9371 81.6336 19.137 77.24C18.137 76.61 17.227 75.95 16.327 75.24V74.06C16.327 70.6942 16.99 67.3614 18.278 64.2518C19.566 61.1423 21.4539 58.3168 23.8339 55.9369C26.2138 53.5569 29.0393 51.669 32.1488 50.381C35.2584 49.093 38.5912 48.43 41.957 48.43C45.3228 48.43 48.6556 49.093 51.7652 50.381C54.8748 51.669 57.7002 53.5569 60.0802 55.9369C62.4601 58.3168 64.348 61.1423 65.6361 64.2518C66.9241 67.3614 67.587 70.6942 67.587 74.06Z" fill="#FF282D"/>
<path d="M41.957 2C50.3029 2.00705 58.4376 4.62444 65.2216 9.48557C72.0056 14.3467 77.0992 21.2081 79.789 29.1086C82.4787 37.0092 82.6299 45.5532 80.2212 53.544C77.8126 61.5347 72.9649 68.572 66.357 73.67C65.537 74.31 64.657 74.94 63.687 75.57C57.2147 79.7566 49.6704 81.9839 41.962 81.9839C34.2536 81.9839 26.7094 79.7566 20.237 75.57C19.237 74.93 18.377 74.3 17.547 73.65C10.9466 68.5491 6.10611 61.5123 3.7028 53.5243C1.29948 45.5363 1.45364 36.9967 4.14371 29.1007C6.83377 21.2046 11.9251 14.3471 18.7053 9.48773C25.4855 4.62838 33.6153 2.01036 41.957 2ZM41.957 0C33.1964 0.00896115 24.6578 2.75716 17.5367 7.85989C10.4155 12.9626 5.0682 20.1644 2.24335 28.4571C-0.58151 36.7499 -0.742516 45.7183 1.78287 54.1071C4.30826 62.4959 9.39361 69.885 16.327 75.24C17.227 75.96 18.167 76.62 19.137 77.24C25.9372 81.6336 33.861 83.9707 41.957 83.9707C50.053 83.9707 57.9769 81.6336 64.777 77.24C65.777 76.61 66.687 75.95 67.587 75.24C74.5205 69.885 79.6058 62.4959 82.1312 54.1071C84.6566 45.7183 84.4956 36.7499 81.6707 28.4571C78.8459 20.1644 73.4986 12.9626 66.3774 7.85989C59.2562 2.75716 50.7177 0.00896115 41.957 0Z" fill="white"/>
<path d="M60 29C61.1046 29 62 29.8954 62 31V35.5C62 36.3284 61.3284 37 60.5 37V41C60.5 42.3807 59.3807 43.5 58 43.5H55.8662C55.6933 43.7989 55.3702 44 55 44C54.4477 44 54 43.5523 54 43C54 42.4477 54.4477 42 55 42C55.3702 42 55.6933 42.2011 55.8662 42.5H58C58.8284 42.5 59.5 41.8284 59.5 41V37H58V32C58 23.1634 50.8365 16 42 16C33.1635 16 26 23.1634 26 32V37H24C22.8954 37 22 36.1046 22 35V31C22 29.8954 22.8954 29 24 29H25.2639C26.6808 21.042 33.6348 15 42 15C50.3652 15 57.3192 21.042 58.7361 29H60Z" fill="white"/>
</svg>
</div><div class="_header-text_1egs7_25"><h3 class="_header-title_1egs7_30">Extraordinary services for exceptional results</h3></div><div class="_header-cta_1egs7_43"><a data-variant="text" data-color-mode="dark" data-size="normal" href="/services" url="/services" class="_button_wofj8_1">See All Services</a></div></header><div class="_tab-panel_srtdo_83" role="tabpanel" data-value="Services" data-state="active"><div class="_item-grid_srtdo_92"><a href="/services/professional-services" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Professional Services<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Expert help to migrate or optimize your delivery service</span></a><a href="/services/live-event-services" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Live Entertainment Services<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Live streaming experiences that scale with your audiences</span></a><a href="/services/support-plans" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Support Plans<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">World class support from start to finish</span></a><a href="/services/managed-cdn" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Managed CDN<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Maximized control and flexibility</span></a><a href="/services/managed-security-service" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Managed Security<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Expertly managed web application protection</span></a><a href="/services/customer-support" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Customer Support<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Fastly Support helping you grow better, together</span></a></div></div></div></mega-menu><mega-menu id="dropdown-3cwp6vqK4KGxwjAcMdV4Wh" role="region" aria-labelledby="trigger-3cwp6vqK4KGxwjAcMdV4Wh" data-visible="false" data-default-tab="tab-0" class="_mega-menu_srtdo_25 _with-tabs_srtdo_102"><div class="_mega-menu-content_srtdo_64"><header class="_header_1egs7_3"><div class="_header-icon_1egs7_12"><svg width="96" height="96" viewBox="0 0 96 96" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M7.9304 28.2499L46.1204 6.65992C46.7088 6.32595 47.3738 6.15039 48.0504 6.15039C48.727 6.15039 49.392 6.32595 49.9804 6.65992L88.1604 28.2499C88.7633 28.5933 89.2645 29.0901 89.6132 29.6899C89.9618 30.2897 90.1455 30.9711 90.1455 31.6649C90.1455 32.3587 89.9618 33.0401 89.6132 33.6399C89.2645 34.2398 88.7633 34.7366 88.1604 35.0799L50.0004 56.6699C49.412 57.0039 48.747 57.1795 48.0704 57.1795C47.3938 57.1795 46.7288 57.0039 46.1404 56.6699L7.9304 35.0799C7.32753 34.7366 6.8263 34.2398 6.47764 33.6399C6.12898 33.0401 5.94531 32.3587 5.94531 31.6649C5.94531 30.9711 6.12898 30.2897 6.47764 29.6899C6.8263 29.0901 7.32753 28.5933 7.9304 28.2499Z" fill="#EB1A0C"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M76.2705 64.3799C78.6221 64.3799 80.9209 65.0773 82.8762 66.3837C84.8315 67.6902 86.3555 69.5472 87.2554 71.7198C88.1553 73.8924 88.3908 76.2831 87.932 78.5895C87.4732 80.896 86.3408 83.0146 84.678 84.6774C83.0151 86.3403 80.8965 87.4727 78.5901 87.9314C76.2837 88.3902 73.893 88.1548 71.7204 87.2548C69.5478 86.3549 67.6908 84.8309 66.3843 82.8756C65.0778 80.9203 64.3805 78.6215 64.3805 76.2699C64.3831 73.1173 65.6367 70.0946 67.8659 67.8653C70.0951 65.6361 73.1179 64.3826 76.2705 64.3799ZM74.9388 83.5224L84.2306 71.1298L82.6304 69.93L74.7222 80.4774L69.8076 75.5628L68.3934 76.977L74.9388 83.5224Z" fill="white"/>
<path d="M76.2705 64.3799C78.6221 64.3799 80.9209 65.0773 82.8762 66.3837C84.8315 67.6902 86.3555 69.5472 87.2554 71.7198C88.1553 73.8924 88.3908 76.2831 87.932 78.5895C87.4732 80.896 86.3408 83.0146 84.678 84.6774C83.0151 86.3403 80.8965 87.4727 78.5901 87.9314C76.2837 88.3902 73.893 88.1548 71.7204 87.2548C69.5478 86.3549 67.6908 84.8309 66.3843 82.8756C65.0778 80.9203 64.3805 78.6215 64.3805 76.2699C64.3831 73.1173 65.6367 70.0946 67.8659 67.8653C70.0951 65.6361 73.1179 64.3826 76.2705 64.3799ZM76.2705 62.3799C73.5229 62.3779 70.8364 63.1909 68.5509 64.7159C66.2654 66.241 64.4835 68.4096 63.4307 70.9475C62.3778 73.4854 62.1013 76.2785 62.6362 78.9736C63.171 81.6686 64.4931 84.1445 66.4352 86.0881C68.3774 88.0316 70.8523 89.3555 73.547 89.8923C76.2417 90.429 79.035 90.1546 81.5736 89.1036C84.1123 88.0525 86.2822 86.2722 87.8089 83.9878C89.3356 81.7034 90.1505 79.0175 90.1505 76.2699C90.1505 72.5878 88.6885 69.0563 86.0857 66.4517C83.483 63.8471 79.9526 62.3826 76.2705 62.3799Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M84.2306 71.1298L74.9388 83.5224L68.3934 76.977L69.8076 75.5628L74.7222 80.4774L82.6304 69.93L84.2306 71.1298Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.4514 37.0693L7.9304 39.0599C7.32753 39.4032 6.8263 39.9 6.47764 40.4999C6.12898 41.0997 5.94531 41.7811 5.94531 42.4749C5.94531 43.1687 6.12898 43.8501 6.47764 44.4499C6.8263 45.0497 7.32753 45.5465 7.9304 45.8899L11.4489 47.879L7.9304 49.8699C7.32753 50.2133 6.8263 50.7101 6.47764 51.3099C6.12898 51.9097 5.94531 52.5911 5.94531 53.2849C5.94531 53.9787 6.12898 54.6601 6.47764 55.2599C6.8263 55.8597 7.32753 56.3566 7.9304 56.6999L11.4505 58.69L7.9304 60.68C7.32753 61.0233 6.8263 61.5202 6.47764 62.12C6.12898 62.7198 5.94531 63.4012 5.94531 64.095C5.94531 64.7888 6.12898 65.4702 6.47764 66.07C6.8263 66.6698 7.32753 67.1666 7.9304 67.51L46.1204 89.1C46.7088 89.434 47.3738 89.6095 48.0504 89.6095C48.727 89.6095 49.392 89.434 49.9804 89.1L63.3981 81.5126C63.1421 80.8847 62.9317 80.2368 62.7693 79.574L49.0004 87.36C48.7134 87.5218 48.3899 87.6078 48.0604 87.61C47.7279 87.6069 47.4014 87.521 47.1104 87.36L8.9204 65.77C8.62272 65.6032 8.37486 65.3601 8.20235 65.0657C8.02984 64.7713 7.9389 64.4362 7.9389 64.095C7.9389 63.7538 8.02984 63.4187 8.20235 63.1243C8.37486 62.8299 8.62272 62.5868 8.9204 62.42L13.4839 59.8395L46.1204 78.2899C46.7088 78.6239 47.3738 78.7994 48.0504 78.7994C48.727 78.7994 49.392 78.6239 49.9804 78.2899L63.5809 70.5991C64.1767 69.2668 64.9761 68.0426 65.9451 66.968L49.0004 76.5499C48.7152 76.7161 48.3905 76.8024 48.0604 76.7999C47.7272 76.8023 47.3993 76.716 47.1104 76.5499L15.4882 58.706L23.0434 54.4337L46.1204 67.4799C46.7088 67.8138 47.3738 67.9894 48.0504 67.9894C48.727 67.9894 49.392 67.8138 49.9804 67.4799L73.0525 54.4331L80.5833 58.6904L73.6064 62.6357C74.48 62.4657 75.3719 62.3793 76.2705 62.3799C76.8302 62.3803 77.3866 62.4144 77.9367 62.4812L82.6121 59.8374L87.1804 62.42C87.4755 62.5889 87.7207 62.8328 87.8913 63.1269C88.0618 63.421 88.1516 63.755 88.1516 64.095C88.1516 64.435 88.0618 64.769 87.8913 65.0631C87.7207 65.3572 87.4755 65.6011 87.1804 65.77L86.0457 66.4116L86.0857 66.4517C86.556 66.9223 86.9891 67.4231 87.383 67.9496L88.1604 67.51C88.7633 67.1666 89.2645 66.6698 89.6132 66.07C89.9618 65.4702 90.1455 64.7888 90.1455 64.095C90.1455 63.4012 89.9618 62.7198 89.6132 62.12C89.2645 61.5202 88.7633 61.0233 88.1604 60.68L84.6421 58.6894L88.1604 56.6999C88.7633 56.3566 89.2645 55.8597 89.6132 55.2599C89.9618 54.6601 90.1455 53.9787 90.1455 53.2849C90.1455 52.5911 89.9618 51.9097 89.6132 51.3099C89.2645 50.7101 88.7633 50.2133 88.1604 49.8699L84.6422 47.8794L88.1604 45.8899C88.7633 45.5465 89.2645 45.0497 89.6132 44.4499C89.9618 43.8501 90.1455 43.1687 90.1455 42.4749C90.1455 41.7811 89.9618 41.0997 89.6132 40.4999C89.2645 39.9 88.7633 39.4032 88.1604 39.0599L84.6431 37.0699L82.6093 38.2205L87.1804 40.7999C87.4755 40.9688 87.7207 41.2126 87.8913 41.5068C88.0618 41.8009 88.1516 42.1349 88.1516 42.4749C88.1516 42.8149 88.0618 43.1488 87.8913 43.443C87.7207 43.7371 87.4755 43.981 87.1804 44.1499L82.6142 46.732L75.0898 42.4749L73.0649 43.6205L80.5872 47.8782L73.0583 52.1356L65.5365 47.8799L63.4994 49.0324L71.0238 53.2861L49.0004 65.7399C48.7152 65.906 48.3905 65.9924 48.0604 65.9899C47.7272 65.9922 47.3993 65.9059 47.1104 65.7399L36.0937 59.5118L25.0771 53.2837L32.6094 49.0243L30.5781 47.8766L23.0453 52.1351L15.5436 47.8942L23.0631 43.6303L21.0087 42.4695L13.4818 46.7286L8.9204 44.1499C8.62272 43.9831 8.37486 43.74 8.20235 43.4456C8.02984 43.1512 7.9389 42.8161 7.9389 42.4749C7.9389 42.1336 8.02984 41.7986 8.20235 41.5042C8.37486 41.2098 8.62272 40.9667 8.9204 40.7999L13.4853 38.2185L11.4514 37.0693ZM82.6148 49.0258L75.0863 53.283L82.6141 57.542L87.1804 54.9599C87.4755 54.791 87.7207 54.5471 87.8913 54.253C88.0618 53.9589 88.1516 53.6249 88.1516 53.2849C88.1516 52.9449 88.0618 52.6109 87.8913 52.3168C87.7207 52.0227 87.4755 51.7788 87.1804 51.6099L82.6148 49.0258ZM13.5128 49.0458L21.0113 53.2849L13.4533 57.5577L8.9204 54.9999C8.62272 54.8331 8.37486 54.59 8.20235 54.2956C8.02984 54.0012 7.9389 53.6661 7.9389 53.3249C7.9389 52.9837 8.02984 52.6486 8.20235 52.3542C8.37486 52.0598 8.62272 51.8167 8.9204 51.6499L13.5128 49.0458Z" fill="white"/>
</svg>
</div><div class="_header-text_1egs7_25"><h3 class="_header-title_1egs7_30">Innovative digital solutions</h3></div><div class="_header-cta_1egs7_43"><a data-variant="text" data-color-mode="dark" data-size="normal" href="/solutions" url="/solutions" class="_button_wofj8_1">See all our solutions</a></div></header><div class="_tab-list_srtdo_73" role="tablist" aria-orientation="vertical"><button type="button" role="tab" class="_tab-trigger_1nges_3" id="trigger-3NrRAhhU7cSwYFO7hy04lM" data-value="3NrRAhhU7cSwYFO7hy04lM" data-state="active" aria-selected="true" tabindex="0"><div><span class="_tab-trigger-title_1nges_31">By Industry</span></div></button><button type="button" role="tab" class="_tab-trigger_1nges_3" id="trigger-Y4qrOfjIHwerhF9po2QbE" data-value="Y4qrOfjIHwerhF9po2QbE" data-state="inactive" aria-selected="false" tabindex="-1"><div><span class="_tab-trigger-title_1nges_31">By Need</span></div></button></div><div class="_tab-panel_srtdo_83" role="tabpanel" data-value="3NrRAhhU7cSwYFO7hy04lM" data-state="active" aria-labelledby="trigger-3NrRAhhU7cSwYFO7hy04lM"><div class="_item-grid_srtdo_92"><a href="/solutions/streaming-media" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Streaming Media<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Deliver stellar live and on-demand streaming</span></a><a href="/solutions/emerging-media" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Emerging Media<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">High performance for emerging media brands</span></a><a href="/solutions/digital-publishing" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Digital Publishing<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Real-time journalism with improved reader experiences</span></a><a href="/solutions/retail-ecommerce" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Retail &amp; eCommerce<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Fast, personalized experiences at scale</span></a><a href="/solutions/finance" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Financial Services<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Integrated security to protect customer data</span></a><a href="/solutions/high-tech" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">High Tech<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Instantly scale your performance as you grow</span></a><a href="/solutions/travel" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Travel &amp; Hospitality<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Online tailored experiences for your guests and visitors</span></a><a href="/solutions/online-education" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Online Education<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Deliver secure learning experiences at scale</span></a><a href="/solutions/gaming" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Gaming<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Fuel your players’ next win with ultra-fast, secure game downloads</span></a><a href="/solutions/igaming" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">iGaming<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Deliver fast, secure, uninterrupted, and engaging gameplays at the edge</span></a></div></div><div class="_tab-panel_srtdo_83" role="tabpanel" data-value="Y4qrOfjIHwerhF9po2QbE" data-state="inactive" aria-labelledby="trigger-Y4qrOfjIHwerhF9po2QbE"><div class="_item-grid_srtdo_92"><a href="/solutions/infrastructure-savings" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Infrastructure Savings<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Achieve lower, more predictable cloud spend</span></a><a href="/solutions/multi-cloud-optimization" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Multi-cloud Optimization<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Reduce complexity and unify cloud resources</span></a><a href="/solutions/customer-trust" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Customer Trust<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Learn more about Fastly’s Customer Trust initiatives</span></a><a href="/solutions/privacy-enablement" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Privacy Enablement<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Learn how to protect your user&#39;s data</span></a><a href="/products/sustainability-dashboard" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Sustainability Dashboard<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">See your electricity use and GHG emissions for the Fastly platform</span></a></div></div></div></mega-menu><mega-menu id="dropdown-2NBNxeRlRxZY2hyGQXRPwb" role="region" aria-labelledby="trigger-2NBNxeRlRxZY2hyGQXRPwb" data-visible="false" data-default-tab="tab-0" class="_mega-menu_srtdo_25"><div class="_mega-menu-content_srtdo_64"><header class="_header_1egs7_3"><div class="_header-icon_1egs7_12"><?xml version="1.0" encoding="UTF-8"?><svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 96"><path d="M48.03,41.64c9.84,0,17.82-7.98,17.82-17.82s-7.98-17.82-17.82-17.82-17.82,7.98-17.82,17.82,7.98,17.82,17.82,17.82ZM48,44.18c18.23,0,33,14.77,33,33h0v12.8H15v-12.78c-.01-18.23,14.75-33.01,32.98-33.02,0,0,.01,0,.02,0Z" style="fill:#ff282e; stroke-width:0px;"/><path d="M33.9,48h52.69c2.21,0,4,1.79,4,4v33.8c0,2.21-1.79,4-4,4h-52.69c-.17,0-.33,0-.49-.03h-13.47c-1.07,0-1.94-.87-1.94-1.94h0v-6.06c0-1.07.87-1.94,1.94-1.94h9.96v-27.83c0-2.21,1.79-4,4-4ZM88,50.61c-.37-.38-.88-.59-1.41-.59v-.02h-52.69c-1.1,0-2,.9-2,2v33.82c0,1.1.9,2,2,2h52.69c1.1,0,2-.9,2-2v-33.8c0-.53-.21-1.04-.59-1.41ZM29.9,81.83h-9.9v5.94h10.42c-.34-.6-.52-1.28-.52-1.97v-3.97Z" style="fill:#000; fill-rule:evenodd; stroke-width:0px;"/><path d="M29.9,85.8c0,.69.18,1.37.52,1.97h-10.42v-5.94h9.9v3.97ZM88,50.61c-.37-.38-.88-.59-1.41-.59v-.02h-52.69c-1.1,0-2,.9-2,2v33.82c0,1.1.9,2,2,2h52.69c1.1,0,2-.9,2-2v-33.8c0-.53-.21-1.04-.59-1.41Z" style="fill:#fff; stroke-width:0px;"/><path d="M61.33,83.65c7.91,0,14.32-6.41,14.32-14.32,0-7.91-6.41-14.33-14.32-14.33s-14.33,6.41-14.33,14.32,6.41,14.32,14.33,14.32h0Z" style="fill:#fff; stroke-width:0px;"/><path d="M61.33,82.48c7.27,0,13.16-5.89,13.16-13.16s-5.89-13.16-13.16-13.16-13.16,5.89-13.16,13.16,5.89,13.16,13.16,13.16ZM75.65,69.33c0,7.91-6.41,14.32-14.32,14.32-7.91,0-14.33-6.41-14.33-14.32s6.41-14.32,14.33-14.32,14.32,6.41,14.32,14.33Z" style="fill:#000; fill-rule:evenodd; stroke-width:0px;"/><path d="M57.55,63.71c.23.23.23.6,0,.82,0,0,0,0,0,0l-4.79,4.79,4.79,4.79c.23.23.23.6,0,.82-.23.23-.6.23-.82,0h0l-5.2-5.2c-.23-.23-.23-.6,0-.82,0,0,0,0,0,0l5.2-5.2c.23-.23.6-.23.82,0,0,0,0,0,0,0ZM65.98,63.71c.23-.23.6-.23.82,0,0,0,0,0,0,0l5.2,5.2c.23.23.23.6,0,.82h0s-5.2,5.2-5.2,5.2c-.23.23-.6.23-.82,0s-.23-.6,0-.82l4.79-4.79-4.79-4.79c-.23-.23-.23-.6,0-.82,0,0,0,0,0,0ZM64.6,62.03c.3.12.45.46.33.76l-5.25,13.51c-.12.3-.45.45-.75.33-.3-.12-.45-.45-.33-.75l5.25-13.51c.12-.3.45-.45.75-.33,0,0,0,0,0,0Z" style="fill:#000; fill-rule:evenodd; stroke-width:0px;"/></svg></div><div class="_header-text_1egs7_25"><h3 class="_header-title_1egs7_30">Empowering every developer to build incredible experiences</h3></div><div class="_header-cta_1egs7_43"><a data-variant="text" data-color-mode="dark" data-size="normal" href="/signup" url="/signup" class="_button_wofj8_1">Try Fastly free</a></div></header><div class="_tab-panel_srtdo_83" role="tabpanel" data-value="Devs" data-state="active"><div class="_item-grid_srtdo_92"><a href="http://fastly.com/documentation/developers" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Developers<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Build something amazing today</span></a><a href="/fast-forward" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Fast Forward<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Creating a more trustworthy internet</span></a><a href="/products/devtools" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Dev Tools<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Dev tools built for teams - with an edge</span></a><a href="/products/sdks" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Developer SDKs<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Program the same services we use to build Fastly products</span></a><a href="https://fastly.com/documentation/developers/community" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Community<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Join developers around the world</span></a><a href="https://www.fastly.com/signup/?signup_source=developer-menu" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Sign up<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Create a free developer account</span></a></div></div></div></mega-menu><mega-menu id="dropdown-4x75k3ubJrX3pMXCqSHyHY" role="region" aria-labelledby="trigger-4x75k3ubJrX3pMXCqSHyHY" data-visible="false" data-default-tab="tab-0" class="_mega-menu_srtdo_25 _with-tabs_srtdo_102"><div class="_mega-menu-content_srtdo_64"><header class="_header_1egs7_3"><div class="_header-icon_1egs7_12"><svg width="96" height="96" viewBox="0 0 96 96" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M72.3769 82.1879C72.7985 81.8836 73.2104 81.5709 73.6202 81.2478C73.2136 81.5728 72.7989 81.8855 72.3769 82.1879Z" fill="black"/>
<path d="M23.6438 82.2027C24.1459 82.5618 24.6581 82.9063 25.179 83.2393C24.6457 82.9033 24.138 82.5588 23.6438 82.2027Z" fill="black"/>
<path d="M6.00002 48.0063C6.00003 47.9942 6.00005 47.9821 6.00007 47.97V47.8911C6 47.9295 5.99998 47.9679 6.00002 48.0063Z" fill="black"/>
<path d="M6.03889 46.16H6.06007V45.7215C6.05224 45.8676 6.04518 46.0138 6.03889 46.16Z" fill="black"/>
<path d="M6.40823 42.1252C7.32127 35.6242 9.74695 29.4195 13.4997 24.0142C17.5703 18.151 23.0681 13.422 29.4739 10.2735C35.8797 7.12511 42.9822 5.66115 50.1109 6.01988C57.2395 6.37861 64.1592 8.54819 70.2166 12.3238C75.5053 15.6203 79.9843 20.0461 83.3397 25.2709C80.0086 20.0947 75.5683 15.6958 70.3168 12.4063C63.6277 8.21628 55.8932 5.99601 48.0001 6.00001C40.1087 5.99789 32.3763 8.21905 25.6891 12.409C19.0019 16.5989 13.6303 22.588 10.1901 29.69C9.87007 30.3567 9.57007 31.0233 9.29007 31.69C8.99007 32.39 8.71007 33.1 8.46007 33.83C7.49403 36.5208 6.80712 39.3005 6.40823 42.1252Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M69.2228 14.1446C62.8607 10.1559 55.5091 8.0274 48.0001 8.00001C40.5424 8.0192 33.2369 10.111 26.8992 14.0418C20.5616 17.9726 15.4413 23.5877 12.1101 30.26L11.9301 30.63L11.7001 31.12C11.4701 31.58 11.2601 32.06 11.0701 32.53C10.7501 33.24 10.5001 33.89 10.2801 34.53C8.97518 38.1694 8.20712 41.9793 8.00007 45.84C7.99536 45.9033 7.99536 45.9668 8.00007 46.03V48C7.99082 54.119 9.39258 60.1577 12.0964 65.6469C14.8002 71.1361 18.7333 75.9279 23.5901 79.65C24.447 80.3393 25.3418 80.9803 26.2701 81.57C32.7435 85.7587 40.2896 87.9872 48.0001 87.9872C55.7105 87.9872 63.2566 85.7587 69.7301 81.57C70.6462 80.9874 71.5308 80.3565 72.3801 79.68C77.2473 75.9543 81.189 71.1555 83.8983 65.6572C86.6075 60.1589 88.0112 54.1095 88.0001 47.98V46.93C87.8696 41.9557 86.8044 37.0504 84.8601 32.47C84.5501 31.75 84.2701 31.12 84.0001 30.57C80.7038 23.823 75.585 18.1333 69.2228 14.1446ZM28.8422 33.6602L39.5293 25.014L39.5302 25.0133C41.3024 23.5733 43.5168 22.7881 45.8003 22.79H58.7431C60.1397 22.7944 61.5196 23.0939 62.7924 23.669C64.0651 24.244 65.2019 25.0816 66.1283 26.1267L66.1344 26.1336L71.751 32.71H76.16V59.2H68.9341C69.1249 59.7478 69.218 60.3301 69.2036 60.9205C69.1732 62.1715 68.6623 63.3628 67.777 64.2473L67.6742 64.35L67.6703 64.354C66.8597 65.1794 65.7813 65.6885 64.6289 65.79C64.4512 65.8056 64.2736 65.8114 64.0968 65.8075L61.077 68.8273C60.1639 69.7394 58.9256 70.2522 57.6349 70.2522C57.3603 70.2522 57.088 70.229 56.8208 70.1836L54.1337 72.8806L54.1308 72.8835C53.666 73.3564 53.1116 73.7322 52.5001 73.9889C51.8874 74.2461 51.2295 74.3786 50.5649 74.3786C49.9146 74.3786 49.2707 74.2517 48.6692 74.0053L46.2463 76.4282C45.3315 77.3406 44.0922 77.853 42.8001 77.853C41.508 77.853 40.2687 77.3406 39.3539 76.4282L39.3465 76.4208L39.1175 76.1826L39.1128 76.1873L23.2857 60.3602H19.8394C19.8398 60.3434 19.84 60.3267 19.84 60.3099V33.6602H28.8422Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M39.5293 25.014L28.8422 33.6602H19.84L19.84 35.6602H26.4706C26.3192 35.8438 26.1887 36.0446 26.0821 36.2588C25.8834 36.658 25.772 37.095 25.7554 37.5406C25.7387 37.9862 25.8171 38.4302 25.9855 38.8431C26.1479 39.2416 26.3904 39.6023 26.6978 39.9029C27.8557 41.1999 29.4285 42.0546 31.1475 42.3202C32.8803 42.5879 34.652 42.2401 36.1549 41.3373L43.3996 36.9814C43.5244 37.0347 43.6486 37.0895 43.772 37.1458L55.4186 47.7957L55.8212 48.2257L66.3497 58.7542L66.4631 58.8763C66.9568 59.4218 67.2221 60.1362 67.2042 60.8718C67.1863 61.6092 66.8847 62.3118 66.3628 62.833L66.2528 62.943L66.2457 62.9503C65.7684 63.4374 65.1328 63.7379 64.4536 63.7977C63.8904 63.8472 63.328 63.7286 62.8359 63.4609L62.642 63.2685L62.5701 63.2186C62.4355 63.1252 62.3102 63.0191 62.1958 62.9018L53.047 53.753L51.6328 55.1673L61.3112 64.8557L61.3789 64.904C61.4522 64.9564 61.5269 65.0066 61.6027 65.0546L61.8128 65.2631L59.6632 67.4127C59.1251 67.9502 58.3956 68.2521 57.6349 68.2521C56.8744 68.2521 56.1448 67.9501 55.6067 67.4127L52.3972 64.1932L51.6971 63.5331L47.1308 58.955L45.6621 60.4238L50.2982 65.0126L50.9628 65.6673L50.9682 65.6726L54.737 69.4415L52.7115 71.4743L52.7062 71.4798C52.4269 71.7643 52.0937 71.9904 51.7261 72.1447C51.3584 72.2991 50.9637 72.3785 50.5649 72.3785C50.1662 72.3785 49.7715 72.2991 49.4038 72.1447C49.0727 72.0058 48.7696 71.8086 48.5086 71.5629L48.3972 71.4531L48.3922 71.4481L41.4772 64.5331L39.5472 62.6131L39.3272 62.3931L37.9128 63.8073L38.1328 64.0273L40.0647 65.9491L46.9809 72.8652L44.8336 75.0125C44.2937 75.5508 43.5625 75.853 42.8001 75.853C42.0408 75.853 41.3124 75.5532 40.7732 75.019L40.5243 74.7602L30.6376 64.8634L30.6275 64.8735L24.1141 58.3602H19.84L19.84 60.3099C19.84 60.3267 19.8398 60.3434 19.8394 60.3602H23.2857L39.1128 76.1873L39.1175 76.1826L39.3465 76.4208L39.3539 76.4282C40.2687 77.3406 41.508 77.853 42.8001 77.853C44.0922 77.853 45.3315 77.3406 46.2463 76.4282L48.6692 74.0053C49.2707 74.2517 49.9146 74.3786 50.5649 74.3786C51.2295 74.3786 51.8874 74.2461 52.5001 73.9889C53.1116 73.7322 53.666 73.3564 54.1308 72.8835L54.1337 72.8806L56.8208 70.1836C57.088 70.229 57.3603 70.2522 57.6349 70.2522C58.9256 70.2522 60.1639 69.7394 61.077 68.8273L64.0968 65.8075C64.2736 65.8114 64.4512 65.8056 64.6289 65.79C65.7813 65.6885 66.8597 65.1794 67.6703 64.354L67.6742 64.35L67.777 64.2473C68.6623 63.3628 69.1732 62.1715 69.2036 60.9205C69.218 60.3301 69.1249 59.7478 68.9341 59.2H76.16V32.71H71.751L66.1344 26.1336L66.1283 26.1267C65.2019 25.0816 64.0651 24.244 62.7924 23.669C61.5196 23.0939 60.1397 22.7944 58.7431 22.79H45.8003C43.5168 22.7881 41.3024 23.5733 39.5302 25.0133L39.5293 25.014ZM45.7991 24.79C43.975 24.7884 42.2062 25.4157 40.7906 26.5661L40.7889 26.5675L28.1723 36.7747L28.1708 36.7759C28.0461 36.8781 27.9444 37.0056 27.8726 37.1499C27.8005 37.2949 27.76 37.4535 27.754 37.6153C27.7479 37.7771 27.7764 37.9383 27.8375 38.0882C27.8986 38.2381 27.991 38.3733 28.1084 38.4847L28.1404 38.5151L28.1696 38.5482C29.0205 39.5121 30.1823 40.1473 31.4529 40.3437C32.7236 40.54 34.0228 40.2849 35.125 39.6228L43.7641 34.4285L57.3013 46.8071L57.7084 47.2143L62.8871 52.4129L67.6742 57.2H76.15V34.71H70.8289L64.6257 27.4467C63.8874 26.6156 62.9821 25.9494 61.9689 25.4916C60.9535 25.0328 59.8526 24.7937 58.7384 24.79L45.7991 24.79Z" fill="white"/>
<path d="M45.7991 24.79C43.975 24.7884 42.2062 25.4157 40.7906 26.5661L40.7889 26.5675L28.1723 36.7747L28.1708 36.7759C28.0461 36.8781 27.9444 37.0056 27.8726 37.1499C27.8005 37.2949 27.76 37.4535 27.754 37.6153C27.7479 37.7771 27.7764 37.9383 27.8375 38.0882C27.8986 38.2381 27.991 38.3733 28.1084 38.4847L28.1404 38.5151L28.1696 38.5482C29.0205 39.5121 30.1823 40.1473 31.4529 40.3437C32.7236 40.54 34.0228 40.2849 35.125 39.6228L43.7641 34.4285L57.3013 46.8071L57.7084 47.2143L62.8871 52.4129L67.6742 57.2H76.15V34.71H70.8289L64.6257 27.4467C63.8874 26.6156 62.9821 25.9494 61.9689 25.4916C60.9535 25.0328 59.8526 24.7937 58.7384 24.79L45.7991 24.79Z" fill="black"/>
<path d="M55.8212 48.2257L55.4186 47.7957L43.772 37.1458C43.6486 37.0895 43.5244 37.0347 43.3996 36.9814L36.1549 41.3373C34.652 42.2401 32.8803 42.5879 31.1475 42.3202C29.4285 42.0546 27.8557 41.1999 26.6978 39.9029C26.3904 39.6023 26.1479 39.2416 25.9855 38.8431C25.8171 38.4302 25.7387 37.9862 25.7554 37.5406C25.772 37.095 25.8834 36.658 26.0821 36.2588C26.1887 36.0446 26.3192 35.8438 26.4706 35.6602H19.84V58.3602H24.1141L30.6275 64.8735L30.6376 64.8634L40.5243 74.7602L40.7732 75.019C41.3124 75.5532 42.0408 75.853 42.8001 75.853C43.5625 75.853 44.2937 75.5508 44.8336 75.0125L46.9809 72.8652L40.0647 65.9491L38.1328 64.0273L37.9128 63.8073L39.3272 62.3931L39.5472 62.6131L41.4772 64.5331L48.3922 71.4481L48.3972 71.4531L48.5086 71.5629C48.7696 71.8086 49.0727 72.0058 49.4038 72.1447C49.7715 72.2991 50.1662 72.3785 50.5649 72.3785C50.9637 72.3785 51.3584 72.2991 51.7261 72.1447C52.0937 71.9904 52.4269 71.7643 52.7062 71.4798L52.7115 71.4743L54.737 69.4415L50.9682 65.6726L50.9628 65.6673L50.2965 65.0109L45.6621 60.4238L47.1308 58.955L51.6971 63.5331L52.3972 64.1932L55.6067 67.4127C56.1448 67.9501 56.8744 68.2521 57.6349 68.2521C58.3956 68.2521 59.1251 67.9502 59.6632 67.4127L61.8128 65.2631L61.6027 65.0546C61.5269 65.0066 61.4522 64.9564 61.3789 64.904L61.3112 64.8557L51.6328 55.1673L53.047 53.753L62.1958 62.9018C62.3102 63.0191 62.4355 63.1252 62.5701 63.2186L62.642 63.2685L62.8359 63.4609C63.328 63.7286 63.8904 63.8472 64.4536 63.7977C65.1328 63.7379 65.7684 63.4374 66.2457 62.9503L66.2528 62.943L66.3628 62.833C66.8847 62.3118 67.1863 61.6092 67.2042 60.8718C67.2221 60.1362 66.9568 59.4218 66.4631 58.8763L66.3497 58.7542L55.8212 48.2257Z" fill="black"/>
<path d="M48.0001 8.00001C55.5091 8.0274 62.8607 10.1559 69.2228 14.1446C75.585 18.1333 80.7038 23.823 84.0001 30.57C84.2701 31.12 84.5501 31.75 84.8601 32.47C86.8044 37.0504 87.8696 41.9557 88.0001 46.93L88 47.12C88 47.41 88.0001 47.69 88.0001 47.98C88.0112 54.1095 86.6075 60.1589 83.8983 65.6572C81.189 71.1555 77.2473 75.9543 72.3801 79.68C71.5308 80.3565 70.6462 80.9874 69.7301 81.57C63.2566 85.7587 55.7105 87.9872 48.0001 87.9872C40.2896 87.9872 32.7435 85.7587 26.2701 81.57C25.3418 80.9803 24.447 80.3393 23.5901 79.65C18.7333 75.9279 14.8002 71.1361 12.0964 65.6469C9.39258 60.1577 7.99082 54.119 8.00007 48C8.00007 47.35 8 46.8 8 46.29C8 46.2 8.00007 46.12 8.00007 46.03C7.99536 45.9668 7.99536 45.9033 8.00007 45.84C8.20712 41.9793 8.97518 38.1694 10.2801 34.53C10.5001 33.89 10.7501 33.24 11.0701 32.53C11.2601 32.06 11.4701 31.58 11.7001 31.12L11.9301 30.63L12.1101 30.26C15.4413 23.5877 20.5616 17.9726 26.8992 14.0418C33.2369 10.111 40.5424 8.0192 48.0001 8.00001ZM48.0001 6.00001C40.1087 5.99789 32.3763 8.21905 25.6891 12.409C19.0019 16.5989 13.6303 22.588 10.1901 29.69C9.87007 30.3567 9.57007 31.0233 9.29007 31.69C8.99007 32.39 8.71007 33.1 8.46007 33.83C7.0911 37.6431 6.28261 41.6347 6.06 45.68C6.06 45.84 6.06007 46 6.06007 46.16L6 46.16C6 46.76 6.00007 47.36 6.00007 47.97C5.98845 54.4006 7.45921 60.7474 10.2983 66.5174C13.1373 72.2874 17.2682 77.3254 22.37 81.24C23.27 81.96 24.21 82.62 25.18 83.24C31.9801 87.6336 39.904 89.9707 48 89.9707C56.096 89.9707 64.0199 87.6336 70.82 83.24C71.82 82.61 72.73 81.95 73.63 81.24C78.7278 77.3284 82.8562 72.2953 85.6951 66.5309C88.534 60.7664 90.007 54.4256 90 48C90 47.69 90 47.39 90 47.08V46.9C89.8712 41.6701 88.762 36.5108 86.73 31.69C86.44 31.01 86.14 30.34 85.82 29.69C82.379 22.5864 77.006 16.5963 70.3168 12.4063C63.6277 8.21628 55.8932 5.99601 48.0001 6.00001Z" fill="white"/>
<path d="M82.5 55.5C82.5 54.9477 82.9477 54.5 83.5 54.5C84.0523 54.5 84.5 54.9477 84.5 55.5C84.5 56.0523 84.0523 56.5 83.5 56.5C82.9477 56.5 82.5 56.0523 82.5 55.5Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M83.5 54.5C82.9477 54.5 82.5 54.9477 82.5 55.5C82.5 56.0523 82.9477 56.5 83.5 56.5C84.0523 56.5 84.5 56.0523 84.5 55.5C84.5 54.9477 84.0523 54.5 83.5 54.5ZM80.5 55.5C80.5 53.8431 81.8431 52.5 83.5 52.5C85.1569 52.5 86.5 53.8431 86.5 55.5C86.5 57.1569 85.1569 58.5 83.5 58.5C81.8431 58.5 80.5 57.1569 80.5 55.5Z" fill="white"/>
<path d="M8.00011 48C7.9927 52.9019 8.89082 57.7523 10.6385 62.3099H17.84C18.3705 62.3099 18.8792 62.0992 19.2543 61.7242C19.6293 61.3491 19.84 60.8404 19.84 60.3099V31.6899C19.84 31.1595 19.6293 30.6508 19.2543 30.2757C18.8792 29.9007 18.3705 29.6899 17.84 29.6899H12.4004C12.3022 29.8791 12.2054 30.0691 12.1101 30.26L11.9301 30.63L11.7001 31.12C11.4701 31.58 11.2601 32.06 11.0701 32.53C10.7501 33.24 10.5001 33.89 10.2801 34.53C8.97522 38.1694 8.20716 41.9793 8.00011 45.84C7.99541 45.9032 7.99541 45.9668 8.00011 46.03V48Z" fill="#FF282D"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M84.0001 30.57C83.8558 30.2746 83.708 29.9812 83.5567 29.6899H78.16C77.6296 29.6899 77.1209 29.9007 76.7458 30.2757C76.3708 30.6508 76.16 31.1595 76.16 31.6899V60.3099C76.16 60.8404 76.3708 61.3491 76.7458 61.7242C77.1209 62.0992 77.6296 62.3099 78.16 62.3099H85.3609C87.1106 57.7459 88.009 52.8887 88.0001 47.98V46.93C87.8696 41.9557 86.8044 37.0504 84.8601 32.47C84.5501 31.75 84.2701 31.12 84.0001 30.57ZM83.5 52.5C81.8431 52.5 80.5 53.8431 80.5 55.5C80.5 57.1569 81.8431 58.5 83.5 58.5C85.1569 58.5 86.5 57.1569 86.5 55.5C86.5 53.8431 85.1569 52.5 83.5 52.5Z" fill="#FF282D"/>
</svg>
</div><div class="_header-text_1egs7_25"><h3 class="_header-title_1egs7_30">Help build a fast, safe, and engaging internet with Fastly</h3></div></header><div class="_tab-list_srtdo_73" role="tablist" aria-orientation="vertical"><button type="button" role="tab" class="_tab-trigger_1nges_3" id="trigger-5qreWLJUFyrEoP2dzAujm" data-value="5qreWLJUFyrEoP2dzAujm" data-state="active" aria-selected="true" tabindex="0"><div><span class="_tab-trigger-title_1nges_31">Our Partners</span></div></button><button type="button" role="tab" class="_tab-trigger_1nges_3" id="trigger-1r3qGfnMdbgrsUpBFHdS9M" data-value="1r3qGfnMdbgrsUpBFHdS9M" data-state="inactive" aria-selected="false" tabindex="-1"><div><span class="_tab-trigger-title_1nges_31">Join Our Network</span></div></button></div><div class="_tab-panel_srtdo_83" role="tabpanel" data-value="5qreWLJUFyrEoP2dzAujm" data-state="active" aria-labelledby="trigger-5qreWLJUFyrEoP2dzAujm"><div class="_item-grid_srtdo_92"><a href="/partners" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Why Partner with Fastly<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Help deliver safe, fast and engaging experiences</span></a><a href="/partners/cloud-partners" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Cloud Partners<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Learn about the benefits of combining Fastly with your cloud services</span></a><a href="/channel-partner-program" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Channel Partners<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Enhance your offerings &amp; capabilities with Fastly products</span></a><a href="/partners/technology-partners" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Technology &amp; Integration Partners<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Explore our partner ecosystem</span></a></div></div><div class="_tab-panel_srtdo_83" role="tabpanel" data-value="1r3qGfnMdbgrsUpBFHdS9M" data-state="inactive" aria-labelledby="trigger-1r3qGfnMdbgrsUpBFHdS9M"><div class="_item-grid_srtdo_92"><a href="https://fastly.ziftone.com/#/page/simplelogin" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Partner Portal Login<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Access all your Fastly partner resources</span></a><a href="https://fastly.ziftone.com/#/page/partner-registration" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Become a Partner<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Enhance your business by reselling or referring Fastly products</span></a><a href="https://fastly.ziftone.com/#/page/FindAPartner" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Find a Partner<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Let us help connect you with the right partner for your needs</span></a></div></div></div></mega-menu><mega-menu id="dropdown-3EHgWFnwPf2U4g7S7iqvPu" role="region" aria-labelledby="trigger-3EHgWFnwPf2U4g7S7iqvPu" data-visible="false" data-default-tab="tab-0" class="_mega-menu_srtdo_25 _with-tabs_srtdo_102"><div class="_mega-menu-content_srtdo_64"><header class="_header_1egs7_3"><div class="_header-icon_1egs7_12"><svg width="96" height="96" viewBox="0 0 96 96" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_102_257)">
<path d="M88.1402 17.38H36.5202C36.0452 17.38 35.6602 17.765 35.6602 18.24V77.77C35.6602 78.245 36.0452 78.63 36.5202 78.63H88.1402C88.6151 78.63 89.0002 78.245 89.0002 77.77V18.24C89.0002 17.765 88.6151 17.38 88.1402 17.38Z" fill="black"/>
<path d="M88.0002 18.38V77.62H36.6602V18.38H88.0002ZM88.1402 16.38H36.5202C36.0269 16.38 35.5538 16.576 35.2049 16.9248C34.8561 17.2736 34.6602 17.7467 34.6602 18.24V77.76C34.6602 78.2533 34.8561 78.7264 35.2049 79.0752C35.5538 79.424 36.0269 79.62 36.5202 79.62H88.1402C88.6335 79.62 89.1066 79.424 89.4554 79.0752C89.8042 78.7264 90.0002 78.2533 90.0002 77.76V18.24C90.0002 17.7467 89.8042 17.2736 89.4554 16.9248C89.1066 16.576 88.6335 16.38 88.1402 16.38Z" fill="white"/>
<path d="M80.11 13.42H28.73C28.1888 13.42 27.75 13.8588 27.75 14.4V81.59C27.75 82.1313 28.1888 82.57 28.73 82.57H80.11C80.6512 82.57 81.09 82.1313 81.09 81.59V14.4C81.09 13.8588 80.6512 13.42 80.11 13.42Z" fill="black"/>
<path d="M80.09 14.42V81.58H28.72V14.4H80.09M80.09 12.4H28.73C28.1995 12.4 27.6908 12.6107 27.3158 12.9858C26.9407 13.3609 26.73 13.8696 26.73 14.4V81.6C26.73 82.1305 26.9407 82.6392 27.3158 83.0142C27.6908 83.3893 28.1995 83.6 28.73 83.6H80.12C80.6504 83.6 81.1591 83.3893 81.5342 83.0142C81.9093 82.6392 82.12 82.1305 82.12 81.6V14.4C82.12 13.8696 81.9093 13.3609 81.5342 12.9858C81.1591 12.6107 80.6504 12.4 80.12 12.4H80.09Z" fill="white"/>
<path d="M72.3299 6H12.7999C11.7727 6 10.9399 6.83275 10.9399 7.86V88.14C10.9399 89.1673 11.7727 90 12.7999 90H72.3299C73.3572 90 74.1899 89.1673 74.1899 88.14V7.86C74.1899 6.83275 73.3572 6 72.3299 6Z" fill="#FF282D"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M20.3301 67.09H64.8001V69.09H20.3301V67.09Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M20.3301 57.05H64.8001V59.05H20.3301V57.05Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M20 77H65V79H20V77Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M20.3301 47H64.8001V49H20.3301V47Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M20.3301 36.95H64.8001V38.95H20.3301V36.95Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M20.3301 26.91H64.8001V28.91H20.3301V26.91Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M20.3301 16.86H64.8001V18.86H20.3301V16.86Z" fill="white"/>
<path d="M71.56 96.12C85.1241 96.12 96.12 85.1241 96.12 71.56C96.12 57.9959 85.1241 47 71.56 47C57.9959 47 47 57.9959 47 71.56C47 85.1241 57.9959 96.12 71.56 96.12Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M71.56 94.12C84.0195 94.12 94.12 84.0195 94.12 71.56C94.12 59.1005 84.0195 49 71.56 49C59.1005 49 49 59.1005 49 71.56C49 84.0195 59.1005 94.12 71.56 94.12ZM96.12 71.56C96.12 85.1241 85.1241 96.12 71.56 96.12C57.9959 96.12 47 85.1241 47 71.56C47 57.9959 57.9959 47 71.56 47C85.1241 47 96.12 57.9959 96.12 71.56Z" fill="white"/>
<path d="M69.7889 83.8686V66.414H73.9025V83.8686H69.7889ZM71.8571 63.9367C70.5389 63.9367 69.4707 62.9367 69.4707 61.7095C69.4707 60.4708 70.5389 59.4708 71.8571 59.4708C73.1639 59.4708 74.2321 60.4708 74.2321 61.7095C74.2321 62.9367 73.1639 63.9367 71.8571 63.9367Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_102_257">
<rect width="96" height="96" fill="white"/>
</clipPath>
</defs>
</svg>
</div><div class="_header-text_1egs7_25"><h3 class="_header-title_1egs7_30">Get Help with Fastly</h3></div></header><div class="_tab-list_srtdo_73" role="tablist" aria-orientation="vertical"><button type="button" role="tab" class="_tab-trigger_1nges_3" id="trigger-6n4adS7pfq5OBHrjGG7RAQ" data-value="6n4adS7pfq5OBHrjGG7RAQ" data-state="active" aria-selected="true" tabindex="0"><div><span class="_tab-trigger-title_1nges_31">Learn</span></div></button><button type="button" role="tab" class="_tab-trigger_1nges_3" id="trigger-17WSYJ9Uy2MitBGCMcwZMG" data-value="17WSYJ9Uy2MitBGCMcwZMG" data-state="inactive" aria-selected="false" tabindex="-1"><div><span class="_tab-trigger-title_1nges_31">Help</span></div></button></div><div class="_tab-panel_srtdo_83" role="tabpanel" data-value="6n4adS7pfq5OBHrjGG7RAQ" data-state="active" aria-labelledby="trigger-6n4adS7pfq5OBHrjGG7RAQ"><div class="_item-grid_srtdo_92"><a href="https://fastly.com/documentation" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Documentation<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Get the most out of Fastly</span></a><a href="/resources" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Resource Library<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Explore data sheets, reports, and more</span></a><a href="https://academy.fastly.com/" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Fastly Academy<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Hands on learning with Fastly products</span></a><a href="/learning" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Learning Center<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Learn about Internet technology</span></a><a href="/blog" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Blog<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Our latest thoughts and ideas</span></a><a href="/security-research" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Security Research<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Stronger security through research</span></a><a href="/fastly-intel" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Fastly&#39;s POV <svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Explore expert and industry insights</span></a></div></div><div class="_tab-panel_srtdo_83" role="tabpanel" data-value="17WSYJ9Uy2MitBGCMcwZMG" data-state="inactive" aria-labelledby="trigger-17WSYJ9Uy2MitBGCMcwZMG"><div class="_item-grid_srtdo_92"><a href="https://support.fastly.com/hc/en-us" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Support Center<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">How can we help?</span></a><a href="/contact-us" class="_menu-item_1k2nt_3"><span class="_menu-item-title_1k2nt_31">Contact Us<svg width="1em" height="1em" viewBox="0 0 24 24" class="_link-arrow_1k2nt_22" data-icon="mdi:arrow-right"><use href="#ai:mdi:arrow-right"></use></svg></span><span class="_menu-item-description_1k2nt_46">Get in touch today</span></a></div></div></div></mega-menu></div></global-navigation><script type="module" src="/_astro/DesktopNav.astro_astro_type_script_index_0_lang.DnaCp4r7.js"></script><mobile-navigation data-search-index="false"><div class="_wrapper_tglqh_3"><nav><div class="_nav-bar_tglqh_13"><a href="/" title="Home" class="_logo-link_tglqh_24"><svg role="img" width="100" viewBox="0 0 1709 768" fill="white"><title>Fastly</title><g><path d="M1154.2 134.3v421.1h126.4v-64.3h-41.8V70.2h-84.7zM55.9 491.1h43V287.9h-43V232l43-7.1v-56.6c0-68.5 14.9-98.2 102.3-98.2 18.9 0 41.2 2.8 60.8 6.3l-11.6 68.9c-13.3-2.1-19.8-2.5-28.2-2.5-30.8 0-38.6 3.1-38.6 33.1V225h63.9v62.9h-63.9V491h42.5v64.3H55.9v-64.2zM1111.1 470.7c-13.2 2.8-24.8 2.5-33.2 2.7-34.8.9-31.8-10.6-31.8-43.5v-142h66.3V225H1046V70.2h-84.7v377.3c0 74.1 18.3 107.9 98 107.9 18.9 0 44.8-4.9 64.4-9zM1637.2 491.4c17.8 0 32.2 14.1 32.2 32 0 17.8-14.4 31.9-32.2 31.9s-32.1-14.1-32.1-31.9 14.3-32 32.1-32m0 58.9c14.8 0 26.8-12.1 26.8-26.9s-12-26.6-26.8-26.6-26.7 11.8-26.7 26.6 11.9 26.9 26.7 26.9m5.9-11.2l-6.5-9.5h-4.5v9.5h-7.2v-31.4h13.1c7.8 0 12.6 3.9 12.6 10.9 0 5.1-2.6 8.6-6.6 9.8l7.8 10.8h-8.7zm-10.9-15.8h5.7c3.3 0 5.5-1.3 5.5-4.7 0-3.3-2.2-4.6-5.3-4.6h-5.9zM855.6 287.8v-11.3c-25.6-4.7-51.1-4.7-64.9-4.7-39.4 0-44.2 20.9-44.2 32.2 0 16 5.5 24.7 48.2 34 62.4 14 125.1 28.6 125.1 106 0 73.4-37.8 111.3-117.3 111.3-53.2 0-104.8-11.4-144.2-21.4v-63.2h64.1v11.2c27.6 5.3 56.5 4.8 71.6 4.8 42 0 48.8-22.6 48.8-34.6 0-16.7-12.1-24.7-51.5-32.7-74.2-12.7-133.2-38-133.2-113.5 0-71.4 47.7-99.4 127.3-99.4 53.9 0 94.8 8.4 134.2 18.4v62.8h-64zM465.9 343.4l-6.4-6.4-32.7 28.5c-1.7-.6-3.4-.9-5.3-.9-8.8 0-16 7.4-16 16.4 0 9.1 7.2 16.4 16 16.4s16-7.4 16-16.4c0-1.7-.3-3.4-.7-4.9z"></path><path d="M595.6 470.7l-.1-263.6h-84.7v24.7c-17.4-10.5-36.9-17.9-57.6-21.8h.5v-29.2H464v-21.5h-85.3v21.5H389V210h.6c-81 14.9-142.4 85.8-142.4 171.2 0 96.2 77.9 174.1 174.1 174.1 32.8 0 63.5-9.1 89.7-24.9l15.3 24.9h89.5v-84.7h-20.2zm-169.1-.1v-10h-10.1v9.9c-45.5-2.6-81.8-39.2-84.2-84.7h10.1v-10.1h-10c2.7-45.2 38.9-81.4 84.1-84v10h10.1v-10c44.6 2.4 80.5 37.4 84.4 81.5v2.9h-10.2v10.1h10.2v2.8c-3.8 44.2-39.8 79.2-84.4 81.6zM1495 225h174.7v62.9h-41.8l-107.1 263.6c-30.7 74-81.1 143.7-157.9 143.7-18.9 0-44-2.1-61.5-6.3l7.7-76.9c11.2 2.1 25.8 3.5 33.5 3.5 35.6 0 75.8-22.1 88.4-60.5l-108.6-267.1h-41.8V225h174.8v62.9h-41.7l61.5 151.3 61.5-151.3H1495z"></path></g></svg></a><div class="_action-buttons_tglqh_116"><language-selector class="_wrapper_1sgyp_1"><dropdown-combobox data-id="language-selector" class="_dropdown_f21kc_3" data-focused="false" data-color-mode="dark" data-variant="select"><div class="_label-style-medium_1gwcl_20 _visually-hidden_f21kc_205" id="combobox-label-language-selector">Language</div><button class="_button_f21kc_46 _combobox_f21kc_71" id="menu-button-language-selector" aria-haspopup="listbox" aria-labelledby="combobox-label-language-selector" aria-expanded="false" aria-controls="listbox-language-selector" aria-activedescendant="en-US" role="combobox"><svg width="18" height="18" class="_select-icon_f21kc_120" data-icon="mdi:web"><symbol id="ai:mdi:web" viewBox="0 0 24 24"><path fill="currentColor" d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10a10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></symbol><use href="#ai:mdi:web"></use></svg><span>English</span><svg width="20" height="20" class="_arrow_f21kc_321" data-icon="mdi:arrow-drop-down"><symbol id="ai:mdi:arrow-drop-down" viewBox="0 0 24 24"><path fill="currentColor" d="m7 10l5 5l5-5z"/></symbol><use href="#ai:mdi:arrow-drop-down"></use></svg></button><input type="hidden" id="input-language-selector" value="English"><div class="_dropdown-content_f21kc_217" tabindex="-1"><div id="listbox-language-selector" role="listbox" aria-labelledby="combobox-label-language-selector"><div role="option" class="_text_f21kc_260 _li_f21kc_255 _option_f21kc_279" aria-selected="true" data-id="en-US" data-label="English">English<svg width="20" height="20" class="_check_f21kc_311" data-icon="mdi:check"><symbol id="ai:mdi:check" viewBox="0 0 24 24"><path fill="currentColor" d="M21 7L9 19l-5.5-5.5l1.41-1.41L9 16.17L19.59 5.59z"/></symbol><use href="#ai:mdi:check"></use></svg></div><div role="option" class="_text_f21kc_260 _li_f21kc_255 _option_f21kc_279" aria-selected="false" data-id="jp" data-label="日本語">日本語<svg width="20" height="20" viewBox="0 0 24 24" class="_check_f21kc_311" data-icon="mdi:check"><use href="#ai:mdi:check"></use></svg></div><div role="option" class="_text_f21kc_260 _li_f21kc_255 _option_f21kc_279" aria-selected="false" data-id="es" data-label="Español (España)">Español (España)<svg width="20" height="20" viewBox="0 0 24 24" class="_check_f21kc_311" data-icon="mdi:check"><use href="#ai:mdi:check"></use></svg></div><div role="option" class="_text_f21kc_260 _li_f21kc_255 _option_f21kc_279" aria-selected="false" data-id="es-latam" data-label="Español (Latinoamérica)">Español (Latinoamérica)<svg width="20" height="20" viewBox="0 0 24 24" class="_check_f21kc_311" data-icon="mdi:check"><use href="#ai:mdi:check"></use></svg></div><div role="option" class="_text_f21kc_260 _li_f21kc_255 _option_f21kc_279" aria-selected="false" data-id="de" data-label="Deutsch">Deutsch<svg width="20" height="20" viewBox="0 0 24 24" class="_check_f21kc_311" data-icon="mdi:check"><use href="#ai:mdi:check"></use></svg></div><div role="option" class="_text_f21kc_260 _li_f21kc_255 _option_f21kc_279" aria-selected="false" data-id="fr" data-label="Français">Français<svg width="20" height="20" viewBox="0 0 24 24" class="_check_f21kc_311" data-icon="mdi:check"><use href="#ai:mdi:check"></use></svg></div><div role="option" class="_text_f21kc_260 _li_f21kc_255 _option_f21kc_279" aria-selected="false" data-id="it" data-label="Italiano">Italiano<svg width="20" height="20" viewBox="0 0 24 24" class="_check_f21kc_311" data-icon="mdi:check"><use href="#ai:mdi:check"></use></svg></div></div></div></dropdown-combobox></language-selector><button type="button" class="_trigger_tglqh_32" aria-expanded="false" data-mobile-trigger><span data-label-menu>Menu</span><span data-label-close>Close</span><svg width="1em" height="1em" data-icon-menu="true" aria-hidden="true" data-icon="mdi:menu"><symbol id="ai:mdi:menu" viewBox="0 0 24 24"><path fill="currentColor" d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></symbol><use href="#ai:mdi:menu"></use></svg><svg width="1em" height="1em" data-icon-close="true" aria-hidden="true" data-icon="mdi:close"><symbol id="ai:mdi:close" viewBox="0 0 24 24"><path fill="currentColor" d="M19 6.41L17.59 5L12 10.59L6.41 5L5 6.41L10.59 12L5 17.59L6.41 19L12 13.41L17.59 19L19 17.59L13.41 12z"/></symbol><use href="#ai:mdi:close"></use></svg></button></div></div><div class="_content_tglqh_100" data-mobile-content data-open="false"><div class="_search_tglqh_69" data-mobile-search><search-combobox data-endpoint="https://api.fastly.com/public-search/marketing" data-min-chars="3" data-locale-path="en-US"><dropdown-combobox data-id="mobile-nav-search" class="_dropdown_f21kc_3" data-focused="false" data-color-mode="dark" data-variant="search"><div class="_label-style-medium_1gwcl_20 _visually-hidden_f21kc_205" id="combobox-label-mobile-nav-search">Search</div><div class="_autocomplete-wrapper_f21kc_92"><div class="_input-icon_f21kc_97" aria-hidden="true"><svg width="20" height="20" viewBox="0 0 24 24" class="_search-icon_f21kc_112" data-icon="material-symbols:search"><use href="#ai:material-symbols:search"></use></svg><svg class="_spinner_f21kc_124" viewBox="25 25 50 50"><circle cx="50" cy="50" fill="none" r="20"></circle></svg></div><input type="text" class="_button_f21kc_46 _combobox_f21kc_71 _autocomplete-input_f21kc_174" id="menu-button-mobile-nav-search" aria-haspopup="listbox" aria-labelledby="combobox-label-mobile-nav-search" aria-expanded="false" aria-controls="listbox-mobile-nav-search" aria-activedescendant="" aria-autocomplete="list" role="combobox" autocomplete="off"></div><input type="hidden" id="input-mobile-nav-search" value><div class="_dropdown-content_f21kc_217" tabindex="-1"><div id="listbox-mobile-nav-search" role="listbox" aria-labelledby="combobox-label-mobile-nav-search"></div><div class="_text_f21kc_260 _no-results_f21kc_192 _hidden_f21kc_188" role="status" aria-live="polite">Sorry, no results found.</div></div></dropdown-combobox><div class="_actions_d68ur_1" data-search-actions><button class="_clear_d68ur_6" data-search-clear disabled>Clear</button></div></search-combobox></div><div class="_panels_tglqh_85"><div class="_panel_p0vcj_1" data-panel="root" aria-hidden="false"><ul role="list"><li><button type="button" class="_item_p0vcj_73" data-target-panel="44yZWBNAnmvVgaiMJRurtX" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Why?</span></div></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M10.4665 8.5L6.46654 12.5L5.5332 11.5667L8.59987 8.5L5.5332 5.43333L6.46654 4.5L10.4665 8.5Z" fill="currentColor"></path></svg></button></li><li><button type="button" class="_item_p0vcj_73" data-target-panel="5plfLUYXwULycD5pW2MINF" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Products</span></div></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M10.4665 8.5L6.46654 12.5L5.5332 11.5667L8.59987 8.5L5.5332 5.43333L6.46654 4.5L10.4665 8.5Z" fill="currentColor"></path></svg></button></li><li><button type="button" class="_item_p0vcj_73" data-target-panel="7nMUmUownQUZIWjKC3MXSE" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Services</span></div></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M10.4665 8.5L6.46654 12.5L5.5332 11.5667L8.59987 8.5L5.5332 5.43333L6.46654 4.5L10.4665 8.5Z" fill="currentColor"></path></svg></button></li><li><button type="button" class="_item_p0vcj_73" data-target-panel="3cwp6vqK4KGxwjAcMdV4Wh" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Solutions</span></div></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M10.4665 8.5L6.46654 12.5L5.5332 11.5667L8.59987 8.5L5.5332 5.43333L6.46654 4.5L10.4665 8.5Z" fill="currentColor"></path></svg></button></li><li><button type="button" class="_item_p0vcj_73" data-target-panel="2NBNxeRlRxZY2hyGQXRPwb" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Devs</span></div></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M10.4665 8.5L6.46654 12.5L5.5332 11.5667L8.59987 8.5L5.5332 5.43333L6.46654 4.5L10.4665 8.5Z" fill="currentColor"></path></svg></button></li><li><button type="button" class="_item_p0vcj_73" data-target-panel="4x75k3ubJrX3pMXCqSHyHY" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Partners</span></div></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M10.4665 8.5L6.46654 12.5L5.5332 11.5667L8.59987 8.5L5.5332 5.43333L6.46654 4.5L10.4665 8.5Z" fill="currentColor"></path></svg></button></li><li><button type="button" class="_item_p0vcj_73" data-target-panel="3EHgWFnwPf2U4g7S7iqvPu" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Resources</span></div></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M10.4665 8.5L6.46654 12.5L5.5332 11.5667L8.59987 8.5L5.5332 5.43333L6.46654 4.5L10.4665 8.5Z" fill="currentColor"></path></svg></button></li><li><a href="/pricing" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Pricing</span></div></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li></ul><div class="_actions_z4sgr_1" data-actions><div class="_top-nav-links_z4sgr_12"><a href="/under-attack" class="_under-attack-button_12y82_82">Under Attack?</a><a href="tel:+18444327859" class="_top-nav-link_z4sgr_12">(844) 4FASTLY</a><a href="https://support.fastly.com/" class="_top-nav-link_z4sgr_12">Support Center</a><a href="https://manage.fastly.com/" class="_top-nav-link_z4sgr_12">Log in</a></div><a data-variant="outline" data-color-mode="dark" data-size="normal" data-full-width="true" href="/contact-sales" url="/contact-sales" class="_button_wofj8_1">Talk to an expert</a><a data-variant="solid" data-color-mode="dark" data-size="normal" data-full-width="true" href="/signup" url="/signup" class="_button_wofj8_1">Try Fastly Free</a></div></div><div class="_panel_p0vcj_1" data-panel="44yZWBNAnmvVgaiMJRurtX" aria-hidden="true"><div class="_breadcrumbs_p0vcj_20"><button type="button" class="_breadcrumb-button_p0vcj_30" data-action="reset"><svg class="_breadcrumb-back-icon_p0vcj_48" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"></path></svg><span>Main menu</span></button></div><div class="_section-title_p0vcj_57"><span>Why?</span></div><ul role="list"><li><a href="/request-a-demo" class="_item_p0vcj_73 _featured_p0vcj_127" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>The future of business starts with developers</span></div><p class="_item-description_p0vcj_121">How Fastly helps developers build fast, secure, and highly personalized apps.</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/company" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Company</span></div><p class="_item-description_p0vcj_121">The team behind better online experiences</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/network-map" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Network Map</span></div><p class="_item-description_p0vcj_121">A new architecture for the modern internet</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/company/analyst-relations" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Industry Analyst Relations</span></div><p class="_item-description_p0vcj_121">See what industry analysts say about Fastly</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/press" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>News</span></div><p class="_item-description_p0vcj_121">Recent updates and announcements</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/fastly-platform" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Platform</span></div><p class="_item-description_p0vcj_121">The platform behind better, faster and more secure digital experiences</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/customers" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Customer Stories</span></div><p class="_item-description_p0vcj_121">See how the best of the web succeed</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/events" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Events</span></div><p class="_item-description_p0vcj_121">Connect with Fastly at an event</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/about/careers" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Careers</span></div><p class="_item-description_p0vcj_121">Join the team that&#39;s building a better internet</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li></ul></div><div class="_panel_p0vcj_1" data-panel="5plfLUYXwULycD5pW2MINF" aria-hidden="true"><div class="_breadcrumbs_p0vcj_20"><button type="button" class="_breadcrumb-button_p0vcj_30" data-action="reset"><svg class="_breadcrumb-back-icon_p0vcj_48" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"></path></svg><span>Main menu</span></button></div><div class="_section-title_p0vcj_57"><span>Products</span></div><ul role="list"><li><a href="/products" class="_item_p0vcj_73 _featured_p0vcj_127" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><div class="_icon-container_p0vcj_116"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none"><path fill="var(--theme-accent, #25201e)" d="m13.3 22.264 5.656-5.657-3.571-3.571-6.831 6.83 2.397 2.398a1.66 1.66 0 0 0 2.348 0ZM15.696 4.383l-6.83 6.831-3.572-3.571 5.657-5.657a1.66 1.66 0 0 1 2.348 0l2.397 2.397ZM1.986 13.3l5.657 5.656 3.571-3.571-6.83-6.831-2.398 2.397a1.66 1.66 0 0 0 0 2.348ZM22.264 13.3l-2.397 2.396-6.831-6.83 3.571-3.572 5.657 5.657a1.66 1.66 0 0 1 0 2.348Z"/></svg></div><span>The Fastly Edge Cloud Platform</span></div><p class="_item-description_p0vcj_121">Our modern network gives you a competitive edge with built-in security, so you can deliver content quickly and confidently.</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><button type="button" class="_item_p0vcj_73" data-target-panel="5plfLUYXwULycD5pW2MINF-6pT7ZuBdHbeCkYkpWcFBZG" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><div class="_icon-container_p0vcj_116"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none"><path fill="var(--theme-accent, #25201e)" fill-rule="evenodd" d="m10.57 16.178-2.746-2.746a1.5 1.5 0 1 1 0-2.864l2.747-2.746a1.501 1.501 0 0 1 1.43-1.957 1.5 1.5 0 0 1 1.428 1.957l2.747 2.746a1.5 1.5 0 1 1 0 2.863L13.43 16.18a1.5 1.5 0 1 1-2.858 0ZM12 8.865c.301 0 .582-.089.817-.242l2.554 2.554a1.493 1.493 0 0 0 0 1.645l-2.554 2.555a1.494 1.494 0 0 0-1.634 0L8.63 12.822c.155-.237.245-.52.245-.823 0-.304-.09-.586-.245-.823l2.553-2.554c.236.153.516.242.817.242Z" clip-rule="evenodd"/><path fill="var(--theme-accent, #25201e)" fill-rule="evenodd" d="M1.037 10.942a1.5 1.5 0 0 0 0 2.121l9.9 9.9a1.5 1.5 0 0 0 2.121 0l9.905-9.905a1.5 1.5 0 0 0 0-2.121l-9.9-9.9a1.5 1.5 0 0 0-2.12 0l-9.906 9.905Zm10.96 10.253-9.192-9.192 9.198-9.198 9.192 9.192-9.198 9.198Z" clip-rule="evenodd"/></svg></div><span>Network Services</span></div></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M10.4665 8.5L6.46654 12.5L5.5332 11.5667L8.59987 8.5L5.5332 5.43333L6.46654 4.5L10.4665 8.5Z" fill="currentColor"></path></svg></button></li><li><button type="button" class="_item_p0vcj_73" data-target-panel="5plfLUYXwULycD5pW2MINF-4S0LnYvfinjZ5OUGftdjzN" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><div class="_icon-container_p0vcj_116"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none"><path fill="var(--theme-accent, #25201e)" d="M14.228 10.59a2.03 2.03 0 0 1-1.568 1.974l.933 1.771c.19.38-.054.839-.46.839h-1.866c-.405 0-.662-.46-.46-.838l.933-1.772a2.03 2.03 0 0 1-1.568-1.974c0-1.122.906-2.028 2.028-2.028 1.122 0 2.028.906 2.028 2.028Z"/><path fill="var(--theme-accent, #25201e)" fill-rule="evenodd" d="M11.3 23.253c.27.16.58.24.94.24l.01.02c.29-.01.57-.09.83-.24l.1-.06c5.68-3.29 9.21-9.4 9.21-15.97 0-.69-.38-1.34-.98-1.69L13.09.743c-.27-.16-.57-.24-.85-.24-.31-.02-.64.07-.92.23l-8.45 4.87c-.54.32-.87.9-.87 1.52v.16c.02 6.54 3.54 12.64 9.21 15.92l.09.05Zm.9-1.79c-5.05-2.93-8.2-8.36-8.2-14.2l8.2-4.73 8.2 4.71c-.01 5.84-3.14 11.29-8.2 14.22Z" clip-rule="evenodd"/></svg></div><span>Security</span></div></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M10.4665 8.5L6.46654 12.5L5.5332 11.5667L8.59987 8.5L5.5332 5.43333L6.46654 4.5L10.4665 8.5Z" fill="currentColor"></path></svg></button></li><li><button type="button" class="_item_p0vcj_73" data-target-panel="5plfLUYXwULycD5pW2MINF-6K9d7FoSjkN2pNhkauTctE" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><div class="_icon-container_p0vcj_116"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none"><path fill="var(--theme-accent, #25201e)" fill-rule="evenodd" d="m18.088 20.553 4.345-7.527a2 2 0 0 0 0-2L18.088 3.5a2 2 0 0 0-1.732-1h-8.69a2 2 0 0 0-1.733 1l-4.345 7.526a2 2 0 0 0 0 2l4.345 7.527a2 2 0 0 0 1.732 1h8.69a2 2 0 0 0 1.733-1Zm-1.732-1 1.314-2.277h-5.667s-.414.66-1.243.66a1.5 1.5 0 1 1 0-3c.812 0 1.348.84 1.348.84h6.428l2.165-3.75L16.356 4.5h-8.69L3.32 12.026l.144.25h4.062a.25.25 0 0 0 .25-.25v-1.662a1.5 1.5 0 1 1 2.27-1.288c0 .823-.77 1.311-.77 1.311v1.64a1.75 1.75 0 0 1-1.75 1.75H4.33l3.335 5.776h8.69Z" clip-rule="evenodd"/></svg></div><span>Compute</span></div></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M10.4665 8.5L6.46654 12.5L5.5332 11.5667L8.59987 8.5L5.5332 5.43333L6.46654 4.5L10.4665 8.5Z" fill="currentColor"></path></svg></button></li><li><button type="button" class="_item_p0vcj_73" data-target-panel="5plfLUYXwULycD5pW2MINF-46BOZIWrTbuRvtPCmgz5iz" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><div class="_icon-container_p0vcj_116"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none"><path fill="var(--theme-accent, #25201e)" fill-rule="evenodd" d="M10.5 8.5a2 2 0 1 1 4 0 2 2 0 0 1-4 0Zm2-1a1 1 0 1 0 0 2 1 1 0 0 0 0-2Z" clip-rule="evenodd"/><path fill="var(--theme-accent, #25201e)" fill-rule="evenodd" d="M1.103 11.052c0-5.466 4.431-9.898 9.897-9.898 5.467 0 9.898 4.432 9.898 9.898a9.852 9.852 0 0 1-1.65 5.472l1.848 1.847a1.89 1.89 0 0 1 0 2.674s.74-.739.002 0a1.89 1.89 0 0 1-2.674 0l-1.828-1.828A9.851 9.851 0 0 1 11 20.949c-5.466 0-9.897-4.431-9.897-9.897ZM11 3.154a7.897 7.897 0 1 0 0 15.795 7.897 7.897 0 0 0 0-15.795Z" clip-rule="evenodd"/></svg></div><span>Observability</span></div></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M10.4665 8.5L6.46654 12.5L5.5332 11.5667L8.59987 8.5L5.5332 5.43333L6.46654 4.5L10.4665 8.5Z" fill="currentColor"></path></svg></button></li></ul></div><div class="_panel_p0vcj_1" data-panel="5plfLUYXwULycD5pW2MINF-6pT7ZuBdHbeCkYkpWcFBZG" aria-hidden="true"><div class="_breadcrumbs_p0vcj_20"><button type="button" class="_breadcrumb-button_p0vcj_30" data-action="reset"><svg class="_breadcrumb-back-icon_p0vcj_48" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"></path></svg><span>Main menu</span></button><span class="_breadcrumb-separator_p0vcj_53" aria-hidden="true">/</span><button type="button" class="_breadcrumb-button_p0vcj_30" data-action="back">Products</button></div><div class="_section-title_p0vcj_57"><div class="_section-title-icon_p0vcj_68"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none"><path fill="var(--theme-accent, #25201e)" fill-rule="evenodd" d="m10.57 16.178-2.746-2.746a1.5 1.5 0 1 1 0-2.864l2.747-2.746a1.501 1.501 0 0 1 1.43-1.957 1.5 1.5 0 0 1 1.428 1.957l2.747 2.746a1.5 1.5 0 1 1 0 2.863L13.43 16.18a1.5 1.5 0 1 1-2.858 0ZM12 8.865c.301 0 .582-.089.817-.242l2.554 2.554a1.493 1.493 0 0 0 0 1.645l-2.554 2.555a1.494 1.494 0 0 0-1.634 0L8.63 12.822c.155-.237.245-.52.245-.823 0-.304-.09-.586-.245-.823l2.553-2.554c.236.153.516.242.817.242Z" clip-rule="evenodd"/><path fill="var(--theme-accent, #25201e)" fill-rule="evenodd" d="M1.037 10.942a1.5 1.5 0 0 0 0 2.121l9.9 9.9a1.5 1.5 0 0 0 2.121 0l9.905-9.905a1.5 1.5 0 0 0 0-2.121l-9.9-9.9a1.5 1.5 0 0 0-2.12 0l-9.906 9.905Zm10.96 10.253-9.192-9.192 9.198-9.198 9.192 9.192-9.198 9.198Z" clip-rule="evenodd"/></svg></div><span>Network Services</span></div><ul role="list"><li><a href="/products/cdn" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Content Delivery (CDN)</span></div><p class="_item-description_p0vcj_121">Deliver fast, personalized experiences globally</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/products/live-streaming" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Live Streaming</span></div><p class="_item-description_p0vcj_121">Deliver seamless live streaming experiences</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/products/streaming-media/video-on-demand" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Streaming Video (VoD)</span></div><p class="_item-description_p0vcj_121">Deliver exceptional on-demand video experiences</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/products/streaming-media/media-shield" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Media Shield </span></div><p class="_item-description_p0vcj_121">Optimize multi-CDN deployments</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/products/perform/otfp" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>On-the-Fly Packager</span></div><p class="_item-description_p0vcj_121">Dynamically package on-demand video content in real time</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/products/image-optimizer" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Image Optimizer</span></div><p class="_item-description_p0vcj_121">Rapid image processing at the edge</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/products/load-balancing" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Load Balancer</span></div><p class="_item-description_p0vcj_121">Granular control over routing decisions</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/products/tls-encryption" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>TLS Encryption</span></div><p class="_item-description_p0vcj_121">Reduce the complexity of TLS management</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/products/ways-to-connect" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Origin Connect </span></div><p class="_item-description_p0vcj_121">Connect directly to Fastly</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/products/ip-addresses" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>IP Addresses</span></div><p class="_item-description_p0vcj_121">Easily manage IP addresses</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/products/quic-http-3" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>HTTP/3 &amp; QUIC</span></div><p class="_item-description_p0vcj_121">Modern protocols</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/products/domain-research-api" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Domain Research API</span></div><p class="_item-description_p0vcj_121">Instant, accurate domain name discovery</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/products/storage" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Object Storage</span></div><p class="_item-description_p0vcj_121">Get direct access to large files at the edge with zero egress fees</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li></ul></div><div class="_panel_p0vcj_1" data-panel="5plfLUYXwULycD5pW2MINF-4S0LnYvfinjZ5OUGftdjzN" aria-hidden="true"><div class="_breadcrumbs_p0vcj_20"><button type="button" class="_breadcrumb-button_p0vcj_30" data-action="reset"><svg class="_breadcrumb-back-icon_p0vcj_48" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"></path></svg><span>Main menu</span></button><span class="_breadcrumb-separator_p0vcj_53" aria-hidden="true">/</span><button type="button" class="_breadcrumb-button_p0vcj_30" data-action="back">Products</button></div><div class="_section-title_p0vcj_57"><div class="_section-title-icon_p0vcj_68"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none"><path fill="var(--theme-accent, #25201e)" d="M14.228 10.59a2.03 2.03 0 0 1-1.568 1.974l.933 1.771c.19.38-.054.839-.46.839h-1.866c-.405 0-.662-.46-.46-.838l.933-1.772a2.03 2.03 0 0 1-1.568-1.974c0-1.122.906-2.028 2.028-2.028 1.122 0 2.028.906 2.028 2.028Z"/><path fill="var(--theme-accent, #25201e)" fill-rule="evenodd" d="M11.3 23.253c.27.16.58.24.94.24l.01.02c.29-.01.57-.09.83-.24l.1-.06c5.68-3.29 9.21-9.4 9.21-15.97 0-.69-.38-1.34-.98-1.69L13.09.743c-.27-.16-.57-.24-.85-.24-.31-.02-.64.07-.92.23l-8.45 4.87c-.54.32-.87.9-.87 1.52v.16c.02 6.54 3.54 12.64 9.21 15.92l.09.05Zm.9-1.79c-5.05-2.93-8.2-8.36-8.2-14.2l8.2-4.73 8.2 4.71c-.01 5.84-3.14 11.29-8.2 14.22Z" clip-rule="evenodd"/></svg></div><span>Security</span></div><ul role="list"><li><a href="/products/web-application-api-protection" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Next-Gen WAF</span></div><p class="_item-description_p0vcj_121">Modern web app and API security, anywhere</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/products/bot-management" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Bot Management</span></div><p class="_item-description_p0vcj_121">Detect and mitigate bot attacks</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/products/ddos-protection" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>DDoS Protection</span></div><p class="_item-description_p0vcj_121">Automated mitigation of disruptive and distributed attacks</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/products/api-security" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>API Security</span></div><p class="_item-description_p0vcj_121">Secure your API endpoints</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/products/fastly-client-side-protection" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Client-Side Protection</span></div><p class="_item-description_p0vcj_121">Defend against client-side attacks</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/products/fastly-ai-bot-management" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>AI Bot Management</span></div><p class="_item-description_p0vcj_121">Stop AI bots from scraping website content</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li></ul></div><div class="_panel_p0vcj_1" data-panel="5plfLUYXwULycD5pW2MINF-6K9d7FoSjkN2pNhkauTctE" aria-hidden="true"><div class="_breadcrumbs_p0vcj_20"><button type="button" class="_breadcrumb-button_p0vcj_30" data-action="reset"><svg class="_breadcrumb-back-icon_p0vcj_48" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"></path></svg><span>Main menu</span></button><span class="_breadcrumb-separator_p0vcj_53" aria-hidden="true">/</span><button type="button" class="_breadcrumb-button_p0vcj_30" data-action="back">Products</button></div><div class="_section-title_p0vcj_57"><div class="_section-title-icon_p0vcj_68"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none"><path fill="var(--theme-accent, #25201e)" fill-rule="evenodd" d="m18.088 20.553 4.345-7.527a2 2 0 0 0 0-2L18.088 3.5a2 2 0 0 0-1.732-1h-8.69a2 2 0 0 0-1.733 1l-4.345 7.526a2 2 0 0 0 0 2l4.345 7.527a2 2 0 0 0 1.732 1h8.69a2 2 0 0 0 1.733-1Zm-1.732-1 1.314-2.277h-5.667s-.414.66-1.243.66a1.5 1.5 0 1 1 0-3c.812 0 1.348.84 1.348.84h6.428l2.165-3.75L16.356 4.5h-8.69L3.32 12.026l.144.25h4.062a.25.25 0 0 0 .25-.25v-1.662a1.5 1.5 0 1 1 2.27-1.288c0 .823-.77 1.311-.77 1.311v1.64a1.75 1.75 0 0 1-1.75 1.75H4.33l3.335 5.776h8.69Z" clip-rule="evenodd"/></svg></div><span>Compute</span></div><ul role="list"><li><a href="/products/edge-compute" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Edge Compute</span></div><p class="_item-description_p0vcj_121">Take your apps to the edge — our instant platform helps you build amazing experiences for your users</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/products/kv-store" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Key Value Store</span></div><p class="_item-description_p0vcj_121">The fastest key value store you can get, but as easy to use as your familiar database tools</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/products/real-time" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Websockets &amp; Fanout </span></div><p class="_item-description_p0vcj_121">Real-time messaging, at global scale, with complete personalization and easy setup</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/products/sdks" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Developer SDKs</span></div><p class="_item-description_p0vcj_121">Program the same services we use to build Fastly products</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/products/compute-enterprise" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Enterprise Serverless</span></div><p class="_item-description_p0vcj_121">The most powerful serverless platform, built on open standards and integrated with Fastly’s full suite of products</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/products/ai" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>AI</span></div><p class="_item-description_p0vcj_121">Accelerate your AI workloads and improve efficiency with semantic caching</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/products/storage" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Object Storage</span></div><p class="_item-description_p0vcj_121">Get direct access to large files at the edge with zero egress fees</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/products/cache" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Programmable Cache</span></div><p class="_item-description_p0vcj_121">Get full programmatic access to the same legendary caching that powers our CDN.</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/products/mcp-server" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>MCP Server</span></div><p class="_item-description_p0vcj_121">AI-powered control for your Fastly services.</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li></ul></div><div class="_panel_p0vcj_1" data-panel="5plfLUYXwULycD5pW2MINF-46BOZIWrTbuRvtPCmgz5iz" aria-hidden="true"><div class="_breadcrumbs_p0vcj_20"><button type="button" class="_breadcrumb-button_p0vcj_30" data-action="reset"><svg class="_breadcrumb-back-icon_p0vcj_48" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"></path></svg><span>Main menu</span></button><span class="_breadcrumb-separator_p0vcj_53" aria-hidden="true">/</span><button type="button" class="_breadcrumb-button_p0vcj_30" data-action="back">Products</button></div><div class="_section-title_p0vcj_57"><div class="_section-title-icon_p0vcj_68"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none"><path fill="var(--theme-accent, #25201e)" fill-rule="evenodd" d="M10.5 8.5a2 2 0 1 1 4 0 2 2 0 0 1-4 0Zm2-1a1 1 0 1 0 0 2 1 1 0 0 0 0-2Z" clip-rule="evenodd"/><path fill="var(--theme-accent, #25201e)" fill-rule="evenodd" d="M1.103 11.052c0-5.466 4.431-9.898 9.897-9.898 5.467 0 9.898 4.432 9.898 9.898a9.852 9.852 0 0 1-1.65 5.472l1.848 1.847a1.89 1.89 0 0 1 0 2.674s.74-.739.002 0a1.89 1.89 0 0 1-2.674 0l-1.828-1.828A9.851 9.851 0 0 1 11 20.949c-5.466 0-9.897-4.431-9.897-9.897ZM11 3.154a7.897 7.897 0 1 0 0 15.795 7.897 7.897 0 0 0 0-15.795Z" clip-rule="evenodd"/></svg></div><span>Observability</span></div><ul role="list"><li><a href="/products/logging" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Real-time Logging</span></div><p class="_item-description_p0vcj_121">Stream and analyze logs in real-time</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/products/metrics" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Edge Observer</span></div><p class="_item-description_p0vcj_121">Explore live and historical traffic data</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/products/metrics/domain-inspector" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Domain Inspector</span></div><p class="_item-description_p0vcj_121">Assess domain level insights</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/products/metrics/origin-inspector" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Origin Inspector</span></div><p class="_item-description_p0vcj_121">View complete origin to edge insights</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/products/alerts" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Alerts</span></div><p class="_item-description_p0vcj_121">Create notifications for service-related metrics</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/products/logexplorer-and-insights" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Log Explorer &amp; Insights</span></div><p class="_item-description_p0vcj_121">Interact with actionable insights</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li></ul></div><div class="_panel_p0vcj_1" data-panel="7nMUmUownQUZIWjKC3MXSE" aria-hidden="true"><div class="_breadcrumbs_p0vcj_20"><button type="button" class="_breadcrumb-button_p0vcj_30" data-action="reset"><svg class="_breadcrumb-back-icon_p0vcj_48" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"></path></svg><span>Main menu</span></button></div><div class="_section-title_p0vcj_57"><span>Services</span></div><ul role="list"><li><a href="/services" class="_item_p0vcj_73 _featured_p0vcj_127" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Extraordinary services for exceptional results</span></div><p class="_item-description_p0vcj_121">We have a proven track record of success in helping our clients achieve their business goals.</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/services/professional-services" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Professional Services</span></div><p class="_item-description_p0vcj_121">Expert help to migrate or optimize your delivery service</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/services/live-event-services" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Live Entertainment Services</span></div><p class="_item-description_p0vcj_121">Live streaming experiences that scale with your audiences</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/services/support-plans" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Support Plans</span></div><p class="_item-description_p0vcj_121">World class support from start to finish</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/services/managed-cdn" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Managed CDN</span></div><p class="_item-description_p0vcj_121">Maximized control and flexibility</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/services/managed-security-service" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Managed Security</span></div><p class="_item-description_p0vcj_121">Expertly managed web application protection</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/services/customer-support" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Customer Support</span></div><p class="_item-description_p0vcj_121">Fastly Support helping you grow better, together</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li></ul></div><div class="_panel_p0vcj_1" data-panel="3cwp6vqK4KGxwjAcMdV4Wh" aria-hidden="true"><div class="_breadcrumbs_p0vcj_20"><button type="button" class="_breadcrumb-button_p0vcj_30" data-action="reset"><svg class="_breadcrumb-back-icon_p0vcj_48" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"></path></svg><span>Main menu</span></button></div><div class="_section-title_p0vcj_57"><span>Solutions</span></div><ul role="list"><li><a href="/solutions" class="_item_p0vcj_73 _featured_p0vcj_127" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Innovative digital solutions</span></div><p class="_item-description_p0vcj_121">We are challenging the status quo for all of our customers&#39; digital experiences.</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><button type="button" class="_item_p0vcj_73" data-target-panel="3cwp6vqK4KGxwjAcMdV4Wh-3NrRAhhU7cSwYFO7hy04lM" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>By Industry</span></div></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M10.4665 8.5L6.46654 12.5L5.5332 11.5667L8.59987 8.5L5.5332 5.43333L6.46654 4.5L10.4665 8.5Z" fill="currentColor"></path></svg></button></li><li><button type="button" class="_item_p0vcj_73" data-target-panel="3cwp6vqK4KGxwjAcMdV4Wh-Y4qrOfjIHwerhF9po2QbE" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>By Need</span></div></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M10.4665 8.5L6.46654 12.5L5.5332 11.5667L8.59987 8.5L5.5332 5.43333L6.46654 4.5L10.4665 8.5Z" fill="currentColor"></path></svg></button></li></ul></div><div class="_panel_p0vcj_1" data-panel="3cwp6vqK4KGxwjAcMdV4Wh-3NrRAhhU7cSwYFO7hy04lM" aria-hidden="true"><div class="_breadcrumbs_p0vcj_20"><button type="button" class="_breadcrumb-button_p0vcj_30" data-action="reset"><svg class="_breadcrumb-back-icon_p0vcj_48" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"></path></svg><span>Main menu</span></button><span class="_breadcrumb-separator_p0vcj_53" aria-hidden="true">/</span><button type="button" class="_breadcrumb-button_p0vcj_30" data-action="back">Solutions</button></div><div class="_section-title_p0vcj_57"><span>By Industry</span></div><ul role="list"><li><a href="/solutions/streaming-media" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Streaming Media</span></div><p class="_item-description_p0vcj_121">Deliver stellar live and on-demand streaming</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/solutions/emerging-media" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Emerging Media</span></div><p class="_item-description_p0vcj_121">High performance for emerging media brands</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/solutions/digital-publishing" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Digital Publishing</span></div><p class="_item-description_p0vcj_121">Real-time journalism with improved reader experiences</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/solutions/retail-ecommerce" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Retail &amp; eCommerce</span></div><p class="_item-description_p0vcj_121">Fast, personalized experiences at scale</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/solutions/finance" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Financial Services</span></div><p class="_item-description_p0vcj_121">Integrated security to protect customer data</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/solutions/high-tech" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>High Tech</span></div><p class="_item-description_p0vcj_121">Instantly scale your performance as you grow</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/solutions/travel" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Travel &amp; Hospitality</span></div><p class="_item-description_p0vcj_121">Online tailored experiences for your guests and visitors</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/solutions/online-education" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Online Education</span></div><p class="_item-description_p0vcj_121">Deliver secure learning experiences at scale</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/solutions/gaming" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Gaming</span></div><p class="_item-description_p0vcj_121">Fuel your players’ next win with ultra-fast, secure game downloads</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/solutions/igaming" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>iGaming</span></div><p class="_item-description_p0vcj_121">Deliver fast, secure, uninterrupted, and engaging gameplays at the edge</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li></ul></div><div class="_panel_p0vcj_1" data-panel="3cwp6vqK4KGxwjAcMdV4Wh-Y4qrOfjIHwerhF9po2QbE" aria-hidden="true"><div class="_breadcrumbs_p0vcj_20"><button type="button" class="_breadcrumb-button_p0vcj_30" data-action="reset"><svg class="_breadcrumb-back-icon_p0vcj_48" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"></path></svg><span>Main menu</span></button><span class="_breadcrumb-separator_p0vcj_53" aria-hidden="true">/</span><button type="button" class="_breadcrumb-button_p0vcj_30" data-action="back">Solutions</button></div><div class="_section-title_p0vcj_57"><span>By Need</span></div><ul role="list"><li><a href="/solutions/infrastructure-savings" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Infrastructure Savings</span></div><p class="_item-description_p0vcj_121">Achieve lower, more predictable cloud spend</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/solutions/multi-cloud-optimization" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Multi-cloud Optimization</span></div><p class="_item-description_p0vcj_121">Reduce complexity and unify cloud resources</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/solutions/customer-trust" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Customer Trust</span></div><p class="_item-description_p0vcj_121">Learn more about Fastly’s Customer Trust initiatives</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/solutions/privacy-enablement" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Privacy Enablement</span></div><p class="_item-description_p0vcj_121">Learn how to protect your user&#39;s data</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/products/sustainability-dashboard" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Sustainability Dashboard</span></div><p class="_item-description_p0vcj_121">See your electricity use and GHG emissions for the Fastly platform</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li></ul></div><div class="_panel_p0vcj_1" data-panel="2NBNxeRlRxZY2hyGQXRPwb" aria-hidden="true"><div class="_breadcrumbs_p0vcj_20"><button type="button" class="_breadcrumb-button_p0vcj_30" data-action="reset"><svg class="_breadcrumb-back-icon_p0vcj_48" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"></path></svg><span>Main menu</span></button></div><div class="_section-title_p0vcj_57"><span>Devs</span></div><ul role="list"><li><a href="/signup" class="_item_p0vcj_73 _featured_p0vcj_127" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Empowering every developer to build incredible experiences</span></div><p class="_item-description_p0vcj_121">Only Fastly gives you superpowers that make every part of your app instant — from data to compute to AI.</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="http://fastly.com/documentation/developers" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Developers</span></div><p class="_item-description_p0vcj_121">Build something amazing today</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/fast-forward" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Fast Forward</span></div><p class="_item-description_p0vcj_121">Creating a more trustworthy internet</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/products/devtools" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Dev Tools</span></div><p class="_item-description_p0vcj_121">Dev tools built for teams - with an edge</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/products/sdks" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Developer SDKs</span></div><p class="_item-description_p0vcj_121">Program the same services we use to build Fastly products</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="https://fastly.com/documentation/developers/community" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Community</span></div><p class="_item-description_p0vcj_121">Join developers around the world</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="https://www.fastly.com/signup/?signup_source=developer-menu" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Sign up</span></div><p class="_item-description_p0vcj_121">Create a free developer account</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li></ul></div><div class="_panel_p0vcj_1" data-panel="4x75k3ubJrX3pMXCqSHyHY" aria-hidden="true"><div class="_breadcrumbs_p0vcj_20"><button type="button" class="_breadcrumb-button_p0vcj_30" data-action="reset"><svg class="_breadcrumb-back-icon_p0vcj_48" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"></path></svg><span>Main menu</span></button></div><div class="_section-title_p0vcj_57"><span>Partners</span></div><ul role="list"><li><a href="/partners" class="_item_p0vcj_73 _featured_p0vcj_127" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Help build a fast, safe, and engaging internet with Fastly</span></div><p class="_item-description_p0vcj_121">Join our powerful partner ecosystem to extend your offerings and to help deliver fast, safe, and engaging digital experiences.</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><button type="button" class="_item_p0vcj_73" data-target-panel="4x75k3ubJrX3pMXCqSHyHY-5qreWLJUFyrEoP2dzAujm" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Our Partners</span></div></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M10.4665 8.5L6.46654 12.5L5.5332 11.5667L8.59987 8.5L5.5332 5.43333L6.46654 4.5L10.4665 8.5Z" fill="currentColor"></path></svg></button></li><li><button type="button" class="_item_p0vcj_73" data-target-panel="4x75k3ubJrX3pMXCqSHyHY-1r3qGfnMdbgrsUpBFHdS9M" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Join Our Network</span></div></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M10.4665 8.5L6.46654 12.5L5.5332 11.5667L8.59987 8.5L5.5332 5.43333L6.46654 4.5L10.4665 8.5Z" fill="currentColor"></path></svg></button></li></ul></div><div class="_panel_p0vcj_1" data-panel="4x75k3ubJrX3pMXCqSHyHY-5qreWLJUFyrEoP2dzAujm" aria-hidden="true"><div class="_breadcrumbs_p0vcj_20"><button type="button" class="_breadcrumb-button_p0vcj_30" data-action="reset"><svg class="_breadcrumb-back-icon_p0vcj_48" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"></path></svg><span>Main menu</span></button><span class="_breadcrumb-separator_p0vcj_53" aria-hidden="true">/</span><button type="button" class="_breadcrumb-button_p0vcj_30" data-action="back">Partners</button></div><div class="_section-title_p0vcj_57"><span>Our Partners</span></div><ul role="list"><li><a href="/partners" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Why Partner with Fastly</span></div><p class="_item-description_p0vcj_121">Help deliver safe, fast and engaging experiences</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/partners/cloud-partners" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Cloud Partners</span></div><p class="_item-description_p0vcj_121">Learn about the benefits of combining Fastly with your cloud services</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/channel-partner-program" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Channel Partners</span></div><p class="_item-description_p0vcj_121">Enhance your offerings &amp; capabilities with Fastly products</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/partners/technology-partners" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Technology &amp; Integration Partners</span></div><p class="_item-description_p0vcj_121">Explore our partner ecosystem</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li></ul></div><div class="_panel_p0vcj_1" data-panel="4x75k3ubJrX3pMXCqSHyHY-1r3qGfnMdbgrsUpBFHdS9M" aria-hidden="true"><div class="_breadcrumbs_p0vcj_20"><button type="button" class="_breadcrumb-button_p0vcj_30" data-action="reset"><svg class="_breadcrumb-back-icon_p0vcj_48" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"></path></svg><span>Main menu</span></button><span class="_breadcrumb-separator_p0vcj_53" aria-hidden="true">/</span><button type="button" class="_breadcrumb-button_p0vcj_30" data-action="back">Partners</button></div><div class="_section-title_p0vcj_57"><span>Join Our Network</span></div><ul role="list"><li><a href="https://fastly.ziftone.com/#/page/simplelogin" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Partner Portal Login</span></div><p class="_item-description_p0vcj_121">Access all your Fastly partner resources</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="https://fastly.ziftone.com/#/page/partner-registration" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Become a Partner</span></div><p class="_item-description_p0vcj_121">Enhance your business by reselling or referring Fastly products</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="https://fastly.ziftone.com/#/page/FindAPartner" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Find a Partner</span></div><p class="_item-description_p0vcj_121">Let us help connect you with the right partner for your needs</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li></ul></div><div class="_panel_p0vcj_1" data-panel="3EHgWFnwPf2U4g7S7iqvPu" aria-hidden="true"><div class="_breadcrumbs_p0vcj_20"><button type="button" class="_breadcrumb-button_p0vcj_30" data-action="reset"><svg class="_breadcrumb-back-icon_p0vcj_48" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"></path></svg><span>Main menu</span></button></div><div class="_section-title_p0vcj_57"><span>Resources</span></div><ul role="list"><li><a href="/resources" class="_item_p0vcj_73 _featured_p0vcj_127" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Get Help with Fastly</span></div><p class="_item-description_p0vcj_121">Explore our resources to learn how you can get the most out of Fastly’s powerful edge cloud platform.</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><button type="button" class="_item_p0vcj_73" data-target-panel="3EHgWFnwPf2U4g7S7iqvPu-6n4adS7pfq5OBHrjGG7RAQ" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Learn</span></div></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M10.4665 8.5L6.46654 12.5L5.5332 11.5667L8.59987 8.5L5.5332 5.43333L6.46654 4.5L10.4665 8.5Z" fill="currentColor"></path></svg></button></li><li><button type="button" class="_item_p0vcj_73" data-target-panel="3EHgWFnwPf2U4g7S7iqvPu-17WSYJ9Uy2MitBGCMcwZMG" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Help</span></div></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M10.4665 8.5L6.46654 12.5L5.5332 11.5667L8.59987 8.5L5.5332 5.43333L6.46654 4.5L10.4665 8.5Z" fill="currentColor"></path></svg></button></li></ul></div><div class="_panel_p0vcj_1" data-panel="3EHgWFnwPf2U4g7S7iqvPu-6n4adS7pfq5OBHrjGG7RAQ" aria-hidden="true"><div class="_breadcrumbs_p0vcj_20"><button type="button" class="_breadcrumb-button_p0vcj_30" data-action="reset"><svg class="_breadcrumb-back-icon_p0vcj_48" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"></path></svg><span>Main menu</span></button><span class="_breadcrumb-separator_p0vcj_53" aria-hidden="true">/</span><button type="button" class="_breadcrumb-button_p0vcj_30" data-action="back">Resources</button></div><div class="_section-title_p0vcj_57"><span>Learn</span></div><ul role="list"><li><a href="https://fastly.com/documentation" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Documentation</span></div><p class="_item-description_p0vcj_121">Get the most out of Fastly</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/resources" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Resource Library</span></div><p class="_item-description_p0vcj_121">Explore data sheets, reports, and more</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="https://academy.fastly.com/" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Fastly Academy</span></div><p class="_item-description_p0vcj_121">Hands on learning with Fastly products</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/learning" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Learning Center</span></div><p class="_item-description_p0vcj_121">Learn about Internet technology</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/blog" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Blog</span></div><p class="_item-description_p0vcj_121">Our latest thoughts and ideas</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/security-research" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Security Research</span></div><p class="_item-description_p0vcj_121">Stronger security through research</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/fastly-intel" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Fastly&#39;s POV </span></div><p class="_item-description_p0vcj_121">Explore expert and industry insights</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li></ul></div><div class="_panel_p0vcj_1" data-panel="3EHgWFnwPf2U4g7S7iqvPu-17WSYJ9Uy2MitBGCMcwZMG" aria-hidden="true"><div class="_breadcrumbs_p0vcj_20"><button type="button" class="_breadcrumb-button_p0vcj_30" data-action="reset"><svg class="_breadcrumb-back-icon_p0vcj_48" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"></path></svg><span>Main menu</span></button><span class="_breadcrumb-separator_p0vcj_53" aria-hidden="true">/</span><button type="button" class="_breadcrumb-button_p0vcj_30" data-action="back">Resources</button></div><div class="_section-title_p0vcj_57"><span>Help</span></div><ul role="list"><li><a href="https://support.fastly.com/hc/en-us" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Support Center</span></div><p class="_item-description_p0vcj_121">How can we help?</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li><li><a href="/contact-us" class="_item_p0vcj_73" data-mobile-nav-item><div class="_item-content_p0vcj_105"><div class="_label_p0vcj_90"><span>Contact Us</span></div><p class="_item-description_p0vcj_121">Get in touch today</p></div><svg class="_chevron-icon_p0vcj_133" fill="none" height="17" viewBox="0 0 16 17" width="16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M13.3334 8.50004L8.00008 13.8334L7.05008 12.9L10.7834 9.16671H2.66675V7.83337H10.7834L7.05008 4.10004L8.00008 3.16671L13.3334 8.50004Z" fill="currentColor"></path></svg></a></li></ul></div></div></div></nav></div></mobile-navigation><script type="module" src="/_astro/MobileNav.astro_astro_type_script_index_0_lang.DHxGyGjV.js"></script></div><main><section data-section-theme="light" class="_container_7vaf5_3"><div class="_inner_7vaf5_29 _inner-alignment-default_7vaf5_37"><a href="/blog" class="_back-link_7vaf5_92"><svg width="1em" height="1em" data-icon="mdi:arrow-left"><symbol id="ai:mdi:arrow-left" viewBox="0 0 24 24"><path fill="currentColor" d="M20 11v2H8l5.5 5.5l-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5L8 11z"/></symbol><use href="#ai:mdi:arrow-left"></use></svg>Back to blog</a><div class="_icons-wrapper_7vaf5_53"><p class="_text-wrapper_7vaf5_60">Follow and Subscribe</p><a class="_icon-link_7vaf5_68 _x-twitter-icon-link_7vaf5_88" href="https://x.com/fastly" target="_blank" aria-label="X/Twitter"><div class="_back-link_7vaf5_92 _icon_7vaf5_53"><svg width="18" height="18" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M10.3319 7.92804 15.5437 2h-1.235L9.78327 7.14724 6.16883 2H2l5.46574 7.78354L2 16h1.2351l4.77896-5.4357L11.8312 16H16l-5.6684-8.07196h.0003ZM8.64026 9.85211l-.55379-.77506-4.40634-6.16727h1.89704l3.55597 4.97718.55379.77506 4.62237 6.46958h-1.8971L8.64026 9.85241v-.0003Z" fill="#000"/></svg></div></a><a class="_icon-link_7vaf5_68" href="/blog_rss.xml" target="_blank" aria-label="RSS feed"><svg width="24" height="24" class="_back-link_7vaf5_92 _icon_7vaf5_53" data-icon="mdi:rss"><symbol id="ai:mdi:rss" viewBox="0 0 24 24"><path fill="currentColor" d="M6.18 15.64a2.18 2.18 0 0 1 2.18 2.18C8.36 19 7.38 20 6.18 20C5 20 4 19 4 17.82a2.18 2.18 0 0 1 2.18-2.18M4 4.44A15.56 15.56 0 0 1 19.56 20h-2.83A12.73 12.73 0 0 0 4 7.27zm0 5.66a9.9 9.9 0 0 1 9.9 9.9h-2.83A7.07 7.07 0 0 0 4 12.93z"/></symbol><use href="#ai:mdi:rss"></use></svg></a></div></div></section><div class="_main_jdjt1_4"><article class="_article-container_jdjt1_14"><div class="_article-child-margin_jdjt1_30"><header class="_article-content_jdjt1_54"><h1 class="_article-title_14ujm_25">Scaling Fastly Network: Balancing Requests | Fastly</h1><div class="_authors-container_14ujm_10"><div class="_container_r69i7_3"><figure class="_container-img_koi9r_18" style="--aspect-ratio:1/1"><img alt class="_img_r69i7_11 _img_r69i7_11" src="//www.fastly.com/cimages/ocb1q9kflo7k/42gniR07ZR7mHtljf3DH4p/d64eb65d335382f75f78b45dd180ebca/picture-3891-1462389324.jpg?auto=avif&amp;crop=1:1,smart&amp;width=192" srcset="//www.fastly.com/cimages/ocb1q9kflo7k/42gniR07ZR7mHtljf3DH4p/d64eb65d335382f75f78b45dd180ebca/picture-3891-1462389324.jpg?auto=avif&amp;crop=1:1,smart&amp;width=64 64w,//www.fastly.com/cimages/ocb1q9kflo7k/42gniR07ZR7mHtljf3DH4p/d64eb65d335382f75f78b45dd180ebca/picture-3891-1462389324.jpg?auto=avif&amp;crop=1:1,smart&amp;width=128 128w,//www.fastly.com/cimages/ocb1q9kflo7k/42gniR07ZR7mHtljf3DH4p/d64eb65d335382f75f78b45dd180ebca/picture-3891-1462389324.jpg?auto=avif&amp;crop=1:1,smart&amp;width=192 192w,"/></figure><div><a class="_author-name_r69i7_19" href="/blog/author/joao-taveira-araujo">João Taveira Araújo</a><p class="_author-job-title_r69i7_26">Director of Engineering, Fastly</p></div></div><div class="_container_r69i7_3"><figure class="_container-img_koi9r_18" style="--aspect-ratio:1/1"><img alt class="_img_r69i7_11 _img_r69i7_11" src="//www.fastly.com/cimages/ocb1q9kflo7k/29EHFCWWIQd1ovR6AIaPOz/117fc61a6ba148b5e3fda6e5692ae729/image2.png?auto=avif&amp;crop=1:1,smart&amp;width=192" srcset="//www.fastly.com/cimages/ocb1q9kflo7k/29EHFCWWIQd1ovR6AIaPOz/117fc61a6ba148b5e3fda6e5692ae729/image2.png?auto=avif&amp;crop=1:1,smart&amp;width=64 64w,//www.fastly.com/cimages/ocb1q9kflo7k/29EHFCWWIQd1ovR6AIaPOz/117fc61a6ba148b5e3fda6e5692ae729/image2.png?auto=avif&amp;crop=1:1,smart&amp;width=128 128w,//www.fastly.com/cimages/ocb1q9kflo7k/29EHFCWWIQd1ovR6AIaPOz/117fc61a6ba148b5e3fda6e5692ae729/image2.png?auto=avif&amp;crop=1:1,smart&amp;width=192 192w,"/></figure><div><a class="_author-name_r69i7_19" href="/blog/author/lorenzo-saino">Lorenzo Saino</a><p class="_author-job-title_r69i7_26">Director of Engineering, Fastly</p></div></div><div class="_container_r69i7_3"><figure class="_container-img_koi9r_18" style="--aspect-ratio:1/1"><img alt class="_img_r69i7_11 _img_r69i7_11" src="//www.fastly.com/cimages/ocb1q9kflo7k/5TZFSk0uEWlqfAkP90jIet/8690479fff7f58ab93890f437f61efb0/picture-4796-1480964650.jpg?auto=avif&amp;crop=1:1,smart&amp;width=192" srcset="//www.fastly.com/cimages/ocb1q9kflo7k/5TZFSk0uEWlqfAkP90jIet/8690479fff7f58ab93890f437f61efb0/picture-4796-1480964650.jpg?auto=avif&amp;crop=1:1,smart&amp;width=64 64w,//www.fastly.com/cimages/ocb1q9kflo7k/5TZFSk0uEWlqfAkP90jIet/8690479fff7f58ab93890f437f61efb0/picture-4796-1480964650.jpg?auto=avif&amp;crop=1:1,smart&amp;width=128 128w,//www.fastly.com/cimages/ocb1q9kflo7k/5TZFSk0uEWlqfAkP90jIet/8690479fff7f58ab93890f437f61efb0/picture-4796-1480964650.jpg?auto=avif&amp;crop=1:1,smart&amp;width=192 192w,"/></figure><div><a class="_author-name_r69i7_19" href="/blog/author/lennert-buytenhek">Lennert Buytenhek</a><p class="_author-job-title_r69i7_26">Principal Software Engineer</p></div></div></div><div class="_container_11spr_5"><div class="_content_11spr_9"><time datetime="2016-12-08">December 08, 2016</time><div class="_tags-container_b3a9j_1"><a href="/blog/category/engineering" class="_tag-pill_b3a9j_7">Engineering</a><a href="/blog/category/product" class="_tag-pill_b3a9j_7">Product</a><a href="/blog/category/performance" class="_tag-pill_b3a9j_7">Performance</a><a href="/blog/category/edge-network" class="_tag-pill_b3a9j_7">Edge network</a></div><div class="_logo-container_11spr_24"><a href="https://twitter.com/share?url=https://www.fastly.com/blog/building-and-scaling-fastly-network-part-2-balancing-requests&amp;text=Scaling Fastly Network: Balancing Requests | Fastly " target="_blank" rel="noopener noreferrer" aria-label="X"><svg width="18" height="18" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M10.3319 7.92804 15.5437 2h-1.235L9.78327 7.14724 6.16883 2H2l5.46574 7.78354L2 16h1.2351l4.77896-5.4357L11.8312 16H16l-5.6684-8.07196h.0003ZM8.64026 9.85211l-.55379-.77506-4.40634-6.16727h1.89704l3.55597 4.97718.55379.77506 4.62237 6.46958h-1.8971L8.64026 9.85241v-.0003Z" fill="#000"/></svg></a><a href="https://www.linkedin.com/shareArticle?mini=true&amp;title=Scaling Fastly Network: Balancing Requests | Fastly&amp;url=https://www.fastly.com/blog/building-and-scaling-fastly-network-part-2-balancing-requests" target="_blank" rel="noopener noreferrer" aria-label="LinkedIn"><svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M4.875 6.375H1.875C1.66789 6.375 1.5 6.54289 1.5 6.75V16.5C1.5 16.7071 1.66789 16.875 1.875 16.875H4.875C5.08211 16.875 5.25 16.7071 5.25 16.5V6.75C5.25 6.54289 5.08211 6.375 4.875 6.375Z" fill="black"/>
<path d="M3.36002 4.87494C3.73148 4.87791 4.09546 4.77048 4.40576 4.56626C4.71607 4.36205 4.95873 4.07027 5.10295 3.72793C5.24716 3.38559 5.28644 3.00813 5.2158 2.64343C5.14515 2.27873 4.96777 1.94324 4.70615 1.67951C4.44454 1.41578 4.11048 1.23571 3.74636 1.16214C3.38224 1.08857 3.00448 1.12482 2.66099 1.26628C2.31751 1.40774 2.02378 1.64805 1.81708 1.9567C1.61038 2.26536 1.50003 2.62846 1.50002 2.99994C1.49903 3.24519 1.54636 3.48822 1.6393 3.71518C1.73224 3.94213 1.86897 4.14855 2.04169 4.32266C2.2144 4.49677 2.41972 4.63516 2.64592 4.72992C2.87212 4.82468 3.11477 4.87396 3.36002 4.87494Z" fill="black"/>
<path d="M13.875 16.875H16.125C16.2245 16.875 16.3198 16.8355 16.3902 16.7652C16.4605 16.6949 16.5 16.5995 16.5 16.5V10.2C16.5 7.37255 14.9025 6.00005 12.6675 6.00005C12.2249 5.9843 11.784 6.06161 11.3731 6.22697C10.9623 6.39234 10.5908 6.64208 10.2825 6.96005C10.2406 7.00553 10.1854 7.03657 10.1247 7.04869C10.0641 7.06082 10.0012 7.05342 9.945 7.02755C9.8883 7.00637 9.83932 6.96853 9.80452 6.919C9.76972 6.86947 9.75071 6.81058 9.75 6.75005C9.75 6.65059 9.71049 6.55521 9.64017 6.48488C9.56984 6.41456 9.47446 6.37505 9.375 6.37505H7.125C7.02554 6.37505 6.93016 6.41456 6.85983 6.48488C6.78951 6.55521 6.75 6.65059 6.75 6.75005V16.5C6.75 16.5995 6.78951 16.6949 6.85983 16.7652C6.93016 16.8355 7.02554 16.875 7.125 16.875H9.375C9.47446 16.875 9.56984 16.8355 9.64017 16.7652C9.71049 16.6949 9.75 16.5995 9.75 16.5V10.875C9.75 10.3778 9.94754 9.90085 10.2992 9.54922C10.6508 9.19759 11.1277 9.00005 11.625 9.00005C12.1223 9.00005 12.5992 9.19759 12.9508 9.54922C13.3025 9.90085 13.5 10.3778 13.5 10.875V16.5C13.5 16.5995 13.5395 16.6949 13.6098 16.7652C13.6802 16.8355 13.7755 16.875 13.875 16.875Z" fill="black"/>
</svg>
</a><a href="http://www.facebook.com/sharer.php?u=https://www.fastly.com/blog/building-and-scaling-fastly-network-part-2-balancing-requests" target="_blank" rel="noopener noreferrer" aria-label="Facebook"><svg width="18" height="18" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M18 9.02256C18 4.04211 13.968 0 9 0S0 4.04211 0 9.02256c0 4.36694 3.096 8.00304 7.2 8.84214v-6.1354H5.4V9.02256h1.8V6.76692c0-1.74136 1.413-3.1579 3.15-3.1579h2.25v2.70677h-1.8c-.495 0-.9.40601-.9.90225v1.80452h2.7v2.70674H9.9V18c4.545-.4511 8.1-4.2947 8.1-8.97744Z" fill="#000"/></svg></a></div></div></div></header><div class="_article-content-container_jdjt1_66"><div class="_rich-text-article-content_9bzwf_5 _article-content_jdjt1_54" data-body-type-size="md" data-main-content="true"><p><strong>Summary</strong>: In <a href="https://www.fastly.com/blog/building-and-scaling-fastly-network-part-1-fighting-fib"><u>part 1</u></a>, we discussed how Fastly started down the slippery slope of network software. Our previous experience with routing suggested that avoiding traditional network devices would not only dramatically cut capital expenditure, but also quickly outpace existing solutions. Having already eschewed routers, we turned our attention towards obsoleting load balancers entirely. In this post, we’ll detail our in-house load balancing system which performs seamless failover with minimal processing overhead.</p><p>Our previous post detailed how Fastly started down the slippery slope of network software. By implementing a distributed routing system on commodity switches, we were able to maintain complete control over how we forward packets at a fraction of the cost imposed by conventional networking wisdom.</p><p>The return on investment of our small collection of hacks was tremendous, and came as we closed our series B round over the summer of 2013. Our focus was shifting towards aggressively expanding our infrastructure whilst maximizing the number of requests we could serve. Our previous experience with routing suggested that avoiding traditional network devices would not only dramatically cut capital expenditure, but also quickly outpace existing solutions. Having already eschewed routers, we turned our attention towards obsoleting load balancers entirely.</p><p>In this post, we’ll discuss what we came up with: Faild is our in-house load balancing system that performs seamless failover with minimal processing overhead. Prevailing best practices typically reduce load balancing to being performed single-handedly by the network through hardware load balancers or ECMP routers. More recently, the antithetical approach has gained traction, with services such as MagLev and GLB implementing load balancing in software running on hosts. Faild is a synthesis of both approaches: leveraging hardware processing on commodity switches where possible, and pushing out flow handling towards hosts when necessary.</p><p>The result of this division of labor is a virtually stateless, distributed load balancer. Faild is highly efficient and inherently reliable, ensuring that established flows are never spuriously reset. It achieves this by lying compulsively to the hardware it talks to while incurring no additional state than would otherwise be required by TCP. In devising a solution which would cost us less, we ended up with a system that costs us nothing.</p><h3>Load balancing client requests: walking the tightrope</h3><p>Consider a set of servers which serve a collection of clients, as shown in figure 1. From a client’s perspective, what server a request is forwarded to is unimportant so long as a response is received in a timely manner. This allows for some degree of freedom in how an operator goes about mapping current demand to available capacity, in what is commonly referred to as load balancing. Load balancing is performed at almost every layer of the network stack. For the purpose of this post, we’ll focus on load balancing inbound client requests in the context of a CDN.</p><figure class="_container-img_koi9r_18 _image-container_dxsk1_3" style="--aspect-ratio:1641/1069"><img alt class="_image_dxsk1_3 _image_dxsk1_3" src="//www.fastly.com/cimages/ocb1q9kflo7k/3LICWH4uRPrvjIUYIZhHAe/0a210ed5094bbedeb0270d9292db5bb8/figure1.png?auto=avif&amp;crop=1641:1069,smart&amp;width=900" srcset="//www.fastly.com/cimages/ocb1q9kflo7k/3LICWH4uRPrvjIUYIZhHAe/0a210ed5094bbedeb0270d9292db5bb8/figure1.png?auto=avif&amp;crop=1641:1069,smart&amp;width=450 450w,//www.fastly.com/cimages/ocb1q9kflo7k/3LICWH4uRPrvjIUYIZhHAe/0a210ed5094bbedeb0270d9292db5bb8/figure1.png?auto=avif&amp;crop=1641:1069,smart&amp;width=900 900w,//www.fastly.com/cimages/ocb1q9kflo7k/3LICWH4uRPrvjIUYIZhHAe/0a210ed5094bbedeb0270d9292db5bb8/figure1.png?auto=avif&amp;crop=1641:1069,smart&amp;width=1350 1350w,"/></figure><p><strong>Figure 1:</strong> inbound load balancing maps client requests to cache servers within a POP.</p><p>The primary challenge of load balancing HTTP requests is derived from an unassailable constraint: if a packet belonging to an established TCP connection is forwarded to an incorrect server, the associated TCP flow will be reset. Unfortunately, the network layer does not understand the concept of a flow any more than applications understand the notion of packets. In the following paragraphs, we’ll outline the three traditional approaches to load balancing requests, all of which are ill-suited for a general-purpose CDN.</p><h3>Load balancers: application-aware networking</h3><p>For every problem in computer networking there is a closed-box solution that offers the correct abstraction at the wrong cost. Our previous post highlighted that routers are just appliances that happen to perform routing. Similarly, load balancers are appliances — unnecessary, expensive, and ultimately ineffective solutions for load balancing.</p><figure class="_container-img_koi9r_18 _image-container_dxsk1_3" style="--aspect-ratio:2185/1492"><img alt class="_image_dxsk1_3 _image_dxsk1_3" src="//www.fastly.com/cimages/ocb1q9kflo7k/4lIGGka8Uqob5A2SOxYcGh/a80ee73dab120b57980bc5314c28ca3d/figure2.png?auto=avif&amp;crop=2185:1492,smart&amp;width=900" srcset="//www.fastly.com/cimages/ocb1q9kflo7k/4lIGGka8Uqob5A2SOxYcGh/a80ee73dab120b57980bc5314c28ca3d/figure2.png?auto=avif&amp;crop=2185:1492,smart&amp;width=450 450w,//www.fastly.com/cimages/ocb1q9kflo7k/4lIGGka8Uqob5A2SOxYcGh/a80ee73dab120b57980bc5314c28ca3d/figure2.png?auto=avif&amp;crop=2185:1492,smart&amp;width=900 900w,//www.fastly.com/cimages/ocb1q9kflo7k/4lIGGka8Uqob5A2SOxYcGh/a80ee73dab120b57980bc5314c28ca3d/figure2.png?auto=avif&amp;crop=2185:1492,smart&amp;width=1350 1350w,//www.fastly.com/cimages/ocb1q9kflo7k/4lIGGka8Uqob5A2SOxYcGh/a80ee73dab120b57980bc5314c28ca3d/figure2.png?auto=avif&amp;crop=2185:1492,smart&amp;width=1800 1800w,"/></figure><p><strong>Figure 2:</strong> a network topology using a load balancer (a) and associated packet flow diagram (b).</p><p>Load balancers typically act as proxies, terminating connections from clients and demultiplexing traffic across backend servers, as shown in figure 2a). They are typically either aware of the transport layer (TCP), or the application layer (HTTP). In either case, load balancers terminate inbound connections, and then relay the data to an available server over a separate connection, as illustrated in figure 2b).</p><p>A load balancer can monitor the health of backend servers, and therefore make an informed decision on where to route incoming flows. When implemented correctly, request distribution across backend servers is close to optimal, but at tremendous cost. A load balancer has a perfect view of the network by tracking state for every network connection, which is expensive to maintain and is often offloaded to specialized hardware.</p><p>More worryingly, maintaining state is a liability. It’s much cheaper for the sender to create connections than for a receiver to keep track of them, and this asymmetry in TCP is regularly exploited in denial-of-service (DoS) attacks. Most load balancers implement additional measures against SYN floods in particular, but fundamentally become choke points in the network. Even load balancers that are virtualized and run on commodity hardware, such as Google’s MagLev, require maintaining per-flow state and are therefore inherently more vulnerable to DoS attacks.</p><h3>DNS: a layer of indirection</h3><p>All problems in computer science can be solved by another level of indirection1. The Domain Name System (DNS) resolves domain names to addresses, and this mapping can be used to balance load across servers by only returning the IP addresses of healthy servers.</p><figure class="_container-img_koi9r_18 _image-container_dxsk1_3" style="--aspect-ratio:2185/1514"><img alt class="_image_dxsk1_3 _image_dxsk1_3" src="//www.fastly.com/cimages/ocb1q9kflo7k/PdWhxsd2suTkViBbqP6CO/545fdc3b105bdba1a1c708b7e2a23c51/figure3.png?auto=avif&amp;crop=2185:1514,smart&amp;width=900" srcset="//www.fastly.com/cimages/ocb1q9kflo7k/PdWhxsd2suTkViBbqP6CO/545fdc3b105bdba1a1c708b7e2a23c51/figure3.png?auto=avif&amp;crop=2185:1514,smart&amp;width=450 450w,//www.fastly.com/cimages/ocb1q9kflo7k/PdWhxsd2suTkViBbqP6CO/545fdc3b105bdba1a1c708b7e2a23c51/figure3.png?auto=avif&amp;crop=2185:1514,smart&amp;width=900 900w,//www.fastly.com/cimages/ocb1q9kflo7k/PdWhxsd2suTkViBbqP6CO/545fdc3b105bdba1a1c708b7e2a23c51/figure3.png?auto=avif&amp;crop=2185:1514,smart&amp;width=1350 1350w,//www.fastly.com/cimages/ocb1q9kflo7k/PdWhxsd2suTkViBbqP6CO/545fdc3b105bdba1a1c708b7e2a23c51/figure3.png?auto=avif&amp;crop=2185:1514,smart&amp;width=1800 1800w,"/></figure><p><strong>Figure 3: </strong>an architecture for server selection using DNS (a) and associated packet flow diagram (b).</p><p>This approach does not require per-flow state and therefore scales well, but has a fundamental limitation in how quickly it can perform failover. A DNS response can be cached by downstream resolvers for minutes or even hours. The time a response can be cached is signaled through the time-to-live (TTL) field contained in the response, but this is not always respected by resolvers. As a result, a change can take considerable time to propagate globally, and a client may be resolving to an unavailable server in the interim.</p><p>Companies such as Spotify and Netflix control both the end-user application and the edge delivery servers, and can therefore move beyond DNS and embed server selection directly into their applications. CDNs like Fastly don’t have this luxury, since they must encompass a wide range of use cases — from video streaming to API calls. The only assumption we’re afforded is that requests will be made over HTTP.</p><h3>ECMP: better the devil you know</h3><p>Our starting observation was that forwarding a packet to the wrong server would cause a connection reset. Load balancers avoid this pitfall at the expense of scalability. DNS load balancing provides a scalable alternative to hardware load balancers, but is less responsive to unexpected changes. In both cases, the remedy is worse than the disease.</p><p>A commonly adopted alternative to balance flows in a stateless manner is Equal Cost Multipath (ECMP). ECMP is available on most network devices by which a same destination prefix can have multiple next hops, and next hop selection is based on the result of applying a hash function to fields in the header of the forwarded packet. By computing the hash function over inputs which are immutable over the lifetime of a flow (i.e., source and destination addresses and ports) we can ensure that all packets in a flow are forwarded towards the same next hop.</p><p>Servers can announce their availability over BGP to the connected switch, which is in turn responsible for hashing packets accordingly. An excellent article on how to configure such a system using open source software is available here.</p><figure class="_container-img_koi9r_18 _image-container_dxsk1_3" style="--aspect-ratio:2820/1596"><img alt class="_image_dxsk1_3 _image_dxsk1_3" src="//www.fastly.com/cimages/ocb1q9kflo7k/446KrfO0acd9OYThgwi3q4/487e2d010fba2d64e4c99cce9cd13923/figure4.png?auto=avif&amp;crop=2820:1596,smart&amp;width=900" srcset="//www.fastly.com/cimages/ocb1q9kflo7k/446KrfO0acd9OYThgwi3q4/487e2d010fba2d64e4c99cce9cd13923/figure4.png?auto=avif&amp;crop=2820:1596,smart&amp;width=450 450w,//www.fastly.com/cimages/ocb1q9kflo7k/446KrfO0acd9OYThgwi3q4/487e2d010fba2d64e4c99cce9cd13923/figure4.png?auto=avif&amp;crop=2820:1596,smart&amp;width=900 900w,//www.fastly.com/cimages/ocb1q9kflo7k/446KrfO0acd9OYThgwi3q4/487e2d010fba2d64e4c99cce9cd13923/figure4.png?auto=avif&amp;crop=2820:1596,smart&amp;width=1350 1350w,//www.fastly.com/cimages/ocb1q9kflo7k/446KrfO0acd9OYThgwi3q4/487e2d010fba2d64e4c99cce9cd13923/figure4.png?auto=avif&amp;crop=2820:1596,smart&amp;width=1800 1800w,//www.fastly.com/cimages/ocb1q9kflo7k/446KrfO0acd9OYThgwi3q4/487e2d010fba2d64e4c99cce9cd13923/figure4.png?auto=avif&amp;crop=2820:1596,smart&amp;width=2700 2700w,"/></figure><p><strong>Figure 4:</strong> load balancing with (a) an ECMP capable switch and (b) the packet flow diagram and associated routing table during a rehashing event.</p><p>The drawback of this approach is that until very recently, device manufacturers did not implement consistent hashing for ECMP. On route changes, triggered by the addition or removal of a server from the available pool, the result computed by the hashing function may change, which can cause packets to be forwarded to the wrong server. This rehashing event is illustrated in figure 4(b), where an ongoing flow towards server A is disrupted by a routing change. By adding a new route towards next hop C, the next hop computed by the hashing function changes, resulting in a connection reset.</p><p>Despite this, ECMP remains popular particularly within the CDN industry. By eschewing maintaining per-flow state, it performs well during steady state operation, at the cost of connection failures during transient events. In pursuing scalability, ECMP forsakes correctness. We wanted both.</p><h3>Resilient ECMP: a first approximation</h3><p>The lifecycle for supporting features such as consistent hashing in hardware is painfully protracted, so we decided we were better off writing software to do it ourselves. In our previous post, we detailed how to build a distributed routing framework by manipulating standard networking components such as routing tables or ARP entries. Conveniently, we can use many of the same building blocks to approximate the behaviour of consistent hashing.</p><p>Rehashing occurs when next hop entries change. In order to avoid rehashing, we need to maintain a fixed set of next hops. Since our primary objective is to dynamically readjust the pool of available servers, we need some other method for steering traffic. A viable alternative is to use the ARP table as a layer of indirection. By pointing the routing table at static, virtual next hops, we can force the switch to perform a lookup in the ARP table. We can then adjust the ARP table rather than the routing table to influence packet forwarding.</p><p>Two issues arise in this model, both of which are readily solved:</p><ul><li><p><strong>We can no longer rely on routing protocols such as BGP and OSPF to steer inbound traffic towards servers</strong>. Conventional routing protocols ensure reachability by modifying the routing table, but we have pushed the responsibility for steering traffic down to the link layer. Instead, we must write a controller which directly manipulates the ARP table on the switch, as shown in figure 5. The controller exchanges information with agents running on connected caches. Each agent is responsible for health checking the local instance of Varnish, which handles HTTP requests from end clients.</p></li></ul><figure class="_container-img_koi9r_18 _image-container_dxsk1_3" style="--aspect-ratio:2335/1514"><img alt class="_image_dxsk1_3 _image_dxsk1_3" src="//www.fastly.com/cimages/ocb1q9kflo7k/19GXrOGAFEJD8H2Xa7YAeF/412fe07412fa89783f551a0c4289f7cb/figure5.png?auto=avif&amp;crop=2335:1514,smart&amp;width=900" srcset="//www.fastly.com/cimages/ocb1q9kflo7k/19GXrOGAFEJD8H2Xa7YAeF/412fe07412fa89783f551a0c4289f7cb/figure5.png?auto=avif&amp;crop=2335:1514,smart&amp;width=450 450w,//www.fastly.com/cimages/ocb1q9kflo7k/19GXrOGAFEJD8H2Xa7YAeF/412fe07412fa89783f551a0c4289f7cb/figure5.png?auto=avif&amp;crop=2335:1514,smart&amp;width=900 900w,//www.fastly.com/cimages/ocb1q9kflo7k/19GXrOGAFEJD8H2Xa7YAeF/412fe07412fa89783f551a0c4289f7cb/figure5.png?auto=avif&amp;crop=2335:1514,smart&amp;width=1350 1350w,//www.fastly.com/cimages/ocb1q9kflo7k/19GXrOGAFEJD8H2Xa7YAeF/412fe07412fa89783f551a0c4289f7cb/figure5.png?auto=avif&amp;crop=2335:1514,smart&amp;width=1800 1800w,"/></figure><p><strong>Figure 5:</strong> a custom routing protocol based on ARP table manipulation. The routing table remains static while the ARP table is adjusted to point at healthy servers.</p><ul><li><p><strong>The granularity with which we can rebalance traffic is now directly tied to the number of next hops in our routing table</strong>. As shown in figure 5, if we removed a server from serving traffic we’d have to rewrite an ARP entry to point at a healthy server, potentially doubling the amount of traffic on the selected target. To avoid this, we can generate more next hops to provide finer-grained control, as illustrated in figure 6. By having two virtual next hops per server, we can ensure that healthy servers in the POP have an equal number of ARP entries directed at them when withdrawing server B from production.</p></li></ul><figure class="_container-img_koi9r_18 _image-container_dxsk1_3" style="--aspect-ratio:2335/1654"><img alt class="_image_dxsk1_3 _image_dxsk1_3" src="//www.fastly.com/cimages/ocb1q9kflo7k/3JkFaicj2MG3hGAcgJLl6C/290cb48306b4e8f103e99f22dfe37b83/figure6.png?auto=avif&amp;crop=2335:1654,smart&amp;width=900" srcset="//www.fastly.com/cimages/ocb1q9kflo7k/3JkFaicj2MG3hGAcgJLl6C/290cb48306b4e8f103e99f22dfe37b83/figure6.png?auto=avif&amp;crop=2335:1654,smart&amp;width=450 450w,//www.fastly.com/cimages/ocb1q9kflo7k/3JkFaicj2MG3hGAcgJLl6C/290cb48306b4e8f103e99f22dfe37b83/figure6.png?auto=avif&amp;crop=2335:1654,smart&amp;width=900 900w,//www.fastly.com/cimages/ocb1q9kflo7k/3JkFaicj2MG3hGAcgJLl6C/290cb48306b4e8f103e99f22dfe37b83/figure6.png?auto=avif&amp;crop=2335:1654,smart&amp;width=1350 1350w,//www.fastly.com/cimages/ocb1q9kflo7k/3JkFaicj2MG3hGAcgJLl6C/290cb48306b4e8f103e99f22dfe37b83/figure6.png?auto=avif&amp;crop=2335:1654,smart&amp;width=1800 1800w,"/></figure><p><strong>Figure 6:</strong> additional next hops ensure even distribution of traffic when server B is removed from service.</p><p>In 2013, these hacks alone would have provided us with a software-only implementation of ECMP with consistent hashing, two years before such a feature would become widely supported in hardware by network vendors. But we had no idea where the boundaries were, and so we ended up somewhere else entirely.</p><h3>Faild: a layer of misdirection</h3><p>When changing next hops without consistent hashing, TCP connections will be reset in every server. While Resilient ECMP avoids this, it’s still unable to gracefully withdraw a server from production. Revisiting the example in figure 6, removing host B causes the MAC addresses to abruptly transition towards either of the remaining servers in the pool. All ongoing connections towards host B will be terminated.</p><p>The commonly held assumption is that such behavior is unavoidable and only triggered on rare events like hardware failures or software crashes. In practice however the primary reason for withdrawing a server from production is for software upgrades. Incurring connection resets on upgrades has ramifications far beyond disrupting production traffic: it provides a disincentive for continuous software deployment.</p><p>Graceful failover, or host draining, cannot be implemented on the switch alone, since the switch has no visibility into what flows are in progress at any given time. If a switch were capable of tracking flow state, it would be a hardware load balancer. Our alternate solution was to distribute the responsibility of load balancing across both the controller and hosts. We named the resulting software Faild after the keepalived system it was intended to replace. Had we known it would work, we would have chosen a more impressive name.</p><p>The first step towards implementing draining is to be able to signal what host is being drained, which we can encode into the destination MAC address. While our previous examples assumed that the connected host interface has a single MAC address, there is no such limitation in practice. Using this signaling mechanism, we can now program the switch ARP table to embed the identity of a previous target host as well as the current one (figure 7).</p><figure class="_container-img_koi9r_18 _image-container_dxsk1_3" style="--aspect-ratio:2335/1646"><img alt class="_image_dxsk1_3 _image_dxsk1_3" src="//www.fastly.com/cimages/ocb1q9kflo7k/53P69JjEjeM2QgQX6TmUIY/60e3db82291e9cc583da56b896a91b50/figure7.png?auto=avif&amp;crop=2335:1646,smart&amp;width=900" srcset="//www.fastly.com/cimages/ocb1q9kflo7k/53P69JjEjeM2QgQX6TmUIY/60e3db82291e9cc583da56b896a91b50/figure7.png?auto=avif&amp;crop=2335:1646,smart&amp;width=450 450w,//www.fastly.com/cimages/ocb1q9kflo7k/53P69JjEjeM2QgQX6TmUIY/60e3db82291e9cc583da56b896a91b50/figure7.png?auto=avif&amp;crop=2335:1646,smart&amp;width=900 900w,//www.fastly.com/cimages/ocb1q9kflo7k/53P69JjEjeM2QgQX6TmUIY/60e3db82291e9cc583da56b896a91b50/figure7.png?auto=avif&amp;crop=2335:1646,smart&amp;width=1350 1350w,//www.fastly.com/cimages/ocb1q9kflo7k/53P69JjEjeM2QgQX6TmUIY/60e3db82291e9cc583da56b896a91b50/figure7.png?auto=avif&amp;crop=2335:1646,smart&amp;width=1800 1800w,"/></figure><p><strong>Figure 7:</strong> MAC encoding of proxied host alongside target host.</p><p>Now that we’ve conveyed availability information down from the switch, we can delegate the load balancing decision towards the servers. This not only removes the need for maintaining flow state within the network, but also distributes the computational cost of load balancing across a larger set of nodes, since there are far more servers than switches in a POP. This computational cost is further reduced by implementing all of the receive-side processing as a single purpose kernel module, which efficiently processes inbound packets according to the destination MAC address, as shown in figure 8:</p><figure class="_container-img_koi9r_18 _image-container_dxsk1_3" style="--aspect-ratio:2719/1239"><img alt class="_image_dxsk1_3 _image_dxsk1_3" src="//www.fastly.com/cimages/ocb1q9kflo7k/6Ord1RGK04xUC6quju6aI5/9ccaf3f6d70d0421d3f8fea7ec10c03c/figure8.png?auto=avif&amp;crop=2719:1239,smart&amp;width=900" srcset="//www.fastly.com/cimages/ocb1q9kflo7k/6Ord1RGK04xUC6quju6aI5/9ccaf3f6d70d0421d3f8fea7ec10c03c/figure8.png?auto=avif&amp;crop=2719:1239,smart&amp;width=450 450w,//www.fastly.com/cimages/ocb1q9kflo7k/6Ord1RGK04xUC6quju6aI5/9ccaf3f6d70d0421d3f8fea7ec10c03c/figure8.png?auto=avif&amp;crop=2719:1239,smart&amp;width=900 900w,//www.fastly.com/cimages/ocb1q9kflo7k/6Ord1RGK04xUC6quju6aI5/9ccaf3f6d70d0421d3f8fea7ec10c03c/figure8.png?auto=avif&amp;crop=2719:1239,smart&amp;width=1350 1350w,//www.fastly.com/cimages/ocb1q9kflo7k/6Ord1RGK04xUC6quju6aI5/9ccaf3f6d70d0421d3f8fea7ec10c03c/figure8.png?auto=avif&amp;crop=2719:1239,smart&amp;width=1800 1800w,//www.fastly.com/cimages/ocb1q9kflo7k/6Ord1RGK04xUC6quju6aI5/9ccaf3f6d70d0421d3f8fea7ec10c03c/figure8.png?auto=avif&amp;crop=2719:1239,smart&amp;width=2700 2700w,"/></figure><p><strong>Figure 8:</strong> an example of receive-side packet processing for traffic draining from host B towards host A. Packets filtered through host A are only accepted if they belong to a new connection, or if they match a local TCP socket.</p><p>The kernel module receive handler must first determine whether the previous target encoded in the ingress packet matches the local host. If so, we hand over processing to the local network stack. Otherwise, we must verify whether the packet belongs to a new connection, as signaled by the SYN flag in the TCP header (step 2), or to an existing connection, which can be verified by doing a lookup against the local socket table (step 3). If neither of these conditions are met, the packet is redirected to the previous target by rewriting the MAC header. The same processing logic is applied at host B (step 5). In this case, the host identified as the previous target matches the local host identifier, so the packet is immediately accepted.</p><figure class="_container-img_koi9r_18 _image-container_dxsk1_3" style="--aspect-ratio:1500/750"><img alt class="_image_dxsk1_3 _image_dxsk1_3" src="//www.fastly.com/cimages/ocb1q9kflo7k/5AcZDTTRurDKv6Lwup1sgm/71a5e6714f5f21c75e3b59538319bfb3/faild-figure-9.png?auto=avif&amp;crop=1500:750,smart&amp;width=900" srcset="//www.fastly.com/cimages/ocb1q9kflo7k/5AcZDTTRurDKv6Lwup1sgm/71a5e6714f5f21c75e3b59538319bfb3/faild-figure-9.png?auto=avif&amp;crop=1500:750,smart&amp;width=450 450w,//www.fastly.com/cimages/ocb1q9kflo7k/5AcZDTTRurDKv6Lwup1sgm/71a5e6714f5f21c75e3b59538319bfb3/faild-figure-9.png?auto=avif&amp;crop=1500:750,smart&amp;width=900 900w,//www.fastly.com/cimages/ocb1q9kflo7k/5AcZDTTRurDKv6Lwup1sgm/71a5e6714f5f21c75e3b59538319bfb3/faild-figure-9.png?auto=avif&amp;crop=1500:750,smart&amp;width=1350 1350w,"/></figure><p><strong>Figure 9:</strong> RPS across a cluster of servers during a rolling kernel upgrade. Hosts drop in and out of production without affecting overall service.</p><p>An operational perspective on draining (figure 9) plots the request rate across a subset of hosts within a POP during a maintenance event. In this particular case, hosts are sequentially withdrawing themselves from service in order to perform a kernel upgrade. Given all servers behave similarly, we highlighted the behavior of a single host for clarity. Neither the descent during withdrawal or ascent during reintroduction are immediate: the slope in either case indicates that flows are completing gracefully on the server they were originally established on.</p><p>The impact of Faild over the past three years in production extends far beyond traffic metrics alone. Reducing the impact of maintenance events has allowed us to deploy software more quickly with no customer impact, subsequently helping us address security vulnerabilities. It also further legitimized a network architecture where networking devices merely play a supporting role for the application they support.</p><h3>No packet left behind</h3><p>Fastly has scaled to handling millions of requests per second since Faild was first deployed in 2013. Through a combination of ECMP, ARP rewriting, and kernel hackery, we were able to do so without ever needing to buy anything more complex than a switch. None of the individual components of Faild are particularly challenging, but together they form a distributed load balancer which can perform reliably and efficiently on commodity hardware. While the devil is in the details, the implications are devastating for traditional network vendors.</p><p>As with Silverton before it, Faild had no grand design, no singular moment of brilliance, no frenzied sense of urgency. The only guiding principle was a shared belief that scaling should not be about buying a bigger box, or even buying more boxes. Faild is instead the outcome of successive iterations in articulating a problem and paring down the solution until there was nothing left to take. To fit our use case, we kept hacking away at the fringes of networking — the corners we cut were the ones that time would have inevitably eroded anyway.</p><p>Our next post will detail the fickle art of optimizing how packets reach our POPs by influencing interdomain routing, and how we went about building our global anycast network. If you prefer building systems rather than waiting years to read about them in someone else&#39;s blog post, we&#39;re hiring.</p><p>1 <a href="https://en.wikipedia.org/wiki/Fundamental_theorem_of_software_engineering">https://en.wikipedia.org/wiki/Fundamental_theorem_of_software_engineering</a></p></div></div></div></article></div><section class="_section-width_17eqa_3" data-section-theme="dark"><div class="_prefooter_17eqa_15"><div class="_prefooter-inner_17eqa_25"><div class="_animation_17eqa_117"></div><div class="_content-container_17eqa_51"><div><div class="_text-container_17eqa_75"><h2 class="_heading_17eqa_10">Ready to get started?</h2><div class="_prose_jzmkm_47 _description_17eqa_154">Get in touch with us today</div></div><div class="_button-container_17eqa_90"><a data-variant="solid" data-color-mode="dark" data-size="normal" href="/contact-sales/" url="/contact-sales/" class="_button_wofj8_1">Talk to an expert<svg width="1em" height="1em" data-icon="mdi:arrow-right"><symbol id="ai:mdi:arrow-right" viewBox="0 0 24 24"><path fill="currentColor" d="M4 11v2h12l-5.5 5.5l1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5L16 11z"/></symbol><use href="#ai:mdi:arrow-right"></use></svg></a></div></div></div></div></div></section><script async defer src="/fiddle-embed.js"></script></main><footer data-search-index="false" class="_footer-wrapper_1jfrv_10"><div class="_footer-container_1jfrv_15 _text_1jfrv_3"><div class="_footer-logo_1jfrv_34"><svg role="img" width="130" viewBox="0 0 1709 768" fill="white" aria-labelledby="fastlySimplifiedHeaderLogo"><title id="fastlySimplifiedHeaderLogo">Fastly</title><g><path d="M1154.2 134.3v421.1h126.4v-64.3h-41.8V70.2h-84.7zM55.9 491.1h43V287.9h-43V232l43-7.1v-56.6c0-68.5 14.9-98.2 102.3-98.2 18.9 0 41.2 2.8 60.8 6.3l-11.6 68.9c-13.3-2.1-19.8-2.5-28.2-2.5-30.8 0-38.6 3.1-38.6 33.1V225h63.9v62.9h-63.9V491h42.5v64.3H55.9v-64.2zM1111.1 470.7c-13.2 2.8-24.8 2.5-33.2 2.7-34.8.9-31.8-10.6-31.8-43.5v-142h66.3V225H1046V70.2h-84.7v377.3c0 74.1 18.3 107.9 98 107.9 18.9 0 44.8-4.9 64.4-9zM1637.2 491.4c17.8 0 32.2 14.1 32.2 32 0 17.8-14.4 31.9-32.2 31.9s-32.1-14.1-32.1-31.9 14.3-32 32.1-32m0 58.9c14.8 0 26.8-12.1 26.8-26.9s-12-26.6-26.8-26.6-26.7 11.8-26.7 26.6 11.9 26.9 26.7 26.9m5.9-11.2l-6.5-9.5h-4.5v9.5h-7.2v-31.4h13.1c7.8 0 12.6 3.9 12.6 10.9 0 5.1-2.6 8.6-6.6 9.8l7.8 10.8h-8.7zm-10.9-15.8h5.7c3.3 0 5.5-1.3 5.5-4.7 0-3.3-2.2-4.6-5.3-4.6h-5.9zM855.6 287.8v-11.3c-25.6-4.7-51.1-4.7-64.9-4.7-39.4 0-44.2 20.9-44.2 32.2 0 16 5.5 24.7 48.2 34 62.4 14 125.1 28.6 125.1 106 0 73.4-37.8 111.3-117.3 111.3-53.2 0-104.8-11.4-144.2-21.4v-63.2h64.1v11.2c27.6 5.3 56.5 4.8 71.6 4.8 42 0 48.8-22.6 48.8-34.6 0-16.7-12.1-24.7-51.5-32.7-74.2-12.7-133.2-38-133.2-113.5 0-71.4 47.7-99.4 127.3-99.4 53.9 0 94.8 8.4 134.2 18.4v62.8h-64zM465.9 343.4l-6.4-6.4-32.7 28.5c-1.7-.6-3.4-.9-5.3-.9-8.8 0-16 7.4-16 16.4 0 9.1 7.2 16.4 16 16.4s16-7.4 16-16.4c0-1.7-.3-3.4-.7-4.9z"></path><path d="M595.6 470.7l-.1-263.6h-84.7v24.7c-17.4-10.5-36.9-17.9-57.6-21.8h.5v-29.2H464v-21.5h-85.3v21.5H389V210h.6c-81 14.9-142.4 85.8-142.4 171.2 0 96.2 77.9 174.1 174.1 174.1 32.8 0 63.5-9.1 89.7-24.9l15.3 24.9h89.5v-84.7h-20.2zm-169.1-.1v-10h-10.1v9.9c-45.5-2.6-81.8-39.2-84.2-84.7h10.1v-10.1h-10c2.7-45.2 38.9-81.4 84.1-84v10h10.1v-10c44.6 2.4 80.5 37.4 84.4 81.5v2.9h-10.2v10.1h10.2v2.8c-3.8 44.2-39.8 79.2-84.4 81.6zM1495 225h174.7v62.9h-41.8l-107.1 263.6c-30.7 74-81.1 143.7-157.9 143.7-18.9 0-44-2.1-61.5-6.3l7.7-76.9c11.2 2.1 25.8 3.5 33.5 3.5 35.6 0 75.8-22.1 88.4-60.5l-108.6-267.1h-41.8V225h174.8v62.9h-41.7l61.5 151.3 61.5-151.3H1495z"></path></g></svg></div><ul class="_footer-link-groups-container_1jfrv_26"><li class="_footer-link-list_1jfrv_41"><h3 class="_footer-group-heading_1jfrv_53">Products</h3><ul class="_footer-group-container_1jfrv_61"><li class="_footer-link-container_1jfrv_67"><a class="_footer-link_1jfrv_26" href="/fastly-platform">Edge Cloud Platform</a></li><li class="_footer-link-container_1jfrv_67"><a class="_footer-link_1jfrv_26" href="/products/ddos-protection">DDoS Protection</a></li><li class="_footer-link-container_1jfrv_67"><a class="_footer-link_1jfrv_26" href="/products/web-application-api-protection">Next-Gen WAF</a></li><li class="_footer-link-container_1jfrv_67"><a class="_footer-link_1jfrv_26" href="/pricing">Pricing</a></li><li class="_footer-link-container_1jfrv_67"><a class="_footer-link_1jfrv_26" href="/signup">Try Fastly free</a></li><li class="_footer-link-container_1jfrv_67"><a class="_footer-link_1jfrv_26" href="/network-map">Network Map</a></li></ul></li><li class="_footer-link-list_1jfrv_41"><h3 class="_footer-group-heading_1jfrv_53">Services</h3><ul class="_footer-group-container_1jfrv_61"><li class="_footer-link-container_1jfrv_67"><a class="_footer-link_1jfrv_26" href="/services/professional-services">Professional Services</a></li><li class="_footer-link-container_1jfrv_67"><a class="_footer-link_1jfrv_26" href="/solutions/managed-cdn">Managed CDN</a></li><li class="_footer-link-container_1jfrv_67"><a class="_footer-link_1jfrv_26" href="/services/support-plans">Support Plans</a></li><li class="_footer-link-container_1jfrv_67"><a class="_footer-link_1jfrv_26" href="/contact-sales">Talk to an Expert</a></li></ul></li><li class="_footer-link-list_1jfrv_41"><h3 class="_footer-group-heading_1jfrv_53">Learn</h3><ul class="_footer-group-container_1jfrv_61"><li class="_footer-link-container_1jfrv_67"><a class="_footer-link_1jfrv_26" href="/documentation/">Documentation</a></li><li class="_footer-link-container_1jfrv_67"><a class="_footer-link_1jfrv_26" href="/documentation/developers/">Developers</a></li><li class="_footer-link-container_1jfrv_67"><a class="_footer-link_1jfrv_26" href="/resources">Resource Library</a></li><li class="_footer-link-container_1jfrv_67"><a class="_footer-link_1jfrv_26" href="/blog">Blog</a></li><li class="_footer-link-container_1jfrv_67"><a class="_footer-link_1jfrv_26" href="/events">Events</a></li></ul></li><li class="_footer-link-list_1jfrv_41"><h3 class="_footer-group-heading_1jfrv_53">Support</h3><ul class="_footer-group-container_1jfrv_61"><li class="_footer-link-container_1jfrv_67"><a class="_footer-link_1jfrv_26" href="https://support.fastly.com/">Support Center</a></li><li class="_footer-link-container_1jfrv_67"><a class="_footer-link_1jfrv_26" href="https://www.fastlystatus.com/">Network Status</a></li><li class="_footer-link-container_1jfrv_67"><a class="_footer-link_1jfrv_26" href="/contact-us">Contact Us</a></li></ul></li><li class="_footer-link-list_1jfrv_41"><h3 class="_footer-group-heading_1jfrv_53">Company</h3><ul class="_footer-group-container_1jfrv_61"><li class="_footer-link-container_1jfrv_67"><a class="_footer-link_1jfrv_26" href="/company">About Us</a></li><li class="_footer-link-container_1jfrv_67"><a class="_footer-link_1jfrv_26" href="/about/careers">Careers</a></li><li class="_footer-link-container_1jfrv_67"><a class="_footer-link_1jfrv_26" href="/customers">Customer Stories</a></li><li class="_footer-link-container_1jfrv_67"><a class="_footer-link_1jfrv_26" href="/partners">Partners</a></li><li class="_footer-link-container_1jfrv_67"><a class="_footer-link_1jfrv_26" href="/press">News</a></li><li class="_footer-link-container_1jfrv_67"><a class="_footer-link_1jfrv_26" href="https://investors.fastly.com/">Investor Relations</a></li><li class="_footer-link-container_1jfrv_67"><a class="_footer-link_1jfrv_26" href="/trust">Trust</a></li></ul></li><li class="_footer-link-list_1jfrv_41"><h3 class="_footer-group-heading_1jfrv_53">Compare</h3><ul class="_footer-group-container_1jfrv_61"><li class="_footer-link-container_1jfrv_67"><a class="_footer-link_1jfrv_26" href="https://www.fastly.com/resources/datasheets/fastly-vs-akamai">Fastly vs. Akamai</a></li><li class="_footer-link-container_1jfrv_67"><a class="_footer-link_1jfrv_26" href="https://www.fastly.com/resources/datasheets/capability-comparison-cloudflare/">Fastly vs. Cloudflare</a></li><li class="_footer-link-container_1jfrv_67"><a class="_footer-link_1jfrv_26" href="https://www.fastly.com/resources/datasheets/capability-comparison-security-imperva/">Fastly vs. Imperva</a></li><li class="_footer-link-container_1jfrv_67"><a class="_footer-link_1jfrv_26" href="https://www.fastly.com/resources/datasheets/fastly-cdn-performance-compared-to-cloud-providers/">Fastly with Cloud Providers</a></li></ul></li></ul><div class="_footer-bottom-container_1jfrv_77"><div class="_footer-links-section_1jfrv_88"><span>©&nbsp;Fastly&nbsp;2026</span><ul class="_footer-legal-container_1jfrv_99"><li><a class="_footer-legal-links_1jfrv_119" href="/terms/">Terms of Service</a></li><li><a class="_footer-legal-links_1jfrv_119" href="/privacy/">Privacy policy</a></li><li><a class="_footer-legal-links_1jfrv_119" href="/acceptable-use">Acceptable Use</a></li></ul></div><div class="_footer-links-section_1jfrv_88"><ul class="_footer-socials-container_1jfrv_109"><li class="_footer-socials_1jfrv_109"><a class="_footer-link_1jfrv_26" href="https://www.twitter.com/fastly">X</a><svg width="1em" height="1em" data-icon="mdi:arrow-top-right"><symbol id="ai:mdi:arrow-top-right" viewBox="0 0 24 24"><path fill="currentColor" d="M5 17.59L15.59 7H9V5h10v10h-2V8.41L6.41 19z"/></symbol><use href="#ai:mdi:arrow-top-right"></use></svg></li><li class="_footer-socials_1jfrv_109"><a class="_footer-link_1jfrv_26" href="https://www.linkedin.com/company/fastly">LinkedIn</a><svg width="1em" height="1em" viewBox="0 0 24 24" data-icon="mdi:arrow-top-right"><use href="#ai:mdi:arrow-top-right"></use></svg></li><li class="_footer-socials_1jfrv_109"><a class="_footer-link_1jfrv_26" href="https://www.instagram.com/fastlyinc">Instagram</a><svg width="1em" height="1em" viewBox="0 0 24 24" data-icon="mdi:arrow-top-right"><use href="#ai:mdi:arrow-top-right"></use></svg></li><li class="_footer-socials_1jfrv_109"><a class="_footer-link_1jfrv_26" href="https://www.youtube.com/@Fastly-Inc">YouTube</a><svg width="1em" height="1em" viewBox="0 0 24 24" data-icon="mdi:arrow-top-right"><use href="#ai:mdi:arrow-top-right"></use></svg></li></ul></div></div></div></footer></div><script>(function(){const mode = "production";
const readCookie = (n) => {
if (typeof document === "undefined") {
return null
}
return (
(document.cookie.split(/;\s*/).find((c) => c.startsWith(`${n}=`)) || "").slice(
n.length + 1,
) || undefined
)
}
const readSubcookie = (cv, sck) =>
decodeURIComponent(
(cv.split(/&/).find((sc) => sc.startsWith(`${sck}=`)) || "").slice(sck.length + 1),
) || undefined
let dds = "d8606fe0-eb46-49e2-9118-e39304fc0f7b"
if (mode !== "production") {
dds += "-test"
}
const consentCookiePresent = readCookie("OptanonConsent")
const alertBoxClosed = readCookie("OptanonAlertBoxClosed")
let preferenceVals = null
let acceptsAllCookieTypes = false
if (consentCookiePresent) {
const groups = readSubcookie(consentCookiePresent, "groups")
if (groups) {
// Consented categories are expected to be a comma separated string of 3 key:boolean pairs
// e.g. groups=req:1,funcs:1,adv:0
// Groups and total count are defined within the CookiePro service
const groupsArray = groups.split(",").filter((group) => group.includes(":1"))
acceptsAllCookieTypes = groupsArray.length === 3
preferenceVals = groupsArray.join(",").replace(/:1/g, "")
}
}
window.OptanonWrapper = function () {
if (window.__consentGranted) {
window.__consentGranted()
}
}
if ((alertBoxClosed || acceptsAllCookieTypes) && "dataLayer" in window) {
window.dataLayer.push(
{
event: "OneTrustLoaded",
OnetrustActiveGroups: `${preferenceVals}`,
},
{
event: "OptanonLoaded",
OptanonActiveGroups: `${preferenceVals}`,
},
{
event: "OneTrustGroupsUpdated",
OnetrustActiveGroups: `${preferenceVals}`,
},
)
if (window.__consentGranted) {
window.__consentGranted()
}
} else {
;(function () {
var s = document.createElement("script")
s.type = "text/javascript"
s.async = true
s.charset = "UTF-8"
s.setAttribute("data-document-language", "true")
s.setAttribute("data-domain-script", `${dds}`)
s.src = "//cdn.cookielaw.org/scripttemplates/otSDKStub.js"
document.getElementsByTagName("head")[0].appendChild(s)
})()
}
})();</script><script type="module" src="/_astro/Layout.astro_astro_type_script_index_0_lang.DWvkbvit.js"></script></body></html>