Files
nexus/sreweekly/articles/488/02-jet-lag-the-traffic.html
2026-09-12 17:23:01 +08:00

643 lines
80 KiB
HTML
Raw 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-US">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
<link rel="profile" href="http://gmpg.org/xfn/11">
<meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' />
<style>img:is([sizes="auto" i], [sizes^="auto," i]) { contain-intrinsic-size: 3000px 1500px }</style>
<!-- This site is optimized with the Yoast SEO plugin v25.7 - https://yoast.com/wordpress/plugins/seo/ -->
<title>Jet Lag: The Traffic &#8212; Nebula Blog</title>
<meta name="description" content="Not only was this our biggest day ever for signups, it was also our biggest day ever for traffic. In this post I’d like to give you a peek behind the" />
<link rel="canonical" href="https://blog.nebula.tv/jet-lag-the-traffic/" />
<meta property="og:locale" content="en_US" />
<meta property="og:type" content="article" />
<meta property="og:title" content="Jet Lag: The Traffic &#8212; Nebula Blog" />
<meta property="og:description" content="Not only was this our biggest day ever for signups, it was also our biggest day ever for traffic. In this post I’d like to give you a peek behind the" />
<meta property="og:url" content="https://blog.nebula.tv/jet-lag-the-traffic/" />
<meta property="og:site_name" content="Nebula Blog" />
<meta property="article:published_time" content="2023-01-13T20:01:12+00:00" />
<meta property="article:modified_time" content="2025-02-14T22:20:00+00:00" />
<meta property="og:image" content="https://blog.nebula.tv/wp-content/uploads/2023/01/jet-lag-traffic.jpg" />
<meta property="og:image:width" content="854" />
<meta property="og:image:height" content="480" />
<meta property="og:image:type" content="image/jpeg" />
<meta name="author" content="Sam Rose" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:creator" content="@standardshows" />
<meta name="twitter:site" content="@standardshows" />
<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"Article","@id":"https://blog.nebula.tv/jet-lag-the-traffic/#article","isPartOf":{"@id":"https://blog.nebula.tv/jet-lag-the-traffic/"},"author":{"name":"Sam Rose","@id":"https://blog.nebula.tv/#/schema/person/849e766379f266b9c454e784ee0c404f"},"headline":"Jet Lag: The Traffic","datePublished":"2023-01-13T20:01:12+00:00","dateModified":"2025-02-14T22:20:00+00:00","mainEntityOfPage":{"@id":"https://blog.nebula.tv/jet-lag-the-traffic/"},"wordCount":1397,"publisher":{"@id":"https://blog.nebula.tv/#organization"},"image":{"@id":"https://blog.nebula.tv/jet-lag-the-traffic/#primaryimage"},"thumbnailUrl":"https://blog.nebula.tv/wp-content/uploads/2023/01/jet-lag-traffic.jpg","keywords":["Backend","Development"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https://blog.nebula.tv/jet-lag-the-traffic/","url":"https://blog.nebula.tv/jet-lag-the-traffic/","name":"Jet Lag: The Traffic &#8212; Nebula Blog","isPartOf":{"@id":"https://blog.nebula.tv/#website"},"primaryImageOfPage":{"@id":"https://blog.nebula.tv/jet-lag-the-traffic/#primaryimage"},"image":{"@id":"https://blog.nebula.tv/jet-lag-the-traffic/#primaryimage"},"thumbnailUrl":"https://blog.nebula.tv/wp-content/uploads/2023/01/jet-lag-traffic.jpg","datePublished":"2023-01-13T20:01:12+00:00","dateModified":"2025-02-14T22:20:00+00:00","description":"Not only was this our biggest day ever for signups, it was also our biggest day ever for traffic. In this post I’d like to give you a peek behind the","breadcrumb":{"@id":"https://blog.nebula.tv/jet-lag-the-traffic/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https://blog.nebula.tv/jet-lag-the-traffic/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https://blog.nebula.tv/jet-lag-the-traffic/#primaryimage","url":"https://blog.nebula.tv/wp-content/uploads/2023/01/jet-lag-traffic.jpg","contentUrl":"https://blog.nebula.tv/wp-content/uploads/2023/01/jet-lag-traffic.jpg","width":854,"height":480},{"@type":"BreadcrumbList","@id":"https://blog.nebula.tv/jet-lag-the-traffic/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog","item":"https://blog.nebula.tv/"},{"@type":"ListItem","position":2,"name":"Jet Lag: The Traffic"}]},{"@type":"WebSite","@id":"https://blog.nebula.tv/#website","url":"https://blog.nebula.tv/","name":"Nebula Blog","description":"The latest updates from Nebula","publisher":{"@id":"https://blog.nebula.tv/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://blog.nebula.tv/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https://blog.nebula.tv/#organization","name":"Nebula","url":"https://blog.nebula.tv/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https://blog.nebula.tv/#/schema/logo/image/","url":"https://blog.nebula.tv/wp-content/uploads/2021/10/Nebula-Logo-Lockup-16-9.jpg","contentUrl":"https://blog.nebula.tv/wp-content/uploads/2021/10/Nebula-Logo-Lockup-16-9.jpg","width":1920,"height":1080,"caption":"Nebula"},"image":{"@id":"https://blog.nebula.tv/#/schema/logo/image/"},"sameAs":["https://x.com/standardshows"]},{"@type":"Person","@id":"https://blog.nebula.tv/#/schema/person/849e766379f266b9c454e784ee0c404f","name":"Sam Rose","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https://blog.nebula.tv/#/schema/person/image/","url":"https://secure.gravatar.com/avatar/eac02b3210e381d18b0b26cc3fa6bc7325e7f8e9d03475f957262ad871d1695c?s=96&d=mm&r=g","contentUrl":"https://secure.gravatar.com/avatar/eac02b3210e381d18b0b26cc3fa6bc7325e7f8e9d03475f957262ad871d1695c?s=96&d=mm&r=g","caption":"Sam Rose"},"description":"Lead Engineer, Nebula API Team","url":"https://blog.nebula.tv/author/sam/"}]}</script>
<!-- / Yoast SEO plugin. -->
<link rel="alternate" type="application/rss+xml" title="Nebula Blog &raquo; Feed" href="https://blog.nebula.tv/feed/" />
<script>
window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/16.0.1\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/16.0.1\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/blog.nebula.tv\/wp-includes\/js\/wp-emoji-release.min.js?ver=1756136133"}};
/*! This file is auto-generated */
!function(s,n){var o,i,e;function c(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(o,JSON.stringify(t))}catch(e){}}function p(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data),a=(e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0),new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data));return t.every(function(e,t){return e===a[t]})}function u(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);for(var n=e.getImageData(16,16,1,1),a=0;a<n.data.length;a++)if(0!==n.data[a])return!1;return!0}function f(e,t,n,a){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!a(e,"\ud83e\udedf")}return!1}function g(e,t,n,a){var r="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):s.createElement("canvas"),o=r.getContext("2d",{willReadFrequently:!0}),i=(o.textBaseline="top",o.font="600 32px Arial",{});return e.forEach(function(e){i[e]=t(o,e,n,a)}),i}function t(e){var t=s.createElement("script");t.src=e,t.defer=!0,s.head.appendChild(t)}"undefined"!=typeof Promise&&(o="wpEmojiSettingsSupports",i=["flag","emoji"],n.supports={everything:!0,everythingExceptFlag:!0},e=new Promise(function(e){s.addEventListener("DOMContentLoaded",e,{once:!0})}),new Promise(function(t){var n=function(){try{var e=JSON.parse(sessionStorage.getItem(o));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+g.toString()+"("+[JSON.stringify(i),f.toString(),p.toString(),u.toString()].join(",")+"));",a=new Blob([e],{type:"text/javascript"}),r=new Worker(URL.createObjectURL(a),{name:"wpTestEmojiSupports"});return void(r.onmessage=function(e){c(n=e.data),r.terminate(),t(n)})}catch(e){}c(n=g(i,f,p,u))}t(n)}).then(function(e){for(var t in e)n.supports[t]=e[t],n.supports.everything=n.supports.everything&&n.supports[t],"flag"!==t&&(n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&n.supports[t]);n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&!n.supports.flag,n.DOMReady=!1,n.readyCallback=function(){n.DOMReady=!0}}).then(function(){return e}).then(function(){var e;n.supports.everything||(n.readyCallback(),(e=n.source||{}).concatemoji?t(e.concatemoji):e.wpemoji&&e.twemoji&&(t(e.twemoji),t(e.wpemoji)))}))}((window,document),window._wpemojiSettings);
</script>
<style id='wp-emoji-styles-inline-css'>
img.wp-smiley, img.emoji {
display: inline !important;
border: none !important;
box-shadow: none !important;
height: 1em !important;
width: 1em !important;
margin: 0 0.07em !important;
vertical-align: -0.1em !important;
background: none !important;
padding: 0 !important;
}
</style>
<link rel='stylesheet' id='wp-block-library-css' href='https://blog.nebula.tv/wp-includes/css/dist/block-library/style.min.css?ver=1756136134' media='all' />
<link rel='stylesheet' id='prismatic-blocks-css' href='https://blog.nebula.tv/wp-content/plugins/prismatic/css/styles-blocks.css?ver=1756136065' media='all' />
<style id='global-styles-inline-css'>
:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:root { --wp--style--global--content-size: 800px;--wp--style--global--wide-size: 1200px; }:where(body) { margin: 0; }.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }:where(.wp-site-blocks) > * { margin-block-start: 24px; margin-block-end: 0; }:where(.wp-site-blocks) > :first-child { margin-block-start: 0; }:where(.wp-site-blocks) > :last-child { margin-block-end: 0; }:root { --wp--style--block-gap: 24px; }:root :where(.is-layout-flow) > :first-child{margin-block-start: 0;}:root :where(.is-layout-flow) > :last-child{margin-block-end: 0;}:root :where(.is-layout-flow) > *{margin-block-start: 24px;margin-block-end: 0;}:root :where(.is-layout-constrained) > :first-child{margin-block-start: 0;}:root :where(.is-layout-constrained) > :last-child{margin-block-end: 0;}:root :where(.is-layout-constrained) > *{margin-block-start: 24px;margin-block-end: 0;}:root :where(.is-layout-flex){gap: 24px;}:root :where(.is-layout-grid){gap: 24px;}.is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width: var(--wp--style--global--content-size);margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > .alignwide{max-width: var(--wp--style--global--wide-size);}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}a:where(:not(.wp-element-button)){text-decoration: underline;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;line-height: inherit;padding: calc(0.667em + 2px) calc(1.333em + 2px);text-decoration: none;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}
:root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;}
</style>
<link rel='stylesheet' id='hello-elementor-css' href='https://blog.nebula.tv/wp-content/themes/hello-elementor/assets/css/reset.css?ver=1756136116' media='all' />
<link rel='stylesheet' id='hello-elementor-theme-style-css' href='https://blog.nebula.tv/wp-content/themes/hello-elementor/assets/css/theme.css?ver=1756136116' media='all' />
<link rel='stylesheet' id='hello-elementor-header-footer-css' href='https://blog.nebula.tv/wp-content/themes/hello-elementor/assets/css/header-footer.css?ver=1756136116' media='all' />
<link rel='stylesheet' id='elementor-frontend-css' href='https://blog.nebula.tv/wp-content/uploads/elementor/css/custom-frontend.min.css?ver=1786852503' media='all' />
<link rel='stylesheet' id='widget-nav-menu-css' href='https://blog.nebula.tv/wp-content/uploads/elementor/css/custom-pro-widget-nav-menu.min.css?ver=1786852504' media='all' />
<link rel='stylesheet' id='widget-image-css' href='https://blog.nebula.tv/wp-content/plugins/elementor/assets/css/widget-image.min.css?ver=1756136061' media='all' />
<link rel='stylesheet' id='widget-search-form-css' href='https://blog.nebula.tv/wp-content/plugins/elementor-pro/assets/css/widget-search-form.min.css?ver=1739525596' media='all' />
<link rel='stylesheet' id='elementor-icons-shared-0-css' href='https://blog.nebula.tv/wp-content/plugins/elementor/assets/lib/font-awesome/css/fontawesome.min.css?ver=1756136061' media='all' />
<link rel='stylesheet' id='elementor-icons-fa-solid-css' href='https://blog.nebula.tv/wp-content/plugins/elementor/assets/lib/font-awesome/css/solid.min.css?ver=1756136061' media='all' />
<link rel='stylesheet' id='e-sticky-css' href='https://blog.nebula.tv/wp-content/plugins/elementor-pro/assets/css/modules/sticky.min.css?ver=1739525596' media='all' />
<link rel='stylesheet' id='widget-spacer-css' href='https://blog.nebula.tv/wp-content/plugins/elementor/assets/css/widget-spacer.min.css?ver=1756136061' media='all' />
<link rel='stylesheet' id='e-animation-fadeIn-css' href='https://blog.nebula.tv/wp-content/plugins/elementor/assets/lib/animations/styles/fadeIn.min.css?ver=1756136061' media='all' />
<link rel='stylesheet' id='widget-heading-css' href='https://blog.nebula.tv/wp-content/plugins/elementor/assets/css/widget-heading.min.css?ver=1756136061' media='all' />
<link rel='stylesheet' id='widget-post-navigation-css' href='https://blog.nebula.tv/wp-content/plugins/elementor-pro/assets/css/widget-post-navigation.min.css?ver=1739525596' media='all' />
<link rel='stylesheet' id='elementor-icons-css' href='https://blog.nebula.tv/wp-content/plugins/elementor/assets/lib/eicons/css/elementor-icons.min.css?ver=1756136061' media='all' />
<link rel='stylesheet' id='elementor-post-34-css' href='https://blog.nebula.tv/wp-content/uploads/elementor/css/post-34.css?ver=1786852504' media='all' />
<link rel='stylesheet' id='elementor-post-33-css' href='https://blog.nebula.tv/wp-content/uploads/elementor/css/post-33.css?ver=1786852504' media='all' />
<link rel='stylesheet' id='elementor-post-50-css' href='https://blog.nebula.tv/wp-content/uploads/elementor/css/post-50.css?ver=1786852504' media='all' />
<link rel='stylesheet' id='elementor-post-7027-css' href='https://blog.nebula.tv/wp-content/uploads/elementor/css/post-7027.css?ver=1786852504' media='all' />
<script src="https://blog.nebula.tv/wp-includes/js/jquery/jquery.min.js?ver=1700500772" id="jquery-core-js"></script>
<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://blog.nebula.tv/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fblog.nebula.tv%2Fjet-lag-the-traffic%2F" />
<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://blog.nebula.tv/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fblog.nebula.tv%2Fjet-lag-the-traffic%2F&#038;format=xml" />
<meta name="generator" content="Elementor 3.31.2; features: additional_custom_breakpoints, e_element_cache; settings: css_print_method-external, google_font-disabled, font_display-auto">
<style>
.e-con.e-parent:nth-of-type(n+4):not(.e-lazyloaded):not(.e-no-lazyload),
.e-con.e-parent:nth-of-type(n+4):not(.e-lazyloaded):not(.e-no-lazyload) * {
background-image: none !important;
}
@media screen and (max-height: 1024px) {
.e-con.e-parent:nth-of-type(n+3):not(.e-lazyloaded):not(.e-no-lazyload),
.e-con.e-parent:nth-of-type(n+3):not(.e-lazyloaded):not(.e-no-lazyload) * {
background-image: none !important;
}
}
@media screen and (max-height: 640px) {
.e-con.e-parent:nth-of-type(n+2):not(.e-lazyloaded):not(.e-no-lazyload),
.e-con.e-parent:nth-of-type(n+2):not(.e-lazyloaded):not(.e-no-lazyload) * {
background-image: none !important;
}
}
</style>
<link rel="preconnect" href="https://fonts.nebula.tv" />
<link rel="stylesheet" href="https://fonts.nebula.tv/nebula-sans/latest/index.css">
<style>
:root {
--nebula-font-stack: 'Nebula Sans', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}
body, h1, h2, h3, h4, h5, h6 {
font-family: var(--nebula-font-stack)!important;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing:grayscale;
}
</style><link rel="icon" href="https://blog.nebula.tv/wp-content/uploads/2020/06/nebula-icon-150x150.png" sizes="32x32" />
<link rel="icon" href="https://blog.nebula.tv/wp-content/uploads/2020/06/nebula-icon-300x300.png" sizes="192x192" />
<link rel="apple-touch-icon" href="https://blog.nebula.tv/wp-content/uploads/2020/06/nebula-icon-300x300.png" />
<meta name="msapplication-TileImage" content="https://blog.nebula.tv/wp-content/uploads/2020/06/nebula-icon-300x300.png" />
</head>
<body class="wp-singular post-template-default single single-post postid-7463 single-format-standard wp-embed-responsive wp-theme-hello-elementor wp-child-theme-standard-theme hello-elementor-default elementor-default elementor-kit-34 elementor-page-7027">
<script data-cookieconsent="ignore">
(function(window,document,dataLayerName,id){
window[dataLayerName]=window[dataLayerName]||[],window[dataLayerName].push({start:(new Date).getTime(),event:"stg.start"});var scripts=document.getElementsByTagName('script')[0],tags=document.createElement('script');
function stgCreateCookie(a,b,c){var d="";if(c){var e=new Date;e.setTime(e.getTime()+24*c*60*60*1e3),d=";expires="+e.toUTCString()}document.cookie=a+"="+b+d+";path=/"}
var isStgDebug=(window.location.href.match("stg_debug")||document.cookie.match("stg_debug"))&&!window.location.href.match("stg_disable_debug");stgCreateCookie("stg_debug",isStgDebug?1:"",isStgDebug?14:-1);
var qP=[];dataLayerName!=="dataLayer"&&qP.push("data_layer_name="+dataLayerName),isStgDebug&&qP.push("stg_debug");var qPString=qP.length>0?("?"+qP.join("&")):"";
tags.async=!0,tags.src="https://nebula.piwik.pro/"+id+".js"+qPString,scripts.parentNode.insertBefore(tags,scripts);
!function(a,n,i){a[n]=a[n]||{};for(var c=0;c<i.length;c++)!function(i){a[n][i]=a[n][i]||{},a[n][i].api=a[n][i].api||function(){var a=[].slice.call(arguments,0);"string"==typeof a[0]&&window[dataLayerName].push({event:n+"."+i+":"+a[0],parameters:[].slice.call(arguments,1)})}}(i[c])}(window,"ppms",["tm","cm"]);
})(window,document,'dataLayer','b4a282f0-ee7e-4781-a29c-ccf315c4e81b');
</script>
<div data-elementor-type="header" data-elementor-id="33" class="elementor elementor-33 elementor-location-header" data-elementor-post-type="elementor_library">
<section class="elementor-section elementor-top-section elementor-element elementor-element-73a7865 elementor-section-height-min-height elementor-section-content-space-around elementor-section-boxed elementor-section-height-default elementor-section-items-middle" data-id="73a7865" data-element_type="section" id="nebula-header" data-settings="{&quot;background_background&quot;:&quot;classic&quot;,&quot;sticky&quot;:&quot;top&quot;,&quot;sticky_on&quot;:[&quot;desktop&quot;,&quot;tablet&quot;],&quot;sticky_offset&quot;:0,&quot;sticky_effects_offset&quot;:0,&quot;sticky_anchor_link_offset&quot;:0}">
<div class="elementor-container elementor-column-gap-default">
<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-49d6a78" data-id="49d6a78" data-element_type="column">
<div class="elementor-widget-wrap elementor-element-populated">
<section class="elementor-section elementor-inner-section elementor-element elementor-element-85e2f3b elementor-section-full_width elementor-section-content-space-around elementor-section-height-default elementor-section-height-default" data-id="85e2f3b" data-element_type="section">
<div class="elementor-container elementor-column-gap-default">
<div class="elementor-column elementor-col-33 elementor-inner-column elementor-element elementor-element-fe2c2ec" data-id="fe2c2ec" data-element_type="column">
<div class="elementor-widget-wrap elementor-element-populated">
<div class="elementor-element elementor-element-8bd78cc elementor-nav-menu__align-start elementor-nav-menu--stretch elementor-hidden-tablet elementor-hidden-phone elementor-nav-menu--dropdown-tablet elementor-nav-menu__text-align-aside elementor-nav-menu--toggle elementor-nav-menu--burger elementor-widget elementor-widget-nav-menu" data-id="8bd78cc" data-element_type="widget" data-settings="{&quot;full_width&quot;:&quot;stretch&quot;,&quot;layout&quot;:&quot;horizontal&quot;,&quot;submenu_icon&quot;:{&quot;value&quot;:&quot;&lt;i class=\&quot;fas fa-caret-down\&quot;&gt;&lt;\/i&gt;&quot;,&quot;library&quot;:&quot;fa-solid&quot;},&quot;toggle&quot;:&quot;burger&quot;}" data-widget_type="nav-menu.default">
<div class="elementor-widget-container">
<nav aria-label="Menu" class="elementor-nav-menu--main elementor-nav-menu__container elementor-nav-menu--layout-horizontal e--pointer-text e--animation-none">
<ul id="menu-1-8bd78cc" class="elementor-nav-menu"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-152"><a target="_blank" href="http://nebula.tv" class="elementor-item">Home</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-6291"><a href="https://nebula.tv/library" class="elementor-item">Library</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-7114"><a href="https://nebula.tv/explore/videos" class="elementor-item">Explore</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-7360"><a href="https://store.nebula.tv/" class="elementor-item">Store</a></li>
</ul> </nav>
<div class="elementor-menu-toggle" role="button" tabindex="0" aria-label="Menu Toggle" aria-expanded="false">
<i aria-hidden="true" role="presentation" class="elementor-menu-toggle__icon--open eicon-menu-bar"></i><i aria-hidden="true" role="presentation" class="elementor-menu-toggle__icon--close eicon-close"></i> </div>
<nav class="elementor-nav-menu--dropdown elementor-nav-menu__container" aria-hidden="true">
<ul id="menu-2-8bd78cc" class="elementor-nav-menu"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-152"><a target="_blank" href="http://nebula.tv" class="elementor-item" tabindex="-1">Home</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-6291"><a href="https://nebula.tv/library" class="elementor-item" tabindex="-1">Library</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-7114"><a href="https://nebula.tv/explore/videos" class="elementor-item" tabindex="-1">Explore</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-7360"><a href="https://store.nebula.tv/" class="elementor-item" tabindex="-1">Store</a></li>
</ul> </nav>
</div>
</div>
<div class="elementor-element elementor-element-13a9820 elementor-nav-menu__align-start elementor-nav-menu--stretch elementor-hidden-desktop elementor-hidden-laptop elementor-nav-menu--dropdown-tablet elementor-nav-menu__text-align-aside elementor-nav-menu--toggle elementor-nav-menu--burger elementor-widget elementor-widget-nav-menu" data-id="13a9820" data-element_type="widget" data-settings="{&quot;full_width&quot;:&quot;stretch&quot;,&quot;layout&quot;:&quot;horizontal&quot;,&quot;submenu_icon&quot;:{&quot;value&quot;:&quot;&lt;i class=\&quot;fas fa-caret-down\&quot;&gt;&lt;\/i&gt;&quot;,&quot;library&quot;:&quot;fa-solid&quot;},&quot;toggle&quot;:&quot;burger&quot;}" data-widget_type="nav-menu.default">
<div class="elementor-widget-container">
<nav aria-label="Menu" class="elementor-nav-menu--main elementor-nav-menu__container elementor-nav-menu--layout-horizontal e--pointer-text e--animation-none">
<ul id="menu-1-13a9820" class="elementor-nav-menu"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-4348"><a href="https://nebula.tv" class="elementor-item">Home</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-6292"><a href="https://nebula.tv/library" class="elementor-item">Library</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-7236"><a href="https://nebula.tv/explore/videos" class="elementor-item">Explore</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-7237"><a href="https://store.nebula.tv/" class="elementor-item">Store</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-7266"><a href="https://blog.nebula.tv/all/" class="elementor-item">Blog</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-7254"><a href="https://blog.nebula.tv/search/" class="elementor-item">Search</a></li>
</ul> </nav>
<div class="elementor-menu-toggle" role="button" tabindex="0" aria-label="Menu Toggle" aria-expanded="false">
<i aria-hidden="true" role="presentation" class="elementor-menu-toggle__icon--open eicon-menu-bar"></i><i aria-hidden="true" role="presentation" class="elementor-menu-toggle__icon--close eicon-close"></i> </div>
<nav class="elementor-nav-menu--dropdown elementor-nav-menu__container" aria-hidden="true">
<ul id="menu-2-13a9820" class="elementor-nav-menu"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-4348"><a href="https://nebula.tv" class="elementor-item" tabindex="-1">Home</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-6292"><a href="https://nebula.tv/library" class="elementor-item" tabindex="-1">Library</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-7236"><a href="https://nebula.tv/explore/videos" class="elementor-item" tabindex="-1">Explore</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-7237"><a href="https://store.nebula.tv/" class="elementor-item" tabindex="-1">Store</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-7266"><a href="https://blog.nebula.tv/all/" class="elementor-item" tabindex="-1">Blog</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-7254"><a href="https://blog.nebula.tv/search/" class="elementor-item" tabindex="-1">Search</a></li>
</ul> </nav>
</div>
</div>
</div>
</div>
<div class="elementor-column elementor-col-33 elementor-inner-column elementor-element elementor-element-e39db4a" data-id="e39db4a" data-element_type="column" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
<div class="elementor-widget-wrap elementor-element-populated">
<div class="elementor-element elementor-element-a6abc76 elementor-widget elementor-widget-image" data-id="a6abc76" data-element_type="widget" data-widget_type="image.default">
<div class="elementor-widget-container">
<a href="/">
<img src="https://blog.nebula.tv/wp-content/uploads/2020/06/NebulaStarXS.svg" class="attachment-full size-full wp-image-7829" alt="" /> </a>
</div>
</div>
</div>
</div>
<div class="elementor-column elementor-col-33 elementor-inner-column elementor-element elementor-element-db936b6 header-height elementor-hidden-phone" data-id="db936b6" data-element_type="column">
<div class="elementor-widget-wrap elementor-element-populated">
<div class="elementor-element elementor-element-68947ce elementor-search-form--skin-minimal elementor-hidden-tablet elementor-hidden-mobile elementor-widget__width-auto elementor-widget elementor-widget-search-form" data-id="68947ce" data-element_type="widget" data-settings="{&quot;skin&quot;:&quot;minimal&quot;}" data-widget_type="search-form.default">
<div class="elementor-widget-container">
<search role="search">
<form class="elementor-search-form" action="https://blog.nebula.tv" method="get">
<div class="elementor-search-form__container">
<label class="elementor-screen-only" for="elementor-search-form-68947ce">Search</label>
<div class="elementor-search-form__icon">
<i aria-hidden="true" class="fas fa-search"></i> <span class="elementor-screen-only">Search</span>
</div>
<input id="elementor-search-form-68947ce" placeholder="Search the blog…" class="elementor-search-form__input" type="search" name="s" value="">
</div>
</form>
</search>
</div>
</div>
</div>
</div>
</div>
</section>
</div>
</div>
</div>
</section>
</div>
<div data-elementor-type="single-post" data-elementor-id="7027" class="elementor elementor-7027 elementor-location-single post-7463 post type-post status-publish format-standard has-post-thumbnail hentry category-uncategorized tag-backend tag-development" data-elementor-post-type="elementor_library">
<section class="elementor-section elementor-top-section elementor-element elementor-element-bfe09dd elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="bfe09dd" data-element_type="section">
<div class="elementor-container elementor-column-gap-wider">
<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-ee53a8a" data-id="ee53a8a" data-element_type="column">
<div class="elementor-widget-wrap elementor-element-populated">
<div class="elementor-element elementor-element-c96b542 elementor-widget elementor-widget-heading" data-id="c96b542" data-element_type="widget" data-widget_type="heading.default">
<div class="elementor-widget-container">
<h3 class="elementor-heading-title elementor-size-default"><a href="/">Nebula Blog</a></h3> </div>
</div>
<div class="elementor-element elementor-element-ada4048 elementor-widget elementor-widget-heading" data-id="ada4048" data-element_type="widget" data-widget_type="heading.default">
<div class="elementor-widget-container">
<h1 class="elementor-heading-title elementor-size-large">Jet Lag: The Traffic</h1> </div>
</div>
</div>
</div>
</div>
</section>
<section class="elementor-section elementor-top-section elementor-element elementor-element-31476eb elementor-section-content-top elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="31476eb" data-element_type="section">
<div class="elementor-container elementor-column-gap-default">
<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-8e86d4b" data-id="8e86d4b" data-element_type="column">
<div class="elementor-widget-wrap elementor-element-populated">
<section class="elementor-section elementor-inner-section elementor-element elementor-element-0dc3038 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="0dc3038" data-element_type="section">
<div class="elementor-container elementor-column-gap-default">
<div class="elementor-column elementor-col-100 elementor-inner-column elementor-element elementor-element-98e5169" data-id="98e5169" data-element_type="column">
<div class="elementor-widget-wrap elementor-element-populated">
<div class="elementor-element elementor-element-3157826 elementor-widget elementor-widget-heading" data-id="3157826" data-element_type="widget" data-widget_type="heading.default">
<div class="elementor-widget-container">
<h3 class="elementor-heading-title elementor-size-default">January 13, 2023</h3> </div>
</div>
<div class="elementor-element elementor-element-95706e5 elementor-widget__width-auto elementor-widget elementor-widget-heading" data-id="95706e5" data-element_type="widget" data-widget_type="heading.default">
<div class="elementor-widget-container">
<div class="elementor-heading-title elementor-size-default"><a href="https://blog.nebula.tv/author/sam/">Sam Rose</a></div> </div>
</div>
<div class="elementor-element elementor-element-880ae0b elementor-widget__width-auto elementor-widget elementor-widget-heading" data-id="880ae0b" data-element_type="widget" data-widget_type="heading.default">
<div class="elementor-widget-container">
<div class="elementor-heading-title elementor-size-default">, Lead Engineer, Nebula API Team</div> </div>
</div>
<div class="elementor-element elementor-element-cb7dc8f elementor-widget elementor-widget-heading" data-id="cb7dc8f" data-element_type="widget" data-widget_type="heading.default">
<div class="elementor-widget-container">
<span class="elementor-heading-title elementor-size-default"><a href="https://blog.nebula.tv/tag/backend/" rel="tag">Backend</a><a href="https://blog.nebula.tv/tag/development/" rel="tag">Development</a></span> </div>
</div>
</div>
</div>
</div>
</section>
<div class="elementor-element elementor-element-26d1489 elementor-widget elementor-widget-theme-post-content" data-id="26d1489" data-element_type="widget" data-widget_type="theme-post-content.default">
<div class="elementor-widget-container">
<figure class="wp-block-image size-large is-style-default rounded-corners"><img fetchpriority="high" fetchpriority="high" decoding="async" width="1024" height="887" src="https://blog.nebula.tv/wp-content/uploads/2022/11/tweet-1024x887.jpg" alt="" class="wp-image-7469" srcset="https://blog.nebula.tv/wp-content/uploads/2022/11/tweet-1024x887.jpg 1024w, https://blog.nebula.tv/wp-content/uploads/2022/11/tweet-300x260.jpg 300w, https://blog.nebula.tv/wp-content/uploads/2022/11/tweet-768x665.jpg 768w, https://blog.nebula.tv/wp-content/uploads/2022/11/tweet.jpg 1187w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
<p>Not only was this our biggest day ever for signups, it was also our biggest day ever for traffic. In this post I’d like to give you a peek behind the curtain, to see how Jet Lag has impacted Nebula’s backend services, and to show you one of the tools we have at our disposal when things become too much to handle.<a href="https://twitter.com/dwiskus/status/1580545200707231744?s=20&amp;t=gVItQ9SYfQb3Qg84lhFxHw"></a></p>
<h1 class="wp-block-heading">What we’re dealing with</h1>
<p>Here’s 30 days of combined traffic to all of our backend services, between September 25th and November 25th:</p>
<figure class="wp-block-image size-full is-style-default rounded-corners"><img decoding="async" width="810" height="296" src="https://blog.nebula.tv/wp-content/uploads/2023/01/image5.png" alt="" class="wp-image-7595" srcset="https://blog.nebula.tv/wp-content/uploads/2023/01/image5.png 810w, https://blog.nebula.tv/wp-content/uploads/2023/01/image5-300x110.png 300w, https://blog.nebula.tv/wp-content/uploads/2023/01/image5-768x281.png 768w" sizes="(max-width: 810px) 100vw, 810px" /></figure>
<p>We see a clearly defined daily cycle, and then every Wednesday we have these large spikes. These are caused by Jet Lag episodes being released.</p>
<p>“How do you know they’re Jet Lag?”</p>
<p>The release of videos is something we keep a close eye on. If we zoom in on one of these spikes and turn on our push notification annotations, this is what we see:</p>
<figure class="wp-block-image size-full rounded-corners"><img decoding="async" width="809" height="283" src="https://blog.nebula.tv/wp-content/uploads/2023/01/image1.png" alt="" class="wp-image-7591" srcset="https://blog.nebula.tv/wp-content/uploads/2023/01/image1.png 809w, https://blog.nebula.tv/wp-content/uploads/2023/01/image1-300x105.png 300w, https://blog.nebula.tv/wp-content/uploads/2023/01/image1-768x269.png 768w" sizes="(max-width: 809px) 100vw, 809px" /></figure>
<p>It looks quite dramatic, doesn’t it? What we see here is a ~3x increase in traffic to our backend services over the course of about 40 minutes. This is substantial, but not horrifying. I’d like to focus on two things we have in place for handling these spikes: autoscaling and rate limiting.</p>
<h1 class="wp-block-heading">Autoscaling</h1>
<p>The backend services that make up Nebula run on Kubernetes in AWS. Kubernetes is a container orchestration platform; you tell it what you want to run and it figures out how to do it. Explaining Kubernetes in detail is outside of the scope of this post, but if you’re interested the official website has a great overview: <a href="https://kubernetes.io/docs/concepts/overview/">https://kubernetes.io/docs/concepts/overview/</a>.</p>
<p>We make use of 2 different types of autoscaling: pod autoscaling, and node autoscaling. You can think of pods as independent units of work. Each pod can have multiple containers working together inside of it, and those containers have to run somewhere. This is where nodes come in. Nodes are computers that can run pods. In our case, EC2 instances. Pods additionally specify how much CPU, RAM, and disk they need, so you can also think of them as having different sizes depending on how much of each resource they need.</p>
<figure class="wp-block-image size-large"><img loading="lazy" loading="lazy" decoding="async" width="1024" height="401" src="https://blog.nebula.tv/wp-content/uploads/2023/01/nodes-1024x401.png" alt="" class="wp-image-7521" srcset="https://blog.nebula.tv/wp-content/uploads/2023/01/nodes-1024x401.png 1024w, https://blog.nebula.tv/wp-content/uploads/2023/01/nodes-300x118.png 300w, https://blog.nebula.tv/wp-content/uploads/2023/01/nodes-768x301.png 768w, https://blog.nebula.tv/wp-content/uploads/2023/01/nodes-1536x602.png 1536w, https://blog.nebula.tv/wp-content/uploads/2023/01/nodes.png 1904w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
<p>We have multiple types of pods for each of our services. The most important for this post is what we call “web” pods. These run the containers that handle web requests to our APIs, and each service has at least 3 of them. They contain application code to serve video data, handle signups of new users, create and cancel subscriptions, and so on. It’s these pods that have to absorb the 3x increase of traffic we see when a new Jet Lag episode drops.</p>
<h2 class="wp-block-heading">Pod autoscaling</h2>
<p>Pod autoscaling kicks in when a pod hits a threshold of resource utilization. Our web pod groups are configured to add in a new pod if the average CPU utilization of all pods is above 60%. We run a minimum of 3 web pods per service, for redundancy, and then we also configure a maximum in order to prevent excessive traffic from filling up our nodes and rendering other services unable to scale up.</p>
<p>Given that pods have a size, and a node can only run a finite number of pods, we also have…</p>
<h2 class="wp-block-heading">Node autoscaling</h2>
<p>Just like pods, nodes have a size. They have a finite amount of CPU, RAM, and disk space, and when they get full they won’t be able to run any more pods. For this reason, our Kubernetes cluster is also configured to add more nodes when it hits a threshold of utilization.</p>
<p>That was a lot of words. Let’s see how it works in practice.</p>
<figure class="wp-block-image size-full rounded-corners"><img loading="lazy" loading="lazy" decoding="async" width="839" height="291" src="https://blog.nebula.tv/wp-content/uploads/2023/01/image3.png" alt="" class="wp-image-7593" srcset="https://blog.nebula.tv/wp-content/uploads/2023/01/image3.png 839w, https://blog.nebula.tv/wp-content/uploads/2023/01/image3-300x104.png 300w, https://blog.nebula.tv/wp-content/uploads/2023/01/image3-768x266.png 768w" sizes="(max-width: 839px) 100vw, 839px" /></figure>
<p>This is the same 30 day period we used earlier, only this time showing the number of nodes and pods present across all of our backend services. We can see it follows a similar daily cycle, with spikes in the same places we see spikes in traffic. At peak, we can see we’re using up to 37 nodes. This is double what we need at our quietest times. Autoscaling allows us to save money, as well respond automatically to bursts of traffic.</p>
<figure class="wp-block-image size-full rounded-corners"><img loading="lazy" loading="lazy" decoding="async" width="839" height="291" src="https://blog.nebula.tv/wp-content/uploads/2023/01/image8.png" alt="" class="wp-image-7598" srcset="https://blog.nebula.tv/wp-content/uploads/2023/01/image8.png 839w, https://blog.nebula.tv/wp-content/uploads/2023/01/image8-300x104.png 300w, https://blog.nebula.tv/wp-content/uploads/2023/01/image8-768x266.png 768w" sizes="(max-width: 839px) 100vw, 839px" /></figure>
<p>Zoomed in on one of the spikes, you can more clearly see autoscaling reacting to a Jet Lag episode being released. Doing this automatically frees us up from having to respond manually in most cases, only having to periodically tweak maximums in order to make sure we have plenty of headroom, accounting for organic growth. It’s a solid foundation upon which we can grow without being too wasteful.</p>
<h1 class="wp-block-heading">Rate limiting</h1>
<p>Sometimes autoscaling isn’t enough. We rely on relational databases, and each service has its own database. Unfortunately, one of the places where relational databases struggle is write scaling, and Nebula is a write-heavy workload.</p>
<p>“Wait, write-heavy? How is that the case?”</p>
<p>It’s a little surprising, isn’t it? Isn’t Nebula mostly about serving content to people? It is, but an important aspect of that is remembering where you got up to. All of our apps are periodically reporting your progress through our videos and podcasts, so that if you suddenly lose connection on one device you can seamlessly resume where you left off on another device. This traffic, at peak, makes up around 70% of all Nebula traffic.</p>
<p>One of the good things about this traffic is that, when push comes to shove, we don’t <em>need</em> to serve it. All of our apps are written such that progress is saved locally, and if requests to save that local progress don’t succeed, they are retried later. It’s not ideal to delay this progress syncing, but it’s a small price to pay to maintain stability of the rest of Nebula. This is a valuable pressure valve for us, and we have had to use it recently.</p>
<figure class="wp-block-image size-full rounded-corners"><img loading="lazy" loading="lazy" decoding="async" width="816" height="298" src="https://blog.nebula.tv/wp-content/uploads/2023/01/image2.png" alt="" class="wp-image-7592" srcset="https://blog.nebula.tv/wp-content/uploads/2023/01/image2.png 816w, https://blog.nebula.tv/wp-content/uploads/2023/01/image2-300x110.png 300w, https://blog.nebula.tv/wp-content/uploads/2023/01/image2-768x280.png 768w" sizes="(max-width: 816px) 100vw, 816px" /></figure>
<p>This graph shows the percentage of traffic we are rate limiting over the last 30 days. Our logs show that all of our rate limiting is done against progress reporting requests, and we have a fairly consistent background rate of 5-7% of requests being rate limited. We’re strict with the rate limit on progress reporting, because we know the apps handle being limited well, so we try to skirt close to the expected rate of requests at all times.</p>
<p>You can see a big section in the middle of this graph, though, where we’re rate limiting significantly more requests than normal. This was in response to Jet Lag episode 5. Here’s a close-up.</p>
<figure class="wp-block-image size-full rounded-corners"><img loading="lazy" loading="lazy" decoding="async" width="809" height="274" src="https://blog.nebula.tv/wp-content/uploads/2023/01/image6.png" alt="" class="wp-image-7596" srcset="https://blog.nebula.tv/wp-content/uploads/2023/01/image6.png 809w, https://blog.nebula.tv/wp-content/uploads/2023/01/image6-300x102.png 300w, https://blog.nebula.tv/wp-content/uploads/2023/01/image6-768x260.png 768w" sizes="(max-width: 809px) 100vw, 809px" /></figure>
<p>(Trivia: this was my birthday!) And to show why we responded the way we did, here’s a graph of our database CPU utilization and CPU credit balance over the same time period.</p>
<figure class="wp-block-image size-full"><img loading="lazy" loading="lazy" decoding="async" width="919" height="243" src="https://blog.nebula.tv/wp-content/uploads/2023/01/image7.png" alt="" class="wp-image-7597" srcset="https://blog.nebula.tv/wp-content/uploads/2023/01/image7.png 919w, https://blog.nebula.tv/wp-content/uploads/2023/01/image7-300x79.png 300w, https://blog.nebula.tv/wp-content/uploads/2023/01/image7-768x203.png 768w" sizes="(max-width: 919px) 100vw, 919px" /></figure>
<p>The credit balance falling triggered an automated alert, and our response was to make use of our ability to rate limit specific endpoints on-the-fly to start limiting video progress reporting. This relieves pressure on the database, and allows our credit balance to start refilling. CPU credits are a mechanism AWS use to allow you to have bursty CPU usage. Every second you’re above 50% CPU utilization, your credit balance goes down. Every second you’re below 50%, your credit balance goes up. When you hit 0, AWS either throttles you (really bad for us), or charges you more money (bad, but not as bad as throttling).</p>
<p>Since this happened, we’ve upgraded the size of our database instance for this service, and haven’t had to use this pressure valve since. The most recent episode of Jet Lag, episode 7, released and triggered no alerts, requiring no intervention from the backend team. Success!</p>
<h1 class="wp-block-heading">The future</h1>
<p>It’s at this point you may be thinking: “why write this directly to the database at all? Why not keep this in Redis or some other in-memory data store?”</p>
<p>This has crossed our minds. It’s likely that the long-term future of progress reporting on Nebula is to move to using something where writes are cheaper and easier to scale, but for now we get a lot of benefit from only using relational databases. Introducing something new is a serious decision, one that would have us considering monitoring, alerting, disaster recovery, the effect it will have on onboarding new team members, the added complexity of another moving part. For now, paying a bit more for a beefier database instance made the most sense.</p>
<p><a href="https://twitter.com/dwiskus/status/1580545200707231744?s=20&amp;t=gVItQ9SYfQb3Qg84lhFxHw"></a></p>
</div>
</div>
<div class="elementor-element elementor-element-e320a2e elementor-widget elementor-widget-post-navigation" data-id="e320a2e" data-element_type="widget" data-widget_type="post-navigation.default">
<div class="elementor-widget-container">
<div class="elementor-post-navigation">
<div class="elementor-post-navigation__prev elementor-post-navigation__link">
<a href="https://blog.nebula.tv/six-hundred-thousand/" rel="prev"><span class="post-navigation__arrow-wrapper post-navigation__arrow-prev"><i class="fa fa-chevron-left" aria-hidden="true"></i><span class="elementor-screen-only">Prev</span></span><span class="elementor-post-navigation__link__prev"><span class="post-navigation__prev--label">Previous Post</span></span></a> </div>
<div class="elementor-post-navigation__next elementor-post-navigation__link">
<a href="https://blog.nebula.tv/snow-leopard/" rel="next"><span class="elementor-post-navigation__link__next"><span class="post-navigation__next--label">Next Post</span></span><span class="post-navigation__arrow-wrapper post-navigation__arrow-next"><i class="fa fa-chevron-right" aria-hidden="true"></i><span class="elementor-screen-only">Next</span></span></a> </div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
</div>
<div data-elementor-type="footer" data-elementor-id="50" class="elementor elementor-50 elementor-location-footer" data-elementor-post-type="elementor_library">
<section class="elementor-section elementor-top-section elementor-element elementor-element-1113303 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="1113303" data-element_type="section" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
<div class="elementor-container elementor-column-gap-default">
<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-ee04fb3" data-id="ee04fb3" data-element_type="column">
<div class="elementor-widget-wrap elementor-element-populated">
<section class="elementor-section elementor-inner-section elementor-element elementor-element-1a07bc4 elementor-section-full_width elementor-section-height-default elementor-section-height-default" data-id="1a07bc4" data-element_type="section">
<div class="elementor-container elementor-column-gap-wider">
<div class="elementor-column elementor-col-100 elementor-inner-column elementor-element elementor-element-931eaa9" data-id="931eaa9" data-element_type="column">
<div class="elementor-widget-wrap elementor-element-populated">
<div class="elementor-element elementor-element-e5b8206 elementor-view-default elementor-widget elementor-widget-icon" data-id="e5b8206" data-element_type="widget" data-widget_type="icon.default">
<div class="elementor-widget-container">
<div class="elementor-icon-wrapper">
<a class="elementor-icon" href="https://blog.nebula.tv" title="&quot;Standard&quot;">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2240 300"><g fill="#fff"><path d="m95.8 132.4-87.7 63.7h108.4l33.5 103.1 33.5-103.1h108.4s-46.3-33.6-87.7-63.7l33.5-103.1-87.7 63.7c-41.4-30-87.7-63.7-87.7-63.7z"></path><path d="m716 234.2-102-140.4v140.4h-16.5v-168.5h16.5l99.3 136v-136h16.3v168.5z"></path><path d="m927.8 234.2v-168.5h91.1v16.3h-73.7v56h58.3l2.6 16.3h-60.9v63.9h76.2v16z"></path><path d="m1248.1 234.2h-40.2v-168.5h40.4c36.3 0 54.2 17.2 54.2 42.3 0 17.9-10.5 30.2-26.5 36.7 20.7 5.6 34.4 18.4 34.4 40.9 0 32.3-24.7 48.6-62.3 48.6zm-.3-153.2h-22.8v57.6h22.1c24.9 0 37.9-12.6 37.9-30 0-17.1-12.1-27.6-37.2-27.6zm.7 72.3h-23.5v65.8h24.4c26.7 0 43.2-11.9 43.2-32.5.1-22.6-16.6-33.3-44.1-33.3z"></path><path d="m1560.5 237c-41.1 0-65.6-26.5-65.6-65.8v-105.5h17.7v103.2c0 30.9 16 52.3 48.1 52.3 31.6 0 48.6-19.8 48.6-51.4v-104.1h17.4v104.4c0 40.9-25.1 66.9-66.2 66.9z"></path><path d="m1822.2 234.2v-168.5h17.4v152.3h67.4l2.6 16.3h-87.4z"></path><path d="m2147.2 65h18.1l68.8 167.1-17.4 3.7-22.5-55.6h-76.2l-21.4 53.9h-18.4zm-23.3 99.7h63.9l-31.8-79.5z"></path></g></svg> </a>
</div>
</div>
</div>
<div class="elementor-element elementor-element-bebdbe7 elementor-nav-menu--dropdown-none elementor-nav-menu__align-center elementor-hidden-mobile elementor-widget elementor-widget-nav-menu" data-id="bebdbe7" data-element_type="widget" data-settings="{&quot;layout&quot;:&quot;horizontal&quot;,&quot;submenu_icon&quot;:{&quot;value&quot;:&quot;&lt;i class=\&quot;fas fa-caret-down\&quot;&gt;&lt;\/i&gt;&quot;,&quot;library&quot;:&quot;fa-solid&quot;}}" data-widget_type="nav-menu.default">
<div class="elementor-widget-container">
<nav aria-label="Menu" class="elementor-nav-menu--main elementor-nav-menu__container elementor-nav-menu--layout-horizontal e--pointer-none">
<ul id="menu-1-bebdbe7" class="elementor-nav-menu"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-6290"><a href="https://twitter.com/watchnebula" title="Nebula on Twitter" class="elementor-item">@watchnebula</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-5713"><a href="https://www.reddit.com/r/nebula/" title="Nebula on Reddit" class="elementor-item">r/Nebula</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-5714"><a href="/cdn-cgi/l/email-protection#e28097918b8c879191a28c8780978e83cc9694" class="elementor-item">Contact Us</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-7618"><a href="https://newsroom.nebula.tv" class="elementor-item">Newsroom</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-5983"><a href="https://jobs.nebula.tv" class="elementor-item">Jobs</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-7109"><a href="https://nebula.tv/faq" class="elementor-item">FAQ</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-7110"><a href="https://nebula.tv/terms" class="elementor-item">Terms of Service</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-7111"><a href="https://nebula.tv/privacy" class="elementor-item">Privacy Policy</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-7112"><a href="https://nebula.tv/beta" class="elementor-item">Beta</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-7113"><a href="/" class="elementor-item">Blog</a></li>
</ul> </nav>
<nav class="elementor-nav-menu--dropdown elementor-nav-menu__container" aria-hidden="true">
<ul id="menu-2-bebdbe7" class="elementor-nav-menu"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-6290"><a href="https://twitter.com/watchnebula" title="Nebula on Twitter" class="elementor-item" tabindex="-1">@watchnebula</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-5713"><a href="https://www.reddit.com/r/nebula/" title="Nebula on Reddit" class="elementor-item" tabindex="-1">r/Nebula</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-5714"><a href="/cdn-cgi/l/email-protection#a4c6d1d7cdcac1d7d7e4cac1c6d1c8c58ad0d2" class="elementor-item" tabindex="-1">Contact Us</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-7618"><a href="https://newsroom.nebula.tv" class="elementor-item" tabindex="-1">Newsroom</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-5983"><a href="https://jobs.nebula.tv" class="elementor-item" tabindex="-1">Jobs</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-7109"><a href="https://nebula.tv/faq" class="elementor-item" tabindex="-1">FAQ</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-7110"><a href="https://nebula.tv/terms" class="elementor-item" tabindex="-1">Terms of Service</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-7111"><a href="https://nebula.tv/privacy" class="elementor-item" tabindex="-1">Privacy Policy</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-7112"><a href="https://nebula.tv/beta" class="elementor-item" tabindex="-1">Beta</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-7113"><a href="/" class="elementor-item" tabindex="-1">Blog</a></li>
</ul> </nav>
</div>
</div>
<div class="elementor-element elementor-element-215a839 elementor-nav-menu--dropdown-none elementor-nav-menu__align-center elementor-hidden-desktop elementor-hidden-tablet elementor-hidden-laptop elementor-widget elementor-widget-nav-menu" data-id="215a839" data-element_type="widget" data-settings="{&quot;layout&quot;:&quot;vertical&quot;,&quot;submenu_icon&quot;:{&quot;value&quot;:&quot;&lt;i class=\&quot;fas fa-caret-down\&quot;&gt;&lt;\/i&gt;&quot;,&quot;library&quot;:&quot;fa-solid&quot;}}" data-widget_type="nav-menu.default">
<div class="elementor-widget-container">
<nav aria-label="Menu" class="elementor-nav-menu--main elementor-nav-menu__container elementor-nav-menu--layout-vertical e--pointer-none">
<ul id="menu-1-215a839" class="elementor-nav-menu sm-vertical"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-6290"><a href="https://twitter.com/watchnebula" title="Nebula on Twitter" class="elementor-item">@watchnebula</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-5713"><a href="https://www.reddit.com/r/nebula/" title="Nebula on Reddit" class="elementor-item">r/Nebula</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-5714"><a href="/cdn-cgi/l/email-protection#9dffe8eef4f3f8eeeeddf3f8ffe8f1fcb3e9eb" class="elementor-item">Contact Us</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-7618"><a href="https://newsroom.nebula.tv" class="elementor-item">Newsroom</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-5983"><a href="https://jobs.nebula.tv" class="elementor-item">Jobs</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-7109"><a href="https://nebula.tv/faq" class="elementor-item">FAQ</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-7110"><a href="https://nebula.tv/terms" class="elementor-item">Terms of Service</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-7111"><a href="https://nebula.tv/privacy" class="elementor-item">Privacy Policy</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-7112"><a href="https://nebula.tv/beta" class="elementor-item">Beta</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-7113"><a href="/" class="elementor-item">Blog</a></li>
</ul> </nav>
<nav class="elementor-nav-menu--dropdown elementor-nav-menu__container" aria-hidden="true">
<ul id="menu-2-215a839" class="elementor-nav-menu sm-vertical"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-6290"><a href="https://twitter.com/watchnebula" title="Nebula on Twitter" class="elementor-item" tabindex="-1">@watchnebula</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-5713"><a href="https://www.reddit.com/r/nebula/" title="Nebula on Reddit" class="elementor-item" tabindex="-1">r/Nebula</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-5714"><a href="/cdn-cgi/l/email-protection#e68493958f88839595a6888384938a87c89290" class="elementor-item" tabindex="-1">Contact Us</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-7618"><a href="https://newsroom.nebula.tv" class="elementor-item" tabindex="-1">Newsroom</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-5983"><a href="https://jobs.nebula.tv" class="elementor-item" tabindex="-1">Jobs</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-7109"><a href="https://nebula.tv/faq" class="elementor-item" tabindex="-1">FAQ</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-7110"><a href="https://nebula.tv/terms" class="elementor-item" tabindex="-1">Terms of Service</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-7111"><a href="https://nebula.tv/privacy" class="elementor-item" tabindex="-1">Privacy Policy</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-7112"><a href="https://nebula.tv/beta" class="elementor-item" tabindex="-1">Beta</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-7113"><a href="/" class="elementor-item" tabindex="-1">Blog</a></li>
</ul> </nav>
</div>
</div>
</div>
</div>
</div>
</section>
<section class="elementor-section elementor-inner-section elementor-element elementor-element-b22c262 elementor-section-boxed elementor-section-height-default elementor-section-height-default elementor-invisible" data-id="b22c262" data-element_type="section" data-settings="{&quot;animation&quot;:&quot;fadeIn&quot;}">
<div class="elementor-container elementor-column-gap-default">
<div class="elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-08cdb0f" data-id="08cdb0f" data-element_type="column">
<div class="elementor-widget-wrap elementor-element-populated">
<div class="elementor-element elementor-element-7b5664f elementor-widget__width-auto elementor-widget elementor-widget-image" data-id="7b5664f" data-element_type="widget" data-widget_type="image.default">
<div class="elementor-widget-container">
<a href="https://apps.apple.com/app/nebula-watch-something-smart/id1447033725">
<img loading="lazy" width="139" height="60" src="https://blog.nebula.tv/wp-content/uploads/2022/07/AppStoreBadge.svg" class="attachment-full size-full wp-image-7377" alt="" /> </a>
</div>
</div>
<div class="elementor-element elementor-element-7edccf7 elementor-widget__width-auto elementor-widget elementor-widget-image" data-id="7edccf7" data-element_type="widget" data-widget_type="image.default">
<div class="elementor-widget-container">
<a href="https://play.google.com/store/apps/details?id=tv.standard.nebula">
<img loading="lazy" width="155" height="60" src="https://blog.nebula.tv/wp-content/uploads/2020/06/play_store_badge.svg" class="attachment-full size-full wp-image-7637" alt="" /> </a>
</div>
</div>
</div>
</div>
<div class="elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-92738ce" data-id="92738ce" data-element_type="column">
<div class="elementor-widget-wrap elementor-element-populated">
<div class="elementor-element elementor-element-dc510aa elementor-widget__width-auto elementor-widget elementor-widget-image" data-id="dc510aa" data-element_type="widget" data-widget_type="image.default">
<div class="elementor-widget-container">
<a href="https://channelstore.roku.com/details/7d359785eb246eb1e91044403f661f06/nebula">
<img loading="lazy" width="140" height="60" src="https://blog.nebula.tv/wp-content/uploads/2022/07/RokuStoreBadge.svg" class="attachment-full size-full wp-image-7379" alt="" /> </a>
</div>
</div>
<div class="elementor-element elementor-element-5a210cf elementor-widget__width-auto elementor-widget elementor-widget-image" data-id="5a210cf" data-element_type="widget" data-widget_type="image.default">
<div class="elementor-widget-container">
<a href="https://www.amazon.com/dp/B09LWMN9PM">
<img loading="lazy" width="155" height="60" src="https://blog.nebula.tv/wp-content/uploads/2022/07/AmazonStoreBadge.svg" class="attachment-full size-full wp-image-7380" alt="" /> </a>
</div>
</div>
</div>
</div>
</div>
</section>
<section class="elementor-section elementor-inner-section elementor-element elementor-element-f26f6ac elementor-section-full_width elementor-section-height-default elementor-section-height-default" data-id="f26f6ac" data-element_type="section">
<div class="elementor-container elementor-column-gap-wider">
<div class="elementor-column elementor-col-100 elementor-inner-column elementor-element elementor-element-28ab2c2" data-id="28ab2c2" data-element_type="column">
<div class="elementor-widget-wrap elementor-element-populated">
<div class="elementor-element elementor-element-703bddc elementor-widget elementor-widget-heading" data-id="703bddc" data-element_type="widget" data-widget_type="heading.default">
<div class="elementor-widget-container">
<div class="elementor-heading-title elementor-size-small">Copyright © 2017⁠–⁠2026 Nebula Entertainment &amp; Broadcasting LLC.</div> </div>
</div>
</div>
</div>
</div>
</section>
</div>
</div>
</div>
</section>
</div>
<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script type="speculationrules">
{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"\/*"},{"not":{"href_matches":["\/wp-*.php","\/wp-admin\/*","\/wp-content\/uploads\/*","\/wp-content\/*","\/wp-content\/plugins\/*","\/wp-content\/themes\/standard-theme\/*","\/wp-content\/themes\/hello-elementor\/*","\/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
</script>
<script>
var _paq = _paq || [];
_paq.push( ["setTrackingSourceProvider","wordpress","1.4.1"] );
</script>
<script>
const lazyloadRunObserver = () => {
const lazyloadBackgrounds = document.querySelectorAll( `.e-con.e-parent:not(.e-lazyloaded)` );
const lazyloadBackgroundObserver = new IntersectionObserver( ( entries ) => {
entries.forEach( ( entry ) => {
if ( entry.isIntersecting ) {
let lazyloadBackground = entry.target;
if( lazyloadBackground ) {
lazyloadBackground.classList.add( 'e-lazyloaded' );
}
lazyloadBackgroundObserver.unobserve( entry.target );
}
});
}, { rootMargin: '200px 0px 200px 0px' } );
lazyloadBackgrounds.forEach( ( lazyloadBackground ) => {
lazyloadBackgroundObserver.observe( lazyloadBackground );
} );
};
const events = [
'DOMContentLoaded',
'elementor/lazyload/observe',
];
events.forEach( ( event ) => {
document.addEventListener( event, lazyloadRunObserver );
} );
</script>
<link rel='stylesheet' id='hello-elementor-child-style-css' href='https://blog.nebula.tv/wp-content/themes/standard-theme/style.css?ver=1712688113' media='all' />
<script src="https://blog.nebula.tv/wp-content/plugins/dynamicconditions/Public/js/dynamic-conditions-public.js?ver=1739525593" id="dynamic-conditions-js"></script>
<script src="https://blog.nebula.tv/wp-content/plugins/elementor-pro/assets/lib/smartmenus/jquery.smartmenus.min.js?ver=1739525596" id="smartmenus-js"></script>
<script src="https://blog.nebula.tv/wp-content/plugins/elementor/assets/js/webpack.runtime.min.js?ver=1756136061" id="elementor-webpack-runtime-js"></script>
<script src="https://blog.nebula.tv/wp-content/plugins/elementor/assets/js/frontend-modules.min.js?ver=1756136061" id="elementor-frontend-modules-js"></script>
<script src="https://blog.nebula.tv/wp-includes/js/jquery/ui/core.min.js?ver=1756136133" id="jquery-ui-core-js"></script>
<script id="elementor-frontend-js-before">
var elementorFrontendConfig = {"environmentMode":{"edit":false,"wpPreview":false,"isScriptDebug":false},"i18n":{"shareOnFacebook":"Share on Facebook","shareOnTwitter":"Share on Twitter","pinIt":"Pin it","download":"Download","downloadImage":"Download image","fullscreen":"Fullscreen","zoom":"Zoom","share":"Share","playVideo":"Play Video","previous":"Previous","next":"Next","close":"Close","a11yCarouselPrevSlideMessage":"Previous slide","a11yCarouselNextSlideMessage":"Next slide","a11yCarouselFirstSlideMessage":"This is the first slide","a11yCarouselLastSlideMessage":"This is the last slide","a11yCarouselPaginationBulletMessage":"Go to slide"},"is_rtl":false,"breakpoints":{"xs":0,"sm":480,"md":768,"lg":1025,"xl":1440,"xxl":1600},"responsive":{"breakpoints":{"mobile":{"label":"Mobile Portrait","value":767,"default_value":767,"direction":"max","is_enabled":true},"mobile_extra":{"label":"Mobile Landscape","value":880,"default_value":880,"direction":"max","is_enabled":false},"tablet":{"label":"Tablet Portrait","value":1024,"default_value":1024,"direction":"max","is_enabled":true},"tablet_extra":{"label":"Tablet Landscape","value":1200,"default_value":1200,"direction":"max","is_enabled":false},"laptop":{"label":"Laptop","value":1378,"default_value":1366,"direction":"max","is_enabled":true},"widescreen":{"label":"Widescreen","value":2400,"default_value":2400,"direction":"min","is_enabled":false}},"hasCustomBreakpoints":true},"version":"3.31.2","is_static":false,"experimentalFeatures":{"additional_custom_breakpoints":true,"theme_builder_v2":true,"e_element_cache":true,"home_screen":true,"global_classes_should_enforce_capabilities":true,"e_variables":true,"cloud-library":true,"e_opt_in_v4_page":true},"urls":{"assets":"https:\/\/blog.nebula.tv\/wp-content\/plugins\/elementor\/assets\/","ajaxurl":"https:\/\/blog.nebula.tv\/wp-admin\/admin-ajax.php","uploadUrl":"https:\/\/blog.nebula.tv\/wp-content\/uploads"},"nonces":{"floatingButtonsClickTracking":"96499d2f8a"},"swiperClass":"swiper","settings":{"page":[],"editorPreferences":[]},"kit":{"body_background_background":"classic","active_breakpoints":["viewport_mobile","viewport_tablet","viewport_laptop"],"viewport_laptop":1378,"global_image_lightbox":"yes"},"post":{"id":7463,"title":"Jet%20Lag%3A%20The%20Traffic%20%E2%80%94%20Nebula%20Blog","excerpt":"","featuredImage":"https:\/\/blog.nebula.tv\/wp-content\/uploads\/2023\/01\/jet-lag-traffic.jpg"}};
</script>
<script src="https://blog.nebula.tv/wp-content/plugins/elementor/assets/js/frontend.min.js?ver=1756136061" id="elementor-frontend-js"></script>
<script src="https://blog.nebula.tv/wp-content/plugins/elementor-pro/assets/lib/sticky/jquery.sticky.min.js?ver=1739525596" id="e-sticky-js"></script>
<script src="https://blog.nebula.tv/wp-content/plugins/elementor-pro/assets/js/webpack-pro.runtime.min.js?ver=1739525596" id="elementor-pro-webpack-runtime-js"></script>
<script src="https://blog.nebula.tv/wp-includes/js/dist/hooks.min.js?ver=1738070918" id="wp-hooks-js"></script>
<script src="https://blog.nebula.tv/wp-includes/js/dist/i18n.min.js?ver=1712309934" id="wp-i18n-js"></script>
<script id="wp-i18n-js-after">
wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } );
</script>
<script id="elementor-pro-frontend-js-before">
var ElementorProFrontendConfig = {"ajaxurl":"https:\/\/blog.nebula.tv\/wp-admin\/admin-ajax.php","nonce":"e1863e21c1","urls":{"assets":"https:\/\/blog.nebula.tv\/wp-content\/plugins\/elementor-pro\/assets\/","rest":"https:\/\/blog.nebula.tv\/wp-json\/"},"settings":{"lazy_load_background_images":true},"popup":{"hasPopUps":true},"shareButtonsNetworks":{"facebook":{"title":"Facebook","has_counter":true},"twitter":{"title":"Twitter"},"linkedin":{"title":"LinkedIn","has_counter":true},"pinterest":{"title":"Pinterest","has_counter":true},"reddit":{"title":"Reddit","has_counter":true},"vk":{"title":"VK","has_counter":true},"odnoklassniki":{"title":"OK","has_counter":true},"tumblr":{"title":"Tumblr"},"digg":{"title":"Digg"},"skype":{"title":"Skype"},"stumbleupon":{"title":"StumbleUpon","has_counter":true},"mix":{"title":"Mix"},"telegram":{"title":"Telegram"},"pocket":{"title":"Pocket","has_counter":true},"xing":{"title":"XING","has_counter":true},"whatsapp":{"title":"WhatsApp"},"email":{"title":"Email"},"print":{"title":"Print"},"x-twitter":{"title":"X"},"threads":{"title":"Threads"}},"facebook_sdk":{"lang":"en_US","app_id":""},"lottie":{"defaultAnimationUrl":"https:\/\/blog.nebula.tv\/wp-content\/plugins\/elementor-pro\/modules\/lottie\/assets\/animations\/default.json"}};
</script>
<script src="https://blog.nebula.tv/wp-content/plugins/elementor-pro/assets/js/frontend.min.js?ver=1739525596" id="elementor-pro-frontend-js"></script>
<script src="https://blog.nebula.tv/wp-content/plugins/elementor-pro/assets/js/elements-handlers.min.js?ver=1739525596" id="pro-elements-handlers-js"></script>
</body>
</html>
<!-- Page cached by LiteSpeed Cache 7.3.0.1 on 2026-09-12 02:46:28 -->