CINXE.COM
Lambda-less Stream Processing @Scale in LinkedIn | PPT
<!DOCTYPE html><html lang="en"><script id="gtm"> performance.mark('gtm.start'); (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 = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; j.onload = function () { performance.mark('gtm.end'); performance.measure('gtm', 'gtm.start', 'gtm.end'); }; f.parentNode.insertBefore(j, f); })(window, document, 'script', 'dataLayer', 'GTM-M36RG8PT'); </script><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><link rel="shortcut icon" href="https://public.slidesharecdn.com/_next/static/media/favicon.7bc3d920.ico"/><script> window.eventsToSend = window.eventsToSend || [] window.eventsToSend.push({ name: "page_rendering", timestamp: new Date().toISOString(), value: JSON.stringify({ time: performance?.now() }) }) </script><script type="speculationrules">{"prerender":[{"where":{"and":[{"href_matches":"/slideshow/*"}]},"eagerness":"moderate"}]}</script><title>Lambda-less Stream Processing @Scale in LinkedIn | PPT</title><meta name="robots" content="index, follow"/><meta name="title" content="Lambda-less Stream Processing @Scale in LinkedIn "/><meta name="description" content="Lambda-less Stream Processing @Scale in LinkedIn - Download as a PDF or view online for free"/><link rel="canonical" href="https://www.slideshare.net/slideshow/lambdaless-stream-processing-scale-in-linkedin/63921306"/><link rel="alternate" hrefLang="en" href="https://www.slideshare.net/slideshow/lambdaless-stream-processing-scale-in-linkedin/63921306"/><link rel="alternate" hrefLang="x-default" href="https://www.slideshare.net/slideshow/lambdaless-stream-processing-scale-in-linkedin/63921306"/><link rel="preconnect" href="https://a.pub.network/" crossorigin="anonymous"/><link rel="preconnect" href="https://b.pub.network/" crossorigin="anonymous"/><link rel="preconnect" href="https://c.pub.network/" crossorigin="anonymous"/><link rel="preconnect" href="https://d.pub.network/" crossorigin="anonymous"/><link rel="preconnect" href="https://c.amazon-adsystem.com" crossorigin="anonymous"/><link rel="preconnect" href="https://s.amazon-adsystem.com" crossorigin="anonymous"/><link rel="preconnect" href="https://secure.quantserve.com/" crossorigin="anonymous"/><link rel="preconnect" href="https://rules.quantcount.com/" crossorigin="anonymous"/><link rel="preconnect" href="https://pixel.quantserve.com/" crossorigin="anonymous"/><link rel="preconnect" href="https://btloader.com/" crossorigin="anonymous"/><link rel="preconnect" href="https://api.btloader.com/" crossorigin="anonymous"/><link rel="preconnect" href="https://confiant-integrations.global.ssl.fastly.net" crossorigin="anonymous"/><link rel="preload" href="https://a.pub.network/slideshare-net/pubfig.min.js" as="script"/><script> window.freestarReactCompontentLoaded = true; // Prevents Freestar from appending the script a second time; typo is theirs window.freestar = window.freestar || { queue: [] }; window.freestar.config = freestar.config || {}; window.freestar.config.disabledProducts = { googleInterstitial: false, }; window.eventsToSend = window.eventsToSend || []; window.freestar.queue.push(function () { window.eventsToSend.push({ name: "freestar_queue_start", timestamp: new Date().toISOString() }) }); </script><meta name="twitter:site" content="@SlideShare"/><meta name="twitter:card" content="player"/><meta name="twitter:title" content="Lambda-less Stream Processing @Scale in LinkedIn "/><meta name="twitter:description" content="Lambda-less Stream Processing @Scale in LinkedIn - Download as a PDF or view online for free"/><meta name="twitter:image" content="https://cdn.slidesharecdn.com/ss_thumbnails/june29500linkedinpanv2-160711182729-thumbnail.jpg?width=640&height=640&fit=bounds"/><meta name="twitter:image:alt" content="Lambda-less Stream Processing @Scale in LinkedIn "/><meta name="twitter:player" content="https://www.slideshare.net/slideshow/embed_code/key/BDYu4G7x5RFheV"/><meta name="twitter:player:width" content="597"/><meta name="twitter:player:height" content="486"/><meta name="twitter:app:name:googleplay" content="SlideShare Android"/><meta name="twitter:app:id:googleplay" content="net.slideshare.mobile"/><meta name="twitter:app:name:iphone" content="SlideShare iOS"/><meta name="twitter:app:id:iphone" content="917418728"/><meta name="twitter:app:url:iphone" content="slideshare-app://ss/165952101"/><meta name="twitter:app:name:ipad" content="SlideShare iOS"/><meta name="twitter:app:id:ipad" content="917418728"/><meta name="twitter:app:url:ipad" content="slideshare-app://ss/165952101"/><meta property="og:site_name" content="SlideShare"/><meta property="og:type" content="website"/><meta property="og:url" content="https://www.slideshare.net/slideshow/lambdaless-stream-processing-scale-in-linkedin/63921306"/><meta property="og:title" content="Lambda-less Stream Processing @Scale in LinkedIn "/><meta property="og:description" content="Lambda-less Stream Processing @Scale in LinkedIn - Download as a PDF or view online for free"/><meta property="og:image" content="https://cdn.slidesharecdn.com/ss_thumbnails/june29500linkedinpanv2-160711182729-thumbnail.jpg?width=640&height=640&fit=bounds"/><meta property="og:image:alt" content="Lambda-less Stream Processing @Scale in LinkedIn "/><meta property="og:image:type" content="image/webp"/><meta property="og:image:width" content="640"/><meta property="og:image:height" content="360"/><script type="application/ld+json">{"@context":"http://schema.org","@type":"CreativeWork","name":"Lambda-less Stream Processing @Scale in LinkedIn ","description":"Lambda-less Stream Processing @Scale in LinkedIn\n\nThe document discusses challenges with stream processing including data accuracy and reprocessing. It proposes a \"lambda-less\" approach using windowed computations and handling late and out-of-order events to produce eventually correct results. Samza is used in LinkedIn's implementation to store streaming data locally using RocksDB for processing within configurable windows. The approach avoids code duplication compared to traditional lambda architectures while still supporting reprocessing through resetting offsets. Challenges remain in merging online and reprocessed results at large scale.","url":"https://www.slideshare.net/slideshow/lambdaless-stream-processing-scale-in-linkedin/63921306","datePublished":"2016-07-11 18:27:28 UTC","publisher":{"@type":"Organization","name":"Slideshare","url":"https://www.slideshare.net/"},"encodingFormat":"application/pdf","fileFormat":"pdf","inLanguage":"en","mainEntityOfPage":{"@type":"WebPage","@id":"https://www.slideshare.net/slideshow/lambdaless-stream-processing-scale-in-linkedin/63921306"}}</script><script type="application/ld+json">{"@context":"https://schema.org/","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://www.slideshare.net"},{"@type":"ListItem","position":2,"name":"Technology","item":"https://www.slideshare.net/category/technology"},{"@type":"ListItem","position":3,"name":"Lambda-less Stream Processing @Scale in LinkedIn ","item":"https://www.slideshare.net/slideshow/lambdaless-stream-processing-scale-in-linkedin/63921306"}]}</script><script> freestar.queue.push(function() { googletag.pubads().setTargeting('test', []); }); </script><meta name="next-head-count" content="56"/><link rel="preload" href="https://public.slidesharecdn.com/_next/static/media/9c20d643cc03e499-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="https://public.slidesharecdn.com/_next/static/media/a9b61b60c2d733b4-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><noscript data-n-css=""></noscript><link rel="preload" href="https://cmp.osano.com/AzZdHGSGtpxCq1Cpt/079b27eb-bb3f-48dd-9bd9-3feb8aec3c38/osano.js" as="script"/><link rel="preload" as="script" href="https://public.slidesharecdn.com/_next/static/chunks/webpack-fca657b2df1193b1.js"/><link rel="preload" as="script" href="https://public.slidesharecdn.com/_next/static/chunks/framework-0dfcca9a5dec51b3.js"/><link rel="preload" as="script" href="https://public.slidesharecdn.com/_next/static/chunks/main-4b9e5138f827276f.js"/><link rel="preload" as="script" href="https://public.slidesharecdn.com/_next/static/chunks/pages/_app-16b66ceb98aedb85.js"/><link rel="preload" as="script" href="https://public.slidesharecdn.com/_next/static/chunks/5121-c12bfd4bed7c2139.js"/><link rel="preload" as="script" href="https://public.slidesharecdn.com/_next/static/chunks/5581-c31338dd77890eb2.js"/><link rel="preload" as="script" href="https://public.slidesharecdn.com/_next/static/chunks/4740-639dc16ecd764905.js"/><link rel="preload" as="script" href="https://public.slidesharecdn.com/_next/static/chunks/6229-805fdfedcd38ba3e.js"/><link rel="preload" as="script" href="https://public.slidesharecdn.com/_next/static/chunks/pages/slideshow/%5Btitle%5D/%5Bid%5D-451dcf877ad69f2b.js"/><link rel="preload" as="script" href="https://public.slidesharecdn.com/_next/static/45a83e178683d1e132a983d100835d187a679f69/_buildManifest.js"/><link rel="preload" as="script" href="https://public.slidesharecdn.com/_next/static/45a83e178683d1e132a983d100835d187a679f69/_ssgManifest.js"/><style>:root{--black:#000;--white:#fff;--alice-blue-100:#f5fcff;--alice-blue-200:#f2faff;--alice-blue-600:#ddf1f9;--celadon-blue:#027eb0;--celadon-blue-dark:#026c97;--midnight-green-dark:#002e3c;--light-gray:#e9edf8;--pale-gray:#fdfdfd;--snow-gray:#f3f6fd;--snow-gray-100:#f9faff;--blue-gray-100:#f5f6fa;--blue-gray-200:#e3e6f0;--blue-gray-300:#d0d6e6;--blue-gray-400:#b4bbd1;--blue-gray-500:#989fbc;--blue-gray-600:#636c8b;--blue-gray-700:#424766;--blue-gray-800:#212240;--blue-gray-900:#0e0f25;--blue-300:#005e93;--blue-200:#0076b9;--blue-100:#e7f5fc;--gray-500:#303133;--tangerine-100:#fbedd8;--color-info:#3aa7ea;--color-error:#bf3131;--color-success:#337c41;--color-warning:#cd5308;--color-error-red-100:#f2dede;--celadon-blue-rgb:2,126,176;--blue-gray-600-rgb:99,108,139;--color-twitter:#1da1f2;--color-twitter-hover:#1a91da;--color-facebook:#3b5998;--color-facebook-hover:#3c5586;--color-linkedin:#337ab1;--color-linkedin-hover:#2e6e9f;--color-scribd:#1e7b85;--color-scribd-hover:#1d7680;--color-sms:#3b3835;--color-email:#bbc4c8;color-scheme:only light;--header-height:64px;--toolbar-height:54px;--progress-bar-height:8px;--pushdown-height:90px;--adhesion-height:0px;--key-moments-size:140px;--sidebar-size:404px;--metadata-toolbar-height:100px;--metadata-toolbar-offset:0px;--metadata-toolbar-shadow-opacity:0;--actions-menu-height:74px;--max-content-width:1688px;--border-radius:8px;--sticky-index:8;--header-index:11;--dropdown-index:99;--freestar-index:999;--progress-bar-index:9999;--popup-index:9999;--toast-index:99999;--pointly-index:2;--slide-actions-index:3;--font-weight-light:300;--font-weight-regular:400;--font-weight-medium:600;--font-weight-bold:700;--font-weight-black:900;--font-size-large:16px;--font-size-medium:14px;--font-size-small:12px;--font-size-xsmall:10px;--line-height-relax:1.5;--line-height-compact:1.15;--line-height-tight:1;--ease:cubic-bezier(0.2,0,0,1)}@media screen and (max-width:1249px){:root{--sidebar-size:364px}}@media screen and (max-width:1024px){:root{--header-height:75px}}@media screen and (max-width:767px){:root{--pushdown-height:50px}}@media only screen and (min-width:929px){:root{--actions-menu-height:0}}*,:after,:before{box-sizing:border-box}*{margin:0}:focus-visible{outline:2px solid rgba(2,126,176,.7);outline-offset:2px}body,html{min-height:100%}html{scroll-behavior:smooth;scrollbar-gutter:stable}body{background-color:var(--white);font-family:var(--font-family);font-size:var(--font-size-medium);line-height:var(--line-height-relax);overflow:clip scroll;text-rendering:optimizeLegibility;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}canvas,img,picture,video{display:block;max-width:100%}button,input,select,textarea{font-family:var(--font-family)}h1,h2,h3,h4,h5,h6,p{overflow-wrap:break-word}#__next,#root{isolation:isolate;min-height:100%;height:-moz-max-content;height:max-content}::-moz-selection{color:var(--blue-gray-900);background-color:var(--blue-gray-200)}::selection{color:var(--blue-gray-900);background-color:var(--blue-gray-200)}body:has(dialog[open]){overflow:clip}header:has(+aside.visible){box-shadow:none}header:has(+aside:not(.visible)){box-shadow:0 1px 0 0 var(--blue-gray-200)}.content-wrapper{width:100%;max-width:var(--max-content-width);margin-inline:auto}.clamp-lines{-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;display:-webkit-box}.clamp-lines,.ellipsis{text-overflow:ellipsis;overflow:hidden}.ellipsis{white-space:nowrap}.seo-only,.sr-only{position:absolute!important;width:1px;height:1px;border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);padding:0;margin:-1px;overflow:hidden;white-space:nowrap}.no-scroll,body[class^=no-scroll-for-]{overflow:hidden;touch-action:none}.hide-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.hide-scrollbar::-webkit-scrollbar{display:none}.unstyled-button{background:none;border:none;padding:0}body:has(#slideshare_pushdown-pushdown-cls iframe){--pushdown-height:90px}body:has(.fs-pushdown-sticky:empty){--pushdown-height:0px}@media only screen and (max-width:928px){#fs-sticky-footer{bottom:var(--actions-menu-height)}}@media only screen and (min-width:1051px){body:has(#slideshare_pushdown-pushdown-cls.fs-pushdown-sticky){--metadata-toolbar-offset:0px!important}}.metadata-toolbar{top:var(--metadata-toolbar-offset)}body:has(#fs-sticky-footer iframe) #fixed-download-container{bottom:var(--adhesion-height,0)}body:not(:has(#fs-sticky-footer iframe)) #fs-sticky-footer{min-height:0!important}dialog[open]{display:grid;opacity:1}dialog[open]::backdrop{opacity:.6}dialog{width:auto;height:auto;max-width:100dvw;max-height:100dvh;box-shadow:0 0 0 1px rgba(9,30,66,.08),0 2px 1px rgba(9,30,66,.08),0 0 20px -6px rgba(9,30,66,.3);border:0;padding:0;overflow:clip}dialog,dialog::backdrop{opacity:0;transition:opacity .3s ease-out,transform .3s ease-out,translate .3s ease-out,display allow-discrete .3s,overlay allow-discrete .3s}dialog::backdrop{background-color:#000}@starting-style{dialog[open],dialog[open]::backdrop{opacity:0}}.popover.open,[popover]:popover-open{opacity:1;scale:1}[popover]:popover-open::backdrop{opacity:0}.popover{display:none;z-index:var(--popup-index)}.popover.open{display:block;opacity:1}.popover,[popover]{position:absolute;inset:auto;color:var(--blue-gray-800);background-color:canvas;border:0;border-radius:4px;box-shadow:0 1px 5px rgba(0,0,0,.05),0 4px 12px rgba(0,0,0,.2);overscroll-behavior:contain;overflow:clip auto;padding:0;margin-block:1ch;scale:.96}.popover,[popover],[popover]::backdrop{transition:opacity .3s,scale .3s,display allow-discrete .2s,overlay allow-discrete .2s;opacity:0}@starting-style{.popover.open,[popover]:popover-open,[popover]:popover-open::backdrop{opacity:0}.popover.open,[popover]:popover-open{scale:.96}}.popover [data-popover-list],[popover] [data-popover-list]{display:flex;flex-direction:column;list-style:none;padding-inline:0;padding-block:8px}.popover [data-popover-item],[popover] [data-popover-item]{width:100%;display:flex;align-items:center;gap:8px;padding-block:12px;padding-inline:16px;color:inherit;text-decoration:none}.popover [data-popover-item]:hover,[popover] [data-popover-item]:hover{background-color:var(--blue-gray-100)}.popover [role=separator],[popover] [role=separator]{margin-block:8px;margin-inline:16px}@supports (anchor-name:--foo-bar){[popover]{position-try-order:most-height;position-visibility:anchors-visible}[popover][data-popover-position=bottom]{top:anchor(bottom);left:anchor(center);translate:-50% 0;transform-origin:top center;position-try:flip-block}[popover][data-popover-position=bottom-start]{top:anchor(bottom);left:anchor(start);transform-origin:top left;position-try:flip-block,flip-inline}[popover][data-popover-position=bottom-end]{top:anchor(bottom);right:anchor(end);transform-origin:top right;position-try:flip-block,flip-inline}[popover][data-popover-position=top]{bottom:anchor(top);left:anchor(center);transform-origin:bottom center;position-try:flip-block}[popover][data-popover-position=top-start]{bottom:anchor(top);left:anchor(start);transform-origin:bottom left;position-try:flip-block,flip-inline}[popover][data-popover-position=top-end]{bottom:anchor(top);right:anchor(end);transform-origin:bottom right;position-try:flip-block,flip-inline}}#fs-sticky-footer,.orp-player-wrapper{z-index:var(--freestar-index)!important}.fs-sticky-parent{position:static!important}.fs-sticky-wrapper{padding-right:0!important;display:block!important}#slideshare_pushdown-pushdown-cls.fs-pushdown-sticky{position:static!important}body.no-scroll-mobile #slideshare_pushdown-pushdown-cls{height:auto}body.gallery-view #slideshare_pushdown-pushdown-cls{display:none}#pushdown-ad-large{display:grid;justify-content:center;align-items:center}#above-recs-desktop-ad-sm,#above-recs-mobile,#below-reader-ad,#between-recs-ad-1,#between-recs-ad-2{height:280px}@media screen and (min-width:929px){#below-reader-ad,#between-recs-ad-1,#between-recs-ad-2{height:250px}#above-recs-desktop-ad-sm,#above-recs-desktop-ad-sm-2{aspect-ratio:336/280;height:280px;margin-bottom:32px}#above-recs-desktop-ad-sm_container{justify-content:left!important}}@media only screen and (min-width:1051px){body{--padding-x-offset:clamp(1rem,-1.6rem + 8vw,8rem);--margin-x-offset:0px;--end:calc(var(--padding-x-offset) + var(--sidebar-size) + var(--margin-x-offset))}#fs-sticky-footer:has(#slideshare_adhesion){left:0;width:calc(100% - var(--end))}#fs-sticky-footer:has(#slideshare_adhesion2){width:var(--end);left:unset;right:0}}@media only screen and (min-width:1689px){body{--margin-x-offset:calc(calc(100% - var(--max-content-width)) / 2)}}div:has(>#between-recs-ad-1),div:has(>#between-recs-ad-2),div:has(>#interstitial-ad-1),div:has(>[id^=slideshare_docs_incontent]){display:grid;justify-content:center}div:has(>#interstitial-ad-1.video-interstitial-ad){display:block}@media screen and (max-width:928px){div:has(>#above-recs-mobile),div:has(>#below-reader-ad){display:grid;justify-content:center}}#fs-sticky-footer.hidden,.orp-player-wrapper.hidden{display:none!important}@media only screen and (max-width:928px){#fs-sticky-footer.hidden-on-mobile,.orp-player-wrapper.hidden-on-mobile{display:none!important}}div[id^=FreeStarVideoAdContainer_]{width:100%}#freestar-video-child:not(:empty){margin-bottom:24px}div[id^=FreeStarVideoAdContainer_FloatingOnly]{width:auto;aspect-ratio:auto}:root{--shadow-color:rgba(122,61,143,.15);--osano-dialog-shadow:drop-shadow(var(--shadow-color) 0.5px 1px 1px) drop-shadow(var(--shadow-color) 1px 2px 2px) drop-shadow(var(--shadow-color) 2px 4px 4px) drop-shadow(var(--shadow-color) 4px 8px 8px) drop-shadow(var(--shadow-color) 8px 16px 16px)}.osano-cm-dialog{background-color:#212240;color:var(--white)}.osano-cm-dialog__close{color:inherit;stroke:var(--white)}.osano-cm-dialog--eu{display:grid;grid-template-columns:1fr 200px;grid-column-gap:48px;-moz-column-gap:48px;column-gap:48px;max-height:95dvh;font-family:Source Sans Pro,sans-serif;color:var(--blue-gray-600,#636c8b);background-color:var(--white,#fff);border-top-left-radius:var(--border-radius,8px);border-top-right-radius:var(--border-radius,8px);filter:var(--osano-dialog-shadow);padding-block-start:32px;padding-block-end:20px;padding-inline:5%;.osano-cm-dialog__content{max-height:calc(95dvh - 52px)}.osano-cm-dialog__close{display:none}.osano-cm-dialog__title{font-size:24px;font-weight:700;color:var(--blue-gray-900,#0e0f25);margin-block-end:16px}.osano-cm-content__usage-list{font-size:16px}.osano-cm-usage-list__list{margin-block-start:8px;margin-block-end:16px;margin-inline-start:8px;.osano-cm-list__list-item{font-size:16px}}.osano-cm-link,.osano-cm-message{font-size:16px}.osano-cm-message{display:flex}.osano-cm-drawer-links,.osano-cm-link{display:inline}.osano-cm-link{color:var(--celadon-blue,#027eb0);font-weight:600;text-decoration:none;&:hover{color:var(--celadon-blue-dark,#026c97)}&:after{content:"|";padding-inline:12px}&:last-child:after{content:""}}.osano-cm-dialog__list{line-height:normal;margin-block-start:24px;.osano-cm-list__list-item{display:inline-flex;align-items:center;&:after{content:"|";padding-inline:16px;color:var(--blue-gray-200,#e3e6f0);font-size:28px}&:last-child:after{content:""}}}.osano-cm-toggle__switch{display:none}.osano-cm-toggle__input{width:16px;height:16px;margin:unset;overflow:unset;accent-color:var(--blue-gray-900,#0e0f25);position:static;opacity:1}.osano-cm-toggle__label.osano-cm-label{color:var(--blue-gray-600,#636c8b);font-size:18px;font-weight:600;margin-left:8px;margin-inline-end:0}.osano-cm-dialog__buttons{min-width:unset;align-self:flex-end;display:grid;grid-row-gap:8px;row-gap:8px;justify-content:stretch;align-items:center;margin:unset;.osano-cm-buttons__button{height:-moz-max-content;height:max-content;min-height:40px;font-size:16px;font-weight:600;margin:unset}.osano-cm-accept-all{order:-1}.osano-cm-accept-all,.osano-cm-manage{background-color:var(--celadon-blue,#027eb0)}.osano-cm-deny,.osano-cm-denyAll,.osano-cm-save{background-color:transparent;color:var(--celadon-blue,#027eb0);border:1px solid var(--celadon-blue,#027eb0)}}}.osano-cm-dialog--eu.osano-cm-dialog--br{.osano-cm-dialog__title{font-size:26px;font-weight:600}.osano-cm-dialog__buttons{row-gap:12px}}.osano-cm-window:has(>.osano-cm-dialog--br-overlay):before{content:"";position:fixed;inset:0;background-color:rgba(0,0,0,.6);z-index:-1}@media screen and (max-width:768px){.osano-cm-dialog--eu{-moz-column-gap:24px;column-gap:24px;grid-template-columns:1fr;padding-block-end:32px;padding-inline:16px;.osano-cm-dialog__buttons{display:flex;flex-wrap:nowrap;align-items:center;justify-content:flex-start;gap:16px;.osano-cm-buttons__button{width:-moz-max-content;width:max-content}}}.osano-cm-dialog--eu.osano-cm-dialog--br{.osano-cm-link,.osano-cm-message{font-size:16px;width:auto}.osano-cm-dialog__buttons{margin-block-start:24px;row-gap:16px}}}@media screen and (max-width:520px){.osano-cm-dialog--eu{font-size:14px;padding-block-start:16px;padding-block-end:16px;.osano-cm-dialog__title{font-size:20px;margin-block-end:8px}.osano-cm-link,.osano-cm-message{font-size:inherit}.osano-cm-usage-list__list{font-size:12px;.osano-cm-list__list-item{font-size:inherit}}.osano-cm-toggle__label.osano-cm-label{font-size:15px}.osano-cm-dialog__list{width:100%;display:flex;flex-direction:column;margin-block-start:8px;.osano-cm-list__list-item{display:grid;border-bottom:1px solid var(--blue-gray-200,#e3e6f0);padding-block:4px;&:last-child{border-bottom:unset}}.osano-cm-list__list-item:after{content:unset}.osano-cm-list-item__toggle{align-self:baseline;justify-content:space-between;.osano-cm-toggle__label{order:-1;margin:unset}}}.osano-cm-dialog__buttons{display:grid;grid-template-columns:1fr 1fr;grid-column-gap:16px;-moz-column-gap:16px;column-gap:16px;grid-row-gap:12px;row-gap:12px;margin-block-start:0;.osano-cm-buttons__button{min-width:-moz-max-content;min-width:max-content;width:unset;justify-self:stretch}.osano-cm-accept-all{grid-column:1/span 2}}}.osano-cm-dialog--eu.osano-cm-dialog--br{padding-block-start:32px;padding-block-end:32px;.osano-cm-dialog__title{font-size:26px;margin-block-end:16px}.osano-cm-link,.osano-cm-message{font-size:16px;width:auto}.osano-cm-dialog__buttons{margin-block-start:24px;row-gap:16px}}}@media screen and (min-width:929px){.osano-cm-widget{display:none}.osano-cm-content__message{margin-bottom:8px;padding-bottom:0;width:90%}.osano-cm-message{font-size:12px}.osano-cm-drawer-links{margin:0}.osano-cm-link{color:var(--celadon-blue);font-size:12px}.osano-cm-list__list-item{font-size:12px}.osano-cm-dialog__buttons{display:flex;align-items:center;gap:6px}.osano-cm-button{height:44px;font-size:14px;background-color:var(--celadon-blue);border-color:var(--celadon-blue);color:var(--white);padding:10px;margin:3px 0}.osano-cm-denyAll{background-color:var(--blue-gray-800);border-color:var(--white);color:var(--white)}}.osano-cm-widget{display:none}.osano-cm-content__message{margin-bottom:8px;padding-bottom:0;width:90%}.osano-cm-message{font-size:12px}.osano-cm-drawer-links{margin:0}.osano-cm-link{color:var(--celadon-blue);font-size:12px}.osano-cm-list__list-item{font-size:12px}.osano-cm-dialog__buttons{display:flex;align-items:center;gap:6px}.osano-cm-button{height:44px;font-size:14px;background-color:var(--celadon-blue);border-color:var(--celadon-blue);color:var(--white);padding:10px;margin:3px 0}.osano-cm-denyAll{background-color:var(--blue-gray-800);border-color:var(--white);color:var(--white)}@font-face{font-family:__Source_Sans_3_4d9a39;font-style:normal;font-weight:200 900;font-display:swap;src:url(https://public.slidesharecdn.com/_next/static/media/bccb245ee3362e85-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:__Source_Sans_3_4d9a39;font-style:normal;font-weight:200 900;font-display:swap;src:url(https://public.slidesharecdn.com/_next/static/media/4117e16a89310b23-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:__Source_Sans_3_4d9a39;font-style:normal;font-weight:200 900;font-display:swap;src:url(https://public.slidesharecdn.com/_next/static/media/2a041df68de43fa6-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:__Source_Sans_3_4d9a39;font-style:normal;font-weight:200 900;font-display:swap;src:url(https://public.slidesharecdn.com/_next/static/media/17c5807503b61094-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:__Source_Sans_3_4d9a39;font-style:normal;font-weight:200 900;font-display:swap;src:url(https://public.slidesharecdn.com/_next/static/media/7572a3f8628c1f19-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__Source_Sans_3_4d9a39;font-style:normal;font-weight:200 900;font-display:swap;src:url(https://public.slidesharecdn.com/_next/static/media/9c20d643cc03e499-s.p.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Source_Sans_3_4d9a39;font-style:normal;font-weight:200 900;font-display:swap;src:url(https://public.slidesharecdn.com/_next/static/media/a9b61b60c2d733b4-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Source_Sans_3_Fallback_4d9a39;src:local("Arial");ascent-override:109.21%;descent-override:42.66%;line-gap-override:0.00%;size-adjust:93.76%}.__className_4d9a39{font-family:__Source_Sans_3_4d9a39,__Source_Sans_3_Fallback_4d9a39,Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-style:normal}.__variable_4d9a39{--font-family:"__Source_Sans_3_4d9a39","__Source_Sans_3_Fallback_4d9a39",Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.PageProgressBar_root__1y_Q3{position:fixed;top:0;left:0;width:100%;z-index:var(--progress-bar-index);pointer-events:none}.PageProgressBar_bar__Kyoem{width:100%;height:3px;background-color:var(--celadon-blue);transform:scaleX(0);transform-origin:left;transition:transform .4s cubic-bezier(.4,0,.2,1),opacity .5s ease;opacity:1}.PageProgressBar_complete__KhJy3{opacity:0}.ErrorShell_root__zYUH8{min-height:100vh;display:flex;flex-direction:column}.Header_root__8A86O{--fluid-16-24:clamp(1rem,0.7373rem + 1.3136vi,1.5rem);position:relative;height:var(--header-height);display:grid;grid-template-columns:auto 1fr;align-items:center;grid-gap:24px;gap:24px;background-color:var(--white);font-family:inherit;padding-inline:var(--fluid-16-24)}.Header_root__8A86O.Header_sticky__NGNE7{position:sticky;top:0;transition:box-shadow .3s ease-in-out;z-index:var(--header-index)}.Header_root__8A86O button{font-size:14px;white-space:nowrap}.Header_wrapper___zBfP{display:flex;align-items:center;flex-shrink:0;gap:12px}@media screen and (min-width:768px){.Header_root__8A86O{grid-template-columns:repeat(3,minmax(min-content,1fr))}}.Hamburger_root__tHlgC{display:grid;place-content:center;background:transparent;border:0;border-radius:2px;color:var(--blue-gray-600);padding:0;margin:0;cursor:pointer}@media screen and (min-width:768px){.Hamburger_root__tHlgC{display:none}}.SidebarFallback_loggedOutRoot__oKMfe{display:grid;grid-template-rows:170px 1fr}.SidebarFallback_loggedOutContainer__Tpr_u{display:flex;flex-direction:column;padding:16px}.SidebarFallback_loggedInRoot__r1CEd{display:grid;grid-template-rows:64px 1fr}.SidebarFallback_loggedInContainer__dw_ML{display:flex;flex-direction:column;gap:16px;padding:16px}.SidebarFallback_loggedInLinks__C2NaL{display:grid;grid-gap:24px;gap:24px}.SidebarFallback_loggedInUser__b8i41{display:flex;align-items:center;gap:8px;margin-block-start:12px;margin-block-end:auto}.Skeleton_root__U4QqL{--skeleton-bg:rgba(0,0,0,.1);--shimmer-bg:linear-gradient(90deg,transparent,rgba(0,0,0,.04),transparent);position:relative;display:block;height:1.2rem;flex-shrink:0;background:var(--skeleton-bg);overflow:hidden}.Skeleton_root__U4QqL:after{content:"";position:absolute;inset:0;translate:-100% 0;background:var(--shimmer-bg);animation:Skeleton_shimmer__hGst9 2s ease-in-out .5s infinite}.Skeleton_circle___fxTG{aspect-ratio:1/1;border-radius:100vmax;height:unset}.Skeleton_rectangle__UY3OD{border-radius:0}.Skeleton_rounded__BLBq2{border-radius:4px}.Skeleton_text___JusF{border-radius:4px;font-size:1rem;scale:1 .6}.Skeleton_text___JusF:before{content:"\00a0"}.Skeleton_list__xNehW{display:flex;flex-direction:column;gap:6px;padding-inline:8px;padding-block:10px}.Skeleton_copy__qgw2R{display:flex;flex-direction:column;padding-block:12px;padding-inline:16px}.Skeleton_copy__qgw2R .skeleton:first-child{margin-block-end:8px}@keyframes Skeleton_shimmer__hGst9{0%{translate:-100% 0}50%{translate:100% 0}to{translate:100% 0}}.Icon_root__AjZyv{--size:24px;position:relative;display:flex;align-items:center;justify-content:center}.Icon_icon__4zzsG{flex-shrink:0;display:inline-block;width:var(--size);height:var(--size);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:cover;mask-size:cover;vertical-align:middle}.Drawer_root__ob4ZM[open]{translate:0 0}.Drawer_root__ob4ZM{position:fixed;inset:0;border-radius:0;translate:var(--slide-from)}@starting-style{.Drawer_root__ob4ZM[open]{translate:var(--slide-from)}}.Drawer_root__ob4ZM[data-placement=left]{--slide-from:-100% 0;inset-inline-end:auto;border-top-right-radius:var(--border-radius);border-bottom-right-radius:var(--border-radius)}.Drawer_root__ob4ZM[data-placement=right]{--slide-from:100% 0;inset-inline-start:unset;border-top-left-radius:var(--border-radius);border-bottom-left-radius:var(--border-radius)}.Drawer_root__ob4ZM[data-placement=bottom]{--slide-from:0 100%;inset-block-start:unset;border-top-left-radius:var(--border-radius);border-top-right-radius:var(--border-radius)}.Drawer_content__ye6ZB{display:grid;overflow:auto}.Drawer_root__ob4ZM[data-placement=left],.Drawer_root__ob4ZM[data-placement=right]{width:min(280px,80vw);height:100dvh}.Drawer_root__ob4ZM[data-placement=bottom]{width:100dvw;max-height:80dvh}.CloseButton_root__JCTRm{position:absolute;right:16px;top:16px;width:40px;height:40px;display:grid;place-content:center;color:var(--blue-gray-600);border-radius:100vmax;background-color:transparent;border:0;padding:0;margin:0;transition:background-color .2s ease-in-out;cursor:pointer}.CloseButton_root__JCTRm:hover{background-color:rgba(var(--blue-gray-600-rgb),.05)}.Logo_root__Qba3h{flex-shrink:0}.SearchForm_root__usp4s{position:relative;justify-self:center;width:min(100%,440px)}.SearchForm_root__usp4s form{display:grid}.SearchForm_root__usp4s input{height:40px;border-radius:100vmax;border:1px solid var(--blue-gray-600);margin:0;padding:0 40px 0 16px;color:var(--blue-gray-900);background-color:var(--white);width:100%}.SearchForm_root__usp4s input::-moz-placeholder{color:var(--blue-gray-600)}.SearchForm_root__usp4s input::placeholder{color:var(--blue-gray-600)}.SearchForm_submit__U8kPR{width:32px;height:32px;position:absolute;right:14px;top:50%;display:grid;place-content:center;border:none;background:transparent;border-radius:100vmax;color:var(--blue-gray-400);padding:0;margin:0;translate:0 -50%;cursor:pointer}@media screen and (max-width:768px){.SearchForm_root__usp4s{justify-self:flex-end}}.HeaderActions_root__11_ai{display:flex;align-items:center;justify-self:flex-end;gap:16px}@media screen and (max-width:768px){.HeaderActions_root__11_ai{display:none}}.Footer_footer__N3WmV{width:100%;display:flex;flex-direction:column;background-color:var(--midnight-green-dark);color:var(--blue-gray-400);padding:24px;margin-top:auto}.Footer_separator__Qa1tj{border:1px solid var(--white);opacity:.2;margin:24px 0}.FooterTop_wrapper__RuYz5{display:flex;justify-content:space-between;align-items:center;gap:24px}.FooterTop_links__9J65v{color:inherit;display:flex;align-items:center;flex-wrap:wrap;-moz-column-gap:40px;column-gap:40px;row-gap:12px;padding:0;margin:0}.FooterTop_cookiePreferenceButton__xmSox{background-color:transparent;border:none;color:inherit;font-size:inherit;font-weight:800;cursor:pointer}@media screen and (max-width:768px){.FooterTop_links__9J65v{-moz-column-gap:24px;column-gap:24px}}.Link_root__vn3ab{display:inline-flex;align-items:center;gap:4px;border-radius:2px;color:inherit;font-size:inherit;font-weight:inherit;text-decoration:none;-webkit-text-decoration-color:transparent;text-decoration-color:transparent;transition:color .2s ease-in-out,-webkit-text-decoration-color .2s ease-in-out .2s;transition:color .2s ease-in-out,text-decoration-color .2s ease-in-out .2s;transition:color .2s ease-in-out,text-decoration-color .2s ease-in-out .2s,-webkit-text-decoration-color .2s ease-in-out .2s}.Link_primary__Iq4CI{color:var(--celadon-blue-dark)}.Link_primary__Iq4CI:focus,.Link_primary__Iq4CI:focus-visible,.Link_primary__Iq4CI:hover{color:var(--celadon-blue)}.Link_gray__Efpxa{color:var(--blue-gray-600)}.Link_gray__Efpxa:focus,.Link_gray__Efpxa:focus-visible,.Link_gray__Efpxa:hover{color:var(--blue-gray-700)}.Link_light__mcUPh{color:var(--blue-gray-400)}.Link_light__mcUPh:focus,.Link_light__mcUPh:focus-visible,.Link_light__mcUPh:hover{color:var(--blue-gray-100)}.Link_dark__Ql4LW{color:var(--blue-gray-800)}.Link_dark__Ql4LW:focus,.Link_dark__Ql4LW:focus-visible,.Link_dark__Ql4LW:hover{color:var(--celadon-blue)}.Link_weight-regular__yPpnB{font-weight:400}.Link_weight-medium__h0ic3{font-weight:600}.Link_weight-bold__me4nt{font-weight:700}.Link_size-small__wSSrC{font-size:12px}.Link_size-medium__ZLo12{font-size:14px}.Link_size-large__W0PAv{font-size:16px}.Link_size-xLarge__Dq0j8{font-size:18px}.Link_hoverUnderline__QMNau:hover,.Link_underline__RoQbh{text-decoration:underline;-webkit-text-decoration-color:inherit;text-decoration-color:inherit}.Link_hoverUnderline__QMNau:hover{text-decoration-thickness:1.5px;text-underline-offset:2px}.FooterBottom_wrapper__Gj9p_{height:51px;display:flex;align-items:center;gap:24px}.FooterBottom_copyright__xltkG{font-size:14px;line-height:24px;margin-right:auto}.FooterBottom_icons__wEEhc{display:flex;align-items:center;gap:16px}.FooterBottom_separator__181dN{width:2px;height:22px;background-color:var(--white);opacity:.2}.PrivateContentMessage_root__IEx17{flex-grow:1;width:100%;height:100%;display:flex;align-items:flex-start}.PrivateContentMessage_box__YG0Bp{width:100%;max-width:960px;background-color:#f2dede;border-color:#eed3d7;border-radius:8px;color:#b94a48;font-size:14px;font-weight:400;padding:16px 24px;margin:100px auto}@media screen and (max-width:960px){.PrivateContentMessage_box__YG0Bp{margin-left:16px;margin-right:16px}}.RemovedContentMessage_root__rtN5X{flex-grow:1;width:100%;display:flex;align-items:flex-start}.RemovedContentMessage_box__pw1z3{width:100%;max-width:960px;background-color:#fcf8e3;border:1px solid #fbeed5;border-radius:4px;color:#c09853;font-size:14px;font-weight:400;text-shadow:0 1px 0 hsla(0,0%,100%,.5);padding:16px 24px;margin:100px auto}.RemovedContentMessage_title__vwHjN{color:#504c48;font-size:25px;font-weight:300;line-height:35px;margin-bottom:4px}@media screen and (max-width:960px){.RemovedContentMessage_box__pw1z3{margin-left:16px;margin-right:16px}}.ErrorDisplay_root__bY_Qo{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--white);font-family:-system-ui,sans-serif;color:var(--blue-gray-800)}.ErrorDisplay_smiley__o9HSN{width:129px;height:122px;margin:60px auto 30px}.ErrorDisplay_errorBox__jL_9h{max-width:800px;width:100%;height:290px;background:var(--white) url(/images/fadedlogo.jpg) no-repeat left top;background-position:14px 20px;margin:0 auto 120px}.ErrorDisplay_errorCode__AlZal{border-right:1px solid var(--blue-gray-100);color:var(--blue-gray-500);float:left;font-size:1.3em;height:290px;line-height:370px;margin:0 25px 0 0;vertical-align:bottom;text-align:center;width:200px}.ErrorDisplay_errorBox__jL_9h h1{font-weight:400;margin-bottom:0}.ErrorDisplay_errorBox__jL_9h h2{font-size:.9em;font-weight:400;margin-top:0}.ErrorDisplay_errorBox__jL_9h h3{font-size:1em;font-weight:700;margin:10px 0}.ErrorDisplay_errorBox__jL_9h ul{list-style-type:none}.ErrorDisplay_errorBox__jL_9h ul li{background:transparent url(/images/arrow.png) no-repeat left 6px;float:left;font-size:.813em;font-weight:400;list-style-type:none;margin:.313em;padding-left:20px;width:110px}.ErrorDisplay_middle__espDJ{padding-right:3.5em}.ErrorDisplay_searchSection__1J_EK{background:var(--blue-gray-100) url(/images/searchbg.jpg) repeat-x left top;border:1px solid var(--blue-gray-300);float:left;padding:10px;margin-top:20px}.ErrorDisplay_searchSection__1J_EK form{display:flex}.ErrorDisplay_searchSection__1J_EK button{background:url(/images/searchbutton.jpg) repeat-x scroll 0 0 #ffb762;border:1px solid #db9b51;color:var(--blue-gray-800);cursor:pointer;float:left;font-size:1em;margin:0 0 0 .8px;padding:9px 15px;outline:0 none;text-decoration:none;text-shadow:1px 1px 1px var(--white);vertical-align:top}.ErrorDisplay_searchSection__1J_EK button span{background:#ffb762 url(/images/magnifier.jpg) no-repeat 0 0;padding:0 8px;margin-left:5px;text-decoration:none}.ErrorDisplay_errorSearchBox__Uglib{border-color:var(--blue-gray-500) var(--blue-gray-400) var(--blue-gray-400) var(--blue-gray-500);border-width:1px;color:var(--blue-gray-600);float:left;font-size:13px;margin-left:2px;padding:9px;vertical-align:top;width:350px}@media screen and (max-width:768px){.ErrorDisplay_searchSection__1J_EK{width:calc(100% - 240px)}.ErrorDisplay_errorSearchBox__Uglib{width:calc(100% - 128px);margin:0 auto}}.ToastManager_root__mVUMQ{position:fixed;inset-block-end:0;inset-inline:0;display:grid;justify-items:flex-end;justify-content:flex-end;grid-gap:1vh;gap:1vh;padding-block-end:5vh;padding-right:1rem;pointer-events:none;z-index:var(--toast-index)}@media only screen and (max-width:928px){.ToastManager_root__mVUMQ{justify-items:center;justify-content:center;padding-right:0;top:0;padding-block-start:2vh;inset-block-end:unset}}.Toast_root__ZhPa4{min-width:360px;max-width:360px;display:grid;grid-template-columns:max-content 1fr repeat(2,max-content);grid-gap:4px;gap:4px;background-color:var(--background);border-radius:8px;color:var(--white);padding-block:28px;padding-inline:24px;pointer-events:all;opacity:1;transition:opacity .3s ease-in-out}@starting-style{.Toast_root__ZhPa4{opacity:0}}.Toast_info__g9NV8{--background:var(--midnight-green-dark)}.Toast_success__sWJ1E{--background:var(--color-success)}.Toast_error__SQpXK{--background:var(--color-error)}.Toast_warning__7GyxY{--background:var(--color-warning)}.Toast_root__ZhPa4>svg{flex-shrink:0;margin-top:2px}.Toast_content__whMkq{font-weight:400;font-size:16px;line-height:24px;word-wrap:break-word}.Toast_separator__dUZVN{width:1px;background-color:var(--blue-gray-500);opacity:.3;margin-inline:8px}.Toast_dismiss___YbdO{color:var(--blue-gray-300);cursor:pointer}.Toast_dismiss___YbdO:hover{color:var(--white)}.PortalsContainer_drawerRoot__esMLC{position:fixed;top:0;left:0}.PortalsContainer_bannerRoot__Q_sNw{position:relative}.PortalsContainer_drawerRoot__esMLC{z-index:101} /*# sourceMappingURL=72ab5910a3b55ae9.css.map*/</style><style>.SlideshowScreen_root__k9j1_{width:100%;max-width:var(--max-content-width);position:relative;display:grid;place-content:flex-start;grid-template-columns:minmax(0,1fr) var(--sidebar-size);grid-template-rows:auto auto 1fr;background-color:var(--white);padding-block:1px;padding-inline:clamp(1rem,-1.6rem + 8vw,8rem);margin-inline:auto}.SlideshowScreen_root__k9j1_.SlideshowScreen_withKeyMoments__RbHLe{grid-template-columns:var(--key-moments-size) minmax(0,1fr) var(--sidebar-size)}.SlideshowScreen_root__k9j1_.SlideshowScreen_withAdSidebar__iVE05{--sidebar-size:calc(1px + 300px + 56px)}.SlideshowScreen_root__k9j1_:before{content:"";position:absolute;inset:0 0 auto;height:1px;background-color:var(--blue-gray-200);margin-inline:-50vw}.SlideshowScreen_root__k9j1_ .sidebar{border-left:1px solid var(--blue-gray-200);grid-row:1/-1;grid-column:2}.SlideshowScreen_root__k9j1_.SlideshowScreen_withKeyMoments__RbHLe .sidebar{grid-column:3}.SlideshowScreen_root__k9j1_ .metadata{grid-column:1/-2;grid-row:1}.SlideshowScreen_root__k9j1_ .metadata-toolbar{grid-column:1/-2;grid-row:2}.SlideshowScreen_root__k9j1_ .player{grid-column:1}@media screen and (min-width:929px){.SlideshowScreen_root__k9j1_.SlideshowScreen_withKeyMoments__RbHLe .player{grid-column:2;grid-row:3}}.SlideshowScreen_root__k9j1_.SlideshowScreen_withKeyMoments__RbHLe .key-moments{grid-column:1;grid-row:3}@media screen and (min-width:929px){.SlideshowScreen_root__k9j1_.SlideshowScreen_withKeyMoments__RbHLe .player{border-left:1px solid var(--blue-gray-200)}.SlideshowScreen_root__k9j1_.SlideshowScreen_withKeyMoments__RbHLe .metadata{padding-inline-end:24px}}@media screen and (min-width:929px) and (max-width:1050px){.SlideshowScreen_root__k9j1_.SlideshowScreen_withKeyMoments__RbHLe{grid-template-columns:var(--key-moments-size) minmax(0,1fr);padding-inline:0}.SlideshowScreen_root__k9j1_.SlideshowScreen_withKeyMoments__RbHLe .metadata,.SlideshowScreen_root__k9j1_.SlideshowScreen_withKeyMoments__RbHLe .metadata-toolbar{grid-column:1/-1;padding-inline:16px}}@media screen and (max-width:928px){.SlideshowScreen_root__k9j1_:before{display:none}.SlideshowScreen_root__k9j1_.SlideshowScreen_withKeyMoments__RbHLe{grid-template-columns:minmax(0,1fr)!important}.SlideshowScreen_root__k9j1_ .metadata,.SlideshowScreen_root__k9j1_ .metadata-toolbar,.SlideshowScreen_root__k9j1_ .player{grid-column:1/-1}}.PrivateContentScreen_root__qdfD9{gap:30px}.PasswordForm_root__Pnyoo,.PrivateContentScreen_root__qdfD9{min-height:calc(100svh - 2 * var(--header-height));background-color:var(--blue-gray-100);display:flex;flex-direction:column;align-items:center;justify-content:center}.PasswordForm_root__Pnyoo{gap:20px}.Form_root__NTbyO{display:flex;flex-direction:column;gap:10px}.Form_root__NTbyO button[type=submit]{align-self:flex-start}.Button_root__i1yp0{--size:44px;--foreground:var(--white);--background:var(--celadon-blue);--border:var(--celadon-blue);--fontSize:16px;--padding-x:14px;position:relative;min-width:48px;min-height:var(--size);display:flex;align-items:center;border-radius:4px;border:none;background-color:var(--background);color:var(--foreground);font-size:var(--fontSize);font-weight:var(--font-weight-medium);padding-inline:var(--padding-x);transition:color .2s ease-in-out,background-color .2s ease-in-out;cursor:pointer}.Button_root__i1yp0 span{display:flex;align-items:center;gap:4px;opacity:1;transition:opacity .2s ease-in-out}.Button_large__Yv_oe{--fontSize:18px;--size:48px;--padding-x:20px}.Button_regular__i28NX{--fontSize:18px;--size:44px}.Button_medium__H8pKi{--size:40px}.Button_small__sqsEx{--size:32px;--padding-x:12px}.Button_xsmall__jBPCG{--fontSize:14px;--size:24px;--padding-x:8px}.Button_root__i1yp0.Button_icon__1C4qi{justify-content:center;min-width:24px;padding:0}.Button_icon__1C4qi{width:var(--size);height:var(--size)}.Button_spinner__iLPXf{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);opacity:0;visibility:hidden;transition:opacity .2s ease-in-out,visibility .2s ease-in-out}.Button_loading__ZYqeE .Button_spinner__iLPXf{opacity:1;visibility:visible;transition-delay:0s}.Button_loading__ZYqeE span{opacity:0}.Button_fullWidth__dRbM6{width:100%;justify-content:center}.Button_fullWidth__dRbM6 span{justify-content:center}.Button_disabled__M5jJf{opacity:.8;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.Button_primary__K25Gq.Button_contained__gyjai{--foreground:var(--white);--background:var(--celadon-blue);--border:var(--celadon-blue)}.Button_primary__K25Gq.Button_contained__gyjai:active,.Button_primary__K25Gq.Button_contained__gyjai:hover{--background:var(--celadon-blue-dark);--border:var(--celadon-blue-dark)}.Button_primary__K25Gq.Button_outlined__oZHqK{border:1px solid var(--border);--foreground:var(--celadon-blue-dark);--background:transparent;--border:var(--celadon-blue-dark)}.Button_primary__K25Gq.Button_outlined__oZHqK:hover{--foreground:var(--blue-gray-800);--background:rgba(var(--celadon-blue-rgb),0.05);--border:var(--blue-gray-800)}.Button_primary__K25Gq.Button_outlined__oZHqK:active{--foreground:var(--celadon-blue-dark);--background:rgba(var(--celadon-blue-rgb),0.1);--border:var(--celadon-blue)}.Button_primary__K25Gq.Button_text__ZT_3O{--foreground:var(--celadon-blue-dark);--background:transparent;--border:transparent}.Button_primary__K25Gq.Button_text__ZT_3O:hover{--foreground:var(--celadon-blue-dark);--background:rgba(var(--celadon-blue-rgb),0.05);--border:transparent}.Button_primary__K25Gq.Button_text__ZT_3O:active{--foreground:var(--celadon-blue);--background:rgba(var(--celadon-blue-rgb),0.1);--border:transparent}.Button_secondary__hHiHI.Button_contained__gyjai{--foreground:var(--white);--background:var(--blue-gray-600);--border:var(--blue-gray-600)}.Button_secondary__hHiHI.Button_contained__gyjai:hover{--background:var(--blue-gray-700);--border:var(--blue-gray-700)}.Button_secondary__hHiHI.Button_contained__gyjai:active{--background:var(--blue-gray-500);--border:var(--blue-gray-500)}.Button_secondary__hHiHI.Button_outlined__oZHqK{border:1px solid var(--border);--foreground:var(--blue-gray-600);--background:transparent;--border:var(--blue-gray-600)}.Button_secondary__hHiHI.Button_outlined__oZHqK:hover{--foreground:var(--blue-gray-700);--background:rgba(var(--blue-gray-600-rgb),0.05);--border:var(--blue-gray-700)}.Button_secondary__hHiHI.Button_outlined__oZHqK:active{--foreground:var(--blue-gray-600);--background:rgba(var(--blue-gray-600-rgb),0.1);--border:var(--blue-gray-500)}.Button_secondary__hHiHI.Button_regular__i28NX{border:1px solid var(--border);--foreground:var(--blue-gray-700);--background:var(--white);--border:var(--blue-gray-200)}.Button_secondary__hHiHI.Button_regular__i28NX:hover{--background:var(--blue-gray-100)}.Button_secondary__hHiHI.Button_text__ZT_3O{--foreground:var(--blue-gray-600);--background:transparent;--border:transparent}.Button_secondary__hHiHI.Button_text__ZT_3O:hover{--foreground:var(--blue-gray-700);--background:rgba(var(--blue-gray-600-rgb),0.05);--border:transparent}.Button_secondary__hHiHI.Button_text__ZT_3O:active{--foreground:var(--blue-gray-600);--background:rgba(var(--blue-gray-600-rgb),0.1);--border:transparent}.Button_tertiary__ae6C5{--foreground:var(--blue-gray-700);--background:var(--white);border:1px solid var(--blue-gray-200)}.Button_tertiary__ae6C5:hover{--background:var(--blue-gray-100)}.Button_tertiary__ae6C5.Button_active__YNf7E,.Button_tertiary__ae6C5:active{--background:var(--blue-gray-200)}.Dropdown_container__NBOZ_{display:flex;flex-direction:column;gap:8px;font-family:var(--font-family);width:100%;max-width:280px}.Dropdown_select__8pQOA{border:1px solid var(--blue-gray-500);border-radius:4px;font-size:16px;font-weight:400;color:var(--blue-gray-900);margin:0;padding:8px 20px 8px 8px;background:transparent}.Dropdown_select__8pQOA:hover{border:1px solid var(--blue-gray-600);background:transparent}.Dropdown_select__8pQOA:focus{outline:none;border:1px solid var(--celadon-blue)}.Dropdown_footerText__NChWz{color:var(--blue-gray-600);font-size:11px;font-weight:400}.Dropdown_error__QI4FY{border:1px solid var(--color-error)}.Label_label__KH246{font-weight:600;font-size:14px;font-family:var(--font-family);color:var(--blue-gray-600);margin:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.Label_error__jqh1I{color:var(--color-error)}.RequiredNotice_required___q_RJ{display:flex;align-items:center;gap:8px;color:var(--blue-gray-600);font-size:11px;font-weight:400}.RequiredNotice_error__eBy3b{color:var(--color-error)}.Input_container__QSkRF{display:flex;flex-direction:column;gap:8px;font-family:var(--font-family);width:100%;max-width:280px}.Input_input__Q0qP2{padding:8px;border:1px solid var(--blue-gray-500);border-radius:4px;font-size:16px;font-weight:400;color:var(--blue-gray-900);margin:0;height:46px}.Input_input__Q0qP2:hover{border:1px solid var(--blue-gray-600)}.Input_input__Q0qP2:focus{outline:none;border:1px solid var(--celadon-blue)}.Input_error__l9OaT{border:1px solid var(--color-error)}.Input_characterLimit__4NkYE{color:var(--blue-gray-600);font-size:11px;font-weight:400}.Input_characterLimitError__ZByP3{color:var(--color-error)}.Input_footer__55AdV{display:flex;justify-content:space-between}.Input_footerAlignRight__DG8UZ{justify-content:flex-end}.Text_root__is73U{display:inline-block;padding:0;margin:0}.Text_primary__rZf7F{color:var(--blue-gray-900)}.Text_secondary__EPWj0{color:var(--blue-gray-600)}.Text_success__Mcw5I{color:var(--color-success)}.Text_error__pdEO6{color:var(--color-error)}.Text_warning__xCiZk{color:var(--color-warning)}.Text_white__Sb1IU{color:#fff}.Text_rowTitle__U1gB1{font-size:28px;line-height:35px}.Text_xlarge__X3NtK{font-size:20px;line-height:26px}.Text_large__c_Tar{font-size:18px;line-height:26px}.Text_medium__rk8Tn{font-size:16px;line-height:22px}.Text_small__S0zKm{font-size:14px;line-height:18px}.Text_xsmall__vYp9p{font-size:12px;line-height:15px}.Text_xxsmall__kOJdm{font-size:11px;line-height:14px}.Text_disabled___vAZA{color:var(--blue-gray-500)}.Text_italic__ZZFbJ{font-style:italic}.Text_weight-light__Rh8tc{font-weight:300}.Text_weight-regular__gWC16{font-weight:400}.Text_weight-medium__oIdYz{font-weight:500}.Text_weight-strong__yEO2S{font-weight:600}.Text_weight-bold__xnsIS{font-weight:700}.Text_ellipsis__QNjvO{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Text_lineClamp__SO_Pl{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical}.TextArea_container__oc_q4{display:flex;flex-direction:column;gap:8px;font-family:var(--font-family);width:100%;max-width:280px}.TextArea_textarea__VyrNQ{padding:8px;border:1px solid var(--blue-gray-500);border-radius:4px;font-size:16px;font-weight:400;color:var(--blue-gray-900);font-family:var(--font-family);min-height:150px;margin:0}.TextArea_textarea__VyrNQ:hover{border:1px solid var(--blue-gray-600)}.TextArea_textarea__VyrNQ:focus{outline:none;border:1px solid var(--celadon-blue);background:transparent}.TextArea_error__o_XpL{border:1px solid var(--color-error)}.TextArea_characterLimit__hm9El{color:var(--blue-gray-600);font-size:11px;font-weight:400}.TextArea_characterLimitError__UbPM9{color:var(--color-error)}.TextArea_footer__EG4wA{display:flex;justify-content:space-between}.TextArea_footerAlignRight__PmO7Z{justify-content:flex-end}.TagInput_container__4lPGD{display:flex;flex-direction:column;gap:8px;font-family:var(--font-family);width:100%;max-width:280px}.TagInput_input__lsGqa{border:none;flex:1 1;min-width:100px;height:30px}.TagInput_tag__9BE6f{border-radius:20px;padding:4px 8px;border:1px solid var(--blue-gray-300);display:flex;gap:8px;font-size:14px;color:var(--blue-gray-600);font-weight:600;align-items:center}.TagInput_closeTag__oeDgn{border:none;background-color:transparent;padding:0;color:var(--blue-gray-500);font-size:10px;margin:0}.TagInput_closeTag__oeDgn:hover{opacity:.75;cursor:pointer}.TagInput_inputContainer__dl2dW{box-sizing:border-box;padding:8px;border:1px solid var(--blue-gray-500);border-radius:4px;font-size:16px;font-weight:400;color:var(--blue-gray-900);width:100%;display:flex;gap:8px}.TagInput_inputContainer__dl2dW:hover{border:1px solid var(--blue-gray-600)}.TagInput_input__lsGqa:focus{outline:none;border-radius:4px;border:1px solid var(--celadon-blue)}.TagInput_error__INAMJ{border:1px solid var(--color-error)}.TagInput_errorText__Dq2QW{display:flex;align-items:center;gap:8px;color:var(--color-error);font-size:11px;font-weight:400}.TagInput_autocompleteContainer__RgOvw{position:relative}.TagInput_autocomplete__nGD9D{background-color:var(--white);display:flex;flex-direction:column;width:100%;position:absolute;left:0;right:0;top:-8px;box-shadow:0 .5px 5px rgba(0,0,0,.039),0 3.75px 11px rgba(0,0,0,.19);border-radius:4px;overflow-y:scroll;z-index:3}.TagInput_suggestion__k4kfh{padding:8px;color:var(--blue-gray-600);font-weight:600;text-decoration:underline;text-underline-offset:1.5px}.TagInput_suggestion__k4kfh:hover{cursor:pointer;color:var(--blue-gray-600)}.TagInput_focusedSuggestion__QnSXo,.TagInput_suggestion__k4kfh:hover{background-color:var(--blue-gray-200)}.TagInput_tagContainer__LflB5{display:flex;gap:8px;flex-wrap:wrap;width:100%}.TagInput_footerText__O_1t4{color:var(--blue-gray-600);font-size:11px;font-weight:400}.Selector_container__v2jVr{display:flex;flex-direction:column;gap:8px;font-family:var(--font-family);width:100%;max-width:280px}.Selector_selector__U2foh{border-radius:4px;display:flex;width:100%}.Selector_selector__U2foh button{border:1px solid var(--blue-gray-500);padding:6px 0;flex:1 1;margin:0;background-color:transparent}.Selector_selector__U2foh button:enabled:hover{cursor:pointer;background-color:var(--blue-gray-300)}.Selector_selector__U2foh button:first-child{border-radius:4px 0 0 4px}.Selector_selector__U2foh button:last-child{border-radius:0 4px 4px 0}.Selector_selector__U2foh button.Selector_selected__nyxjH{border:1px solid var(--celadon-blue);background-color:var(--celadon-blue)}.Selector_selector__U2foh button.Selector_selected__nyxjH .Selector_text__Rs7F7{color:var(--white)}.Selector_selector__U2foh button.Selector_selected__nyxjH:focus{outline-offset:4px}.Selector_selectorContainer__h4Mg1{display:flex;align-items:center;gap:4px}.Selector_icon__Y9S90{color:var(--blue-gray-500)}.Selector_text__Rs7F7{margin:0;font-weight:400;font-size:16px;font-family:Source Sans Pro,sans-serif}.IconWithExplanation_container__21T3S{position:relative;display:inline-flex}.IconWithExplanation_explanation___qwbw{position:absolute;top:50%;transform:translateY(-50%);left:120%;background-color:#fff;border-radius:4px;box-shadow:0 .5px 5px rgba(0,0,0,.039),0 3.75px 11px rgba(0,0,0,.19);z-index:3;padding:8px;width:150px}.IconWithExplanation_container__21T3S:hover .IconWithExplanation_explanation___qwbw{display:block}.IconWithExplanation_arrow__fCL_Y{content:"";position:absolute;left:-10px;margin-left:-5px;top:50%;transform:translateY(-50%);border:10px solid transparent;border-right-color:#fff}@media (max-width:768px){.IconWithExplanation_arrow__fCL_Y{margin-right:-5px;margin-left:0;border-color:transparent transparent transparent #fff;left:auto;right:-10px}.IconWithExplanation_explanation___qwbw{left:auto;right:120%}}.Checkbox_wrapper__HI5JR{display:flex;gap:10px;align-items:center}.Checkbox_input__RZSBL:hover,.Checkbox_label__7BF2Y:hover,.Checkbox_wrapper__HI5JR:hover{cursor:pointer}.Checkbox_wrapper__HI5JR .Checkbox_label__7BF2Y{font-weight:400;color:var(--blue-gray-900);margin:0}.Checkbox_wrapper__HI5JR .Checkbox_input__RZSBL{width:20px;height:20px;accent-color:var(--celadon-blue);margin:0}.Checkbox_wrapper__HI5JR:hover .Checkbox_input__RZSBL{accent-color:var(--celadon-blue-dark)}.Checkbox_wrapper__HI5JR:hover .Checkbox_label__7BF2Y{color:var(--celadon-blue-dark)}.RadioButton_root__592m2{--size:16px;--borderSize:2px;display:inline-flex;align-items:center;justify-content:flex-start;gap:12px;padding-block:8px;cursor:pointer}.RadioButton_root__592m2.RadioButton_large__K_9NI{--size:24px}.RadioButton_root__592m2.RadioButton_rtl__rAcql{font-size:16px;justify-content:space-between}.RadioButton_root__592m2:hover:not(.RadioButton_labelOnLeft__nb96s){font-weight:600}.RadioButton_root__592m2 input[type=radio]{position:relative;width:var(--size);height:var(--size);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;margin:0;border:var(--borderSize) solid var(--blue-gray-500);border-radius:100vmax}.RadioButton_root__592m2 input[type=radio]:before{content:"";position:absolute;top:50%;left:50%;display:block;width:calc(var(--size) / 2);height:calc(var(--size) / 2);background-color:var(--celadon-blue);border-radius:100vmax;translate:-50% -50%;transition:scale .2s;scale:0}.RadioButton_root__592m2.RadioButton_checked__dJL5R input[type=radio]{border-color:var(--celadon-blue)}.RadioButton_root__592m2.RadioButton_checked__dJL5R input[type=radio]:before{scale:1}.Banner_root__pOnAN{--background:var(--celadon-blue-dark);width:100vw;height:40px;display:flex;align-items:center;justify-content:center;background-color:var(--background);color:var(--white);font-size:var(--font-size-medium);font-weight:var(--font-weight-medium);opacity:0;visibility:hidden;transition:opacity .2s ease-in-out,visibility .2s ease-in-out;z-index:1}.Banner_visible__q1NMx{opacity:1;visibility:visible;transition-delay:0s}.Banner_aboveHeader__hC_i_{position:static;top:0}.Banner_belowHeader__Mcfew{position:absolute;top:var(--header-height)}.Banner_info__7SXSI{--background:var(--color-info)}.Banner_success__wveEs{--background:var(--color-success)}.Banner_error__lW5NB{--background:var(--color-error)}.Banner_warning__pEEt7{--background:var(--color-warning)}.Metadata_root__oCstk{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));place-content:flex-start;padding-inline-end:20px;padding-block-start:32px}.Metadata_root__oCstk .author{grid-column:1;grid-row:3;align-content:flex-start}.Metadata_root__oCstk .description,.Metadata_root__oCstk .pills-list,.Metadata_root__oCstk .stats,.Metadata_root__oCstk .title{grid-column:1/span 2}.Metadata_root__oCstk .title{margin-bottom:8px}.Metadata_root__oCstk .stats{margin-bottom:12px}.Metadata_root__oCstk .description{margin-top:12px}.Metadata_root__oCstk .pills-list{margin-block-start:20px;margin-block-end:18px}.Metadata_root__oCstk .actions{display:none}@media screen and (max-width:928px){.Metadata_root__oCstk{margin-block:8px 20px}.Metadata_root__oCstk .stats{margin-bottom:16px}.Metadata_root__oCstk .description{margin-top:0}.Metadata_root__oCstk .author{grid-column:2;grid-row:5;margin-block-start:12px;margin-block-end:6px;justify-content:end}.Metadata_root__oCstk.Metadata_authorInDescription__hW1wb:not(.Metadata_expanded__uLdy4) .author{display:none}.Metadata_root__oCstk.Metadata_authorInDescription__hW1wb.Metadata_expanded__uLdy4 .author{display:flex;grid-column:1/span 2;grid-row:5;justify-content:flex-start;margin-block-start:12px}.Metadata_root__oCstk .actions{display:none}.Metadata_root__oCstk .pills-list{margin-block-start:16px;margin-block-end:0}}.Metadata_root__oCstk .metadata-recs{grid-column:1/-1}.Title_root__svkHQ{font-size:clamp(26px,1vw + 1rem,28px);font-weight:600;line-height:1.25;min-width:0;word-break:break-word}.Heading_heading__3MAvZ,.Title_root__svkHQ{color:var(--blue-gray-900)}.Heading_h1__3k7S2{font-size:32px;font-weight:700}.Heading_h2__f9yvs{font-size:28px;font-weight:600}.Heading_h3__f1djd{font-size:24px}.Heading_h4__7tfLE{font-size:20px}.Heading_h5__jVM0l{font-size:16px;font-weight:400}.Heading_h6__uUTrd{font-size:14px;font-weight:400}.Stats_root__p_BoZ{flex-wrap:wrap;display:flex;align-items:center;-moz-column-gap:6px;column-gap:6px;color:var(--blue-gray-600);font-size:16px}.Stats_leftContent__588PR,.Stats_rightContent__8d0AF{display:flex;gap:6px}@media screen and (max-width:928px){.Stats_root__p_BoZ.Stats_extendedMetadata__wb62p .Stats_leftContent__588PR{width:100%}.Stats_root__p_BoZ.Stats_extendedMetadata__wb62p .Stats_formatTypesBullet__xDv0L{display:none}}.Likes_root__WVQ1_{cursor:pointer;transition:color .2s ease-in-out;border-radius:4px}.Likes_root__WVQ1_:hover{color:var(--blue-gray-700)}.Author_root___6Bx5{--link-color:var(--blue-gray-800);position:relative;display:flex;align-items:center;gap:8px}.Author_link___lVxw{z-index:1;color:var(--link-color);font-weight:600;display:block}.Author_link___lVxw:before{content:"";position:absolute;inset:0}.Author_follow__Lw4TS{z-index:1}@media screen and (max-width:928px){.Author_link___lVxw:hover{color:var(--blue-gray-800)}}.Avatar_root__GNWHY{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;background-color:var(--white);color:var(--blue-gray-300);border-radius:50%;font-size:16px;font-weight:600;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none;overflow:hidden}.Avatar_initials__EJfVt{color:var(--white);transition:background-color .2s ease-in-out}.Avatar_initials__EJfVt,.Avatar_initials__EJfVt:hover{background-color:var(--blue-gray-600)}.Avatar_image__Bbtll{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.FollowButton_root__FxpBi{display:inline-flex;background-color:transparent;border:1px solid transparent;border-radius:4px;font-size:12px;padding:1px 6px;transition:background-color .2s ease-in-out,border-color .2s ease-in-out;cursor:pointer}.FollowButton_following__xKCww{border-color:#bf5905;color:#bf5905}.FollowButton_following__xKCww:hover{background-color:#ffead7;border-color:rgba(191,89,5,.5)}.FollowButton_follow__d_6u5{border-color:var(--celadon-blue-dark);color:var(--celadon-blue-dark)}.FollowButton_follow__d_6u5:hover{background-color:#eaf7ff;border-color:rgba(2,126,176,.5)}@media screen and (max-width:928px){.FollowButton_root__FxpBi{display:none}}.Description_root__kt4uq{--line-height:26px;position:relative}.Description_root__kt4uq.Description_clamped__PaV_1{padding-bottom:25px}.Description_root__kt4uq.Description_clamped__PaV_1 .Description_wrapper__hYE9_{mask-image:linear-gradient(to bottom,var(--white),transparent);-webkit-mask-image:linear-gradient(to bottom,var(--white),transparent)}.Description_wrapper__hYE9_{min-height:var(--line-height);display:-webkit-box;overflow:hidden;text-overflow:ellipsis;-webkit-box-orient:vertical;-webkit-line-clamp:2}.Description_noClamp__1z7c5,.Description_wrapper__hYE9_.Description_expanded__lRamt{-webkit-line-clamp:unset;-webkit-mask-image:none;mask-image:none}.Description_wrapper__hYE9_.Description_expanded__lRamt{height:auto}.Description_wrapper__hYE9_ p{color:var(--blue-gray-600);font-size:18px;line-height:var(--line-height);white-space:pre-wrap;word-break:break-word}.Description_root__kt4uq button{padding-inline:0}.Description_root__kt4uq .Description_more__ChrRK{position:absolute;padding:0;bottom:0;height:26px}.Description_root__kt4uq .Description_less__BvWbY{display:none}@media screen and (max-width:928px){.Description_root__kt4uq .Description_more__ChrRK{right:0;background-color:#fff}.Description_root__kt4uq.Description_clamped__PaV_1{padding-bottom:0}.Description_root__kt4uq .Description_less__BvWbY,.Description_root__kt4uq .Description_more__ChrRK{display:flex;height:var(--line-height)}}.Description_root__kt4uq .Description_less__BvWbY.Description_hidden__a9QZJ,.Description_root__kt4uq .Description_more__ChrRK.Description_hidden__a9QZJ{display:none}.PillsList_root__2EydN{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.Pill_root__IqOYH{--bg:color-mix(in srgb,var(--celadon-blue-dark),90% transparent);--color:var(--blue-gray-800);height:40px;display:inline-flex;align-items:center;gap:6px;background-color:var(--bg);border-radius:100vmax;color:var(--color);font-size:16px;font-weight:600;padding-inline:16px;transition:color .2s ease-in-out,background-color .2s ease-in-out,filter .2s ease-in-out;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;text-decoration:none;white-space:nowrap}.Pill_root__IqOYH:not(.Pill_selected__VPtHm):hover{filter:brightness(.6)}.Pill_root__IqOYH.Pill_selected__VPtHm{--bg:var(--blue-gray-900);--color:var(--white)}@media screen and (max-width:520px){.Pill_root__IqOYH{height:28px;padding-inline:12px;gap:4px;font-size:12px}.Pill_icon__xE_Cg{--size:18px!important}}.Actions_root__00yIC{display:flex;gap:6px;align-items:baseline;min-height:44px}@media screen and (max-width:928px){.Actions_root__00yIC{min-height:35px}.Actions_root__00yIC .gallery-view-button{padding-inline:0;margin-inline-end:auto}}@media (min-width:929px){.Actions_root__00yIC .fullscreen-button,.Actions_root__00yIC .like-button,.Actions_root__00yIC .more-button,.Actions_root__00yIC .save-button{--size:44px;border:1px solid var(--blue-gray-200)}}button.GalleryViewButton_root__s4Nw4{--size:32px;color:var(--blue-gray-700)}button.GalleryViewButton_root__s4Nw4:hover{background-color:transparent}@media only screen and (min-width:929px){button.GalleryViewButton_root__s4Nw4{display:none}}.Tooltip_root__7FS0Y{background:var(--midnight-green-dark);border-radius:4px;box-shadow:0 .5px 5px rgba(0,0,0,.04),0 4px 11px rgba(0,0,0,.2);color:var(--white);font-weight:400;font-size:12px;line-height:15px;padding:6px 8px;opacity:0;visibility:hidden;animation:Tooltip_show__qVG5k .2s ease-in-out forwards;z-index:var(--popup-index)}.Tooltip_triggerWrapper___S2HG{flex-shrink:0;position:relative;align-items:center;justify-content:center}@keyframes Tooltip_show__qVG5k{to{opacity:1;visibility:visible}}.Tooltip_large__J4Fvl{padding:16px;display:flex;flex-direction:column;background:#fff;color:var(--black)}.SaveLoggedIn_icon__lk74r{color:var(--blue-gray-700)}.SaveOptionsDrawer_drawerTrigger__Gb7nK{box-shadow:none;border:none;border-radius:4px;position:relative;z-index:7}.SaveOptionsDrawer_drawerTrigger__Gb7nK:active,.SaveOptionsDrawer_drawerTrigger__Gb7nK:active:focus,.SaveOptionsDrawer_drawerTrigger__Gb7nK:hover{border:none;box-shadow:none;background-color:transparent}.SaveOptionsDrawer_drawerTrigger__Gb7nK:focus{background:transparent}.SaveOptionsDrawerContent_drawerContent__J5JTL{margin:16px}.SaveOptionsDrawerContent_drawerContent__J5JTL .SaveOptionsDrawerContent_separator__UW5Rz{margin:8px 0}.SaveOptionsDrawerContent_drawerContent__J5JTL .SaveOptionsDrawerContent_itemsContainer__tCXw5{display:flex;flex-direction:column;margin-top:0;max-height:144px;overflow-y:auto}.SaveOptionsDrawerContent_drawerContent__J5JTL .SaveOptionsDrawerContent_drawerActionSecondary__7cq8j{font-weight:400;line-height:24px;padding:0 8px;margin:8px 0;width:100%}.SaveOptionsDrawerContent_drawerContent__J5JTL .SaveOptionsDrawerContent_drawerActionSecondary__7cq8j span{color:var(--blue-gray-800);justify-content:space-between;gap:30px}.SaveOptionsDrawerContent_drawerContent__J5JTL .SaveOptionsDrawerContent_drawerActionPrimary____QuR span{gap:14px}.SaveOptionsDrawerContent_drawerContent__J5JTL .SaveOptionsDrawerContent_drawerActionPrimary____QuR{color:var(--blue-gray-800);display:flex;font-weight:400;line-height:24px;align-items:center;justify-content:flex-start;padding:8px 4px;margin:14px 0}.SaveOptionsDrawerContent_drawerContent__J5JTL .SaveOptionsDrawerContent_drawerActionPrimary____QuR.SaveOptionsDrawerContent_newListButton__VzhfD{font-size:16px;font-weight:600}.SaveOptionsDrawerContent_drawerContent__J5JTL .SaveOptionsDrawerContent_addIcon__Wb2cq{color:var(--blue-gray-800)}.SaveOptionsDrawerContent_drawerContent__J5JTL .SaveOptionsDrawerContent_drawerActionSecondary__7cq8j span.SaveOptionsDrawerContent_clampLines__zfkfI{display:inline-block;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap;width:calc(100vw - 115px)}.SaveOptionsDrawerContent_drawerContent__J5JTL .SaveOptionsDrawerContent_listIcon__5dcfC{color:var(--blue-gray-900)}.SaveOptionsDrawerContent_drawerContent__J5JTL .SaveOptionsDrawerContent_noSavedLists__cpUBY{color:var(--blue-gray-600);font-weight:400;font-size:16px;line-height:24px;padding:12px 16px;text-align:center}.Separator_root__70Ime{--orientationMargin:0;background-color:var(--blue-gray-200);flex-shrink:0}.Separator_horizontal__czVEa{width:calc(100% - var(--orientationMargin) * 2);height:1px}.Separator_vertical__JYCCK{width:1px;height:calc(100% - var(--orientationMargin) * 2)}.SaveLoggedOut_icon__ny9X2{color:var(--blue-gray-700)}.MoreDropdownButton_root__ciXL6{width:100%;padding:0 16px}.MoreDropdownButton_list__VI5Ah{list-style-type:none;padding:0;margin:0}.MoreDropdownButton_item__t4HmI{margin:8px 0}.MoreDropdownButton_actionButton__gJ41E{color:var(--black);display:flex;align-items:center;font-size:16px;height:48px;gap:12px}.MoreDropdownButton_actionButton__gJ41E:focus{outline:none}.MoreDropdownButton_drawerHeading__chh4X{margin:24px 0;display:flex;align-items:center}.MoreDropdownButton_moreOptionsIcon__TpJLA{color:var(--blue-gray-700)}.MoreDropdownButton_icon__DxfY4{color:var(--blue-gray-800)}.MoreDropdownButton_tooltip__az4od{white-space:nowrap}.MoreDropdownButton_trigger__x7wGs{width:44px;height:44px;border-radius:4px}@media (max-width:928px){.MoreDropdownButton_trigger__x7wGs{width:32px;height:32px}}.ReportForm_root__REyLj{display:grid;grid-gap:12px;gap:12px;font-size:1rem;color:var(--blue-gray-800)}.ReportForm_root__REyLj label,.ReportForm_row__dXO5W{display:flex;align-items:center;gap:12px}.ReportForm_root__REyLj label{gap:8px}.ReportForm_root__REyLj label:has(input[type=radio]:checked){font-weight:600;color:var(--blue-gray-900)}.ReportForm_root__REyLj input[type=radio]{accent-color:var(--celadon-blue)}.ReportForm_root__REyLj select{width:100%;display:block;height:40px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:url('data:image/svg+xml;utf8,<svg fill="lightgray" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24px" height="24px"><path d="M7 10l5 5 5-5z"/></svg>') no-repeat right 8px center;border:1px solid var(--blue-gray-300);border-radius:4px;color:var(--blue-gray-600);font-size:1rem;padding-block:4px;padding-inline:16px;margin-block-start:8px}.ReportForm_root__REyLj select.changed{background-image:url('data:image/svg+xml;utf8,<svg fill="lightgray" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24px" height="24px"><path d="M7 10l5 5 5-5z"/></svg>');color:var(--blue-gray-900)}.ReportForm_root__REyLj a{color:var(--celadon-blue);font-weight:600;text-decoration:none}.ReportForm_root__REyLj p{color:var(--blue-gray-700)}.ReportForm_actions__LPSXn{display:flex;gap:12px;justify-content:flex-end;margin-block-start:8px}.ReportForm_copyrightPolicy__z8QMf{display:unset}.ReportForm_info__2Xs_1{max-width:200px;padding-inline:16px;padding-block:20px}.ReportForm_error__bC3zN{display:flex;align-items:center;gap:8px;border-radius:8px;background-color:#f2dede;color:var(--blue-gray-800);padding-inline:16px;padding-block:12px;margin-block-end:16px}.Modal_root__TYkzh[open]{transform:translateY(0)}.Modal_root__TYkzh{--max-height:calc(100dvb - var(--header-height));--title-size:80px;width:-moz-max-content;width:max-content;max-height:var(--max-height);place-self:center;border-radius:var(--border-radius);transform:translateY(8px)}@starting-style{.Modal_root__TYkzh[open]{transform:translateY(8px)}}.Modal_root__TYkzh.Modal_small__hupRE{width:400px}.Modal_root__TYkzh.Modal_medium__j8NOV{width:600px}.Modal_root__TYkzh.Modal_large__ygVmr{width:800px}.Modal_root__TYkzh.Modal_xlarge__HeXWk{width:960px}.Modal_wrapper__4UTGq{position:relative;display:grid}.Modal_wrapper__4UTGq .modal-content{flex:1 1;max-height:calc(var(--max-height) - var(--title-size));overflow:clip auto}@media screen and (max-width:520px){.Modal_root__TYkzh,.Modal_root__TYkzh.Modal_large__ygVmr,.Modal_root__TYkzh.Modal_medium__j8NOV,.Modal_root__TYkzh.Modal_small__hupRE,.Modal_root__TYkzh.Modal_xlarge__HeXWk{width:100vw}}@media screen and (max-width:928px){.Modal_root__TYkzh.Modal_bottomPlacement__BUbfp{width:100vw;top:unset;bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0}}.Modal_title__xhSfl{height:var(--title-size);display:flex;align-items:center;color:var(--blue-gray-900);font-size:20px;font-weight:600;border-bottom:1px solid var(--blue-gray-200);padding-inline-start:20px;padding-inline-end:60px}.Modal_title__xhSfl:first-letter{text-transform:capitalize}.Modal_content__R1F4d{padding-inline:20px;padding-block:24px}.Modal_root__TYkzh:has(.Modal_actions__t63hZ) .Modal_content__R1F4d{padding-block-end:96px}.Modal_actions__t63hZ{position:absolute;inset-inline:0;bottom:0;display:flex;align-items:center;justify-content:flex-end;gap:24px;background-color:var(--white);padding-inline:20px;padding-block:16px}.MetadataToolbar_root__c03ao{--shadow-opacity:0;position:sticky;display:grid;height:var(--metadata-toolbar-height);background-color:var(--white);z-index:var(--header-index)}.MetadataToolbar_wrapper__r7XEc{position:relative;display:grid;grid-template-columns:minmax(0,1fr) max-content 1fr;align-items:center;padding-inline-end:20px;padding-block:16px}.MetadataToolbar_underline__QQn0C{grid-column:1/-1;grid-row:2;height:1px;position:absolute;bottom:0;right:-20px;left:-30vw;background-color:var(--blue-gray-200);box-shadow:0 2px 4px 0 rgba(0 0 0/var(--shadow-opacity));animation:MetadataToolbar_reveal-shadow__5yBxP linear both;animation-timeline:scroll(block);animation-range:150px 450px}.MetadataToolbar_title__jfTWv{font-size:18px;font-weight:600}.MetadataToolbar_actions__FB33C{width:-moz-max-content;width:max-content;justify-self:flex-end;align-self:flex-start;display:flex;grid-column-end:-1}.MetadataToolbar_pageNumber__i6Bhj{display:inline-flex;align-items:center;margin-inline:1em;height:44px}@media screen and (max-width:928px){.MetadataToolbar_root__c03ao{display:none}}@keyframes MetadataToolbar_reveal-shadow__5yBxP{to{--shadow-opacity:0.122}}.DownloadButton_root__adY00{margin-left:auto;display:inline-grid;gap:6px;justify-items:center;flex-shrink:0;text-align:center}.DownloadButton_savedStyling__k18od{font-weight:600;font-size:18px}.DownloadMultipleFormatDrawer_root__CWFxX{width:100%;padding:0 24px}.DownloadMultipleFormatDrawer_drawerHeading__8LnFw{margin:16px 0}.DownloadMultipleFormatDrawer_drawerContent__y815X{width:100%;padding:24px 0}.DownloadMultipleFormatDrawer_drawerRadioButtons__I_lQ4 label{margin-bottom:20px}.DownloadMultipleFormatDrawer_drawerRadioButtons__I_lQ4{margin-bottom:4px}.Fieldset_root__L2NQU{display:grid;padding:0;border:0}.Fieldset_root__L2NQU legend{display:none}.DownloadMultipleFormatPopover_popoverContent__IJudF{min-width:185px}.PopoverMenuContent_root__MsRtR{background:var(--white);box-shadow:0 .5px 5px rgba(0,0,0,.04),0 4px 11px rgba(0,0,0,.2);border-radius:4px;opacity:0;visibility:hidden;transition:opacity .2s ease-in-out,visibility .2s ease-in-out;z-index:1000}.PopoverMenuContent_root__MsRtR.PopoverMenuContent_visible__O86I_{opacity:1;visibility:visible;transition-delay:0s}.PopoverMenuItem_item__iazpP{width:100%;display:flex;align-items:center;background-color:transparent;color:inherit;cursor:pointer;font-size:inherit;line-height:24px;padding:12px 16px;white-space:nowrap}.PopoverMenuItem_item__iazpP.PopoverMenuItem_highlight__inbqK,.PopoverMenuItem_item__iazpP:hover{background-color:var(--blue-gray-100)}.PopoverMenuSeparator_separator__UpSGw{width:calc(100% - 32px);height:1px;background-color:var(--blue-gray-300);margin:8px 16px}.Player_root__L1AmF{position:relative;min-width:0;background-color:var(--snow-gray);padding:20px}.Player_root__L1AmF.Player_isInfographic__iQpvH{background-color:unset;padding-inline-start:1px;padding-inline-end:20px}@media (max-width:928px){.Player_root__L1AmF,.Player_root__L1AmF.Player_isInfographic__iQpvH{background-color:unset;padding-inline:2px}}.VerticalPlayer_root__K8_YS{position:relative;display:grid;grid-template-columns:minmax(0,1fr);grid-gap:24px;gap:24px}@media screen and (max-width:928px){.VerticalPlayer_root__K8_YS{gap:8px}}.VerticalSlide_root__jU_9r{position:relative}.VerticalSlide_root__jU_9r .vertical-slide-image{position:absolute;inset:0}.VerticalSlide_root__jU_9r>.save-slide{position:absolute;top:12px;right:12px}@media only screen and (max-width:928px){.VerticalSlide_root__jU_9r .save-slide-button{--size:32px;background-color:var(--blue-gray-100)}}.VerticalSlideImage_root__64KSA{position:relative;width:100%;height:100%;box-shadow:0 0 0 1px var(--blue-gray-200);border-radius:8px;overflow:clip}.VerticalSlideImage_image__VtE4p{-o-object-fit:contain;object-fit:contain;opacity:0;transition:opacity .3s var(--ease)}.VerticalSlideImage_image__VtE4p.VerticalSlideImage_loaded__Q7FLb{opacity:1}.VerticalSlideActions_root__azvaH{display:flex;flex-direction:column;gap:12px;position:absolute;top:12px;right:12px;bottom:12px;opacity:1;transition:opacity .3s ease-in .1s;z-index:1}@starting-style{.VerticalSlideActions_root__azvaH{opacity:0}}button.VerticalSlideActions_downloadButton__ancDu{border-radius:4px;color:var(--blue-gray-700);background-color:var(--blue-gray-100)}button.VerticalSlideActions_fullscreen__5CkK_{background-color:var(--blue-gray-100);color:var(--blue-gray-700);margin-block-start:auto}@media (max-width:928px){.VerticalSlideActions_root__azvaH>div:first-child{display:none}}.SaveSlide_root__k6Uis{color:var(--blue-gray-700)}.SaveSlide_root__k6Uis button.SaveSlide_button__w0PF7{background-color:var(--blue-gray-100);font-size:18px;line-height:24px;color:var(--blue-gray-700);padding:0 8px;min-width:32px;transition:min-width .2s ease-in-out}.FreestarVideoAd_root__KDWgl{min-width:0;flex-shrink:0;aspect-ratio:16/9}.SlideRecs_root__likA5{--card-hover-background:var(--blue-gray-200);display:flex;flex-direction:column;gap:20px}.SlideRecs_root__likA5 h2{font-size:24px;font-weight:600}@media (max-width:1050px){.SlideRecs_root__likA5{display:none}}.SlideRecs_root__likA5 .SlideRecs_cards__Lbxtt{display:grid;grid-gap:16px;gap:16px}.SlideRecs_root__likA5 .SlideRecs_card__txc2D{position:relative;grid-template-columns:180px 1fr;grid-template-rows:auto;gap:16px}.SlideRecs_root__likA5 .slideshow-thumbnail{box-shadow:0 0 0 1px var(--blue-gray-200)}.SlideRecs_root__likA5 .slideshow-card-content{padding-block:0;padding-inline-end:36px;gap:8px}.SlideRecs_root__likA5 .slideshow-title{line-height:1;margin-block-end:0}.SlideRecs_root__likA5 .SlideRecs_wrapper__21j_w{display:flex;gap:8px;align-items:center}.SlideRecs_root__likA5 .SlideRecs_wrapper__21j_w a,.SlideRecs_root__likA5 .SlideRecs_wrapper__21j_w span{font-size:12px}.SlideRecs_root__likA5 .SlideRecs_save__RR8dD{position:absolute;top:8px;right:8px}.SlideRecs_root__likA5 .SlideRecs_author__zlhWO{color:var(--blue-gray-700);font-weight:600;text-decoration:none;z-index:2}.SlideRecs_root__likA5 .SlideRecs_author__zlhWO:first-letter{text-transform:uppercase}.SlideRecs_root__likA5 .SlideRecs_card__txc2D .slideshow-title{font-size:16px}.SlideRecs_root__likA5 .SlideRecs_description__0bGsx{color:var(--blue-gray-700);font-size:14px;display:-webkit-box;overflow:hidden;line-clamp:1;-webkit-line-clamp:1;-webkit-box-orient:vertical}.SlideRecs_root__likA5 .SlideRecs_dot__Db7HR{font-size:16px}.SlideRecs_root__likA5 .SlideRecs_tags__RCA1q{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.SlideRecs_root__likA5 .SlideRecs_tags__RCA1q span{display:grid;place-content:center;height:20px;background-color:var(--alice-blue-600);border-radius:100vmax;color:var(--blue-gray-700);font-size:11px;font-weight:600;padding-inline:12px;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap;text-transform:capitalize;z-index:2}.SlideshowCard_root__pD8t4{position:relative;display:grid;grid-template-rows:max-content minmax(0,1fr);grid-template-columns:minmax(0,1fr);align-content:flex-start;color:var(--blue-gray-600)}.SlideshowCard_root__pD8t4:hover .SlideshowCard_thumb__86aJk{scale:1.02}.SlideshowCard_content__xh7kV{display:grid;padding:16px 0;grid-template-columns:1fr 32px;grid-template-rows:auto;grid-row-gap:4px;row-gap:4px}.SlideshowCard_content__xh7kV .slideshow-right-side{grid-column-start:2;grid-row-start:1;grid-row-end:span 3}.SlideshowCard_content__xh7kV .slideshow-author,.SlideshowCard_content__xh7kV .slideshow-stats,.SlideshowCard_content__xh7kV .slideshow-title,.SlideshowCard_content__xh7kV .slideshow-type{grid-column-start:1}.SlideshowCard_content__xh7kV .slideshow-author,.SlideshowCard_content__xh7kV .slideshow-stats{margin-block-start:auto}.SlideshowCardLink_root__p8KI7{position:absolute;inset:0;z-index:1;margin:4px}.Thumbnail_root__qLW0K{--ease:cubic-bezier(0.2,0,0,1);position:relative;background-color:var(--blue-gray-100);border:1px solid var(--blue-gray-100);border-radius:8px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);scale:1;transition:scale .2s var(--ease);overflow:hidden}.Thumbnail_thumb__UXO3a{--reveal-delay:calc(30ms * var(--index));position:absolute;inset:0;width:100%;height:100%;opacity:0;transition:opacity .3s var(--ease);transition-delay:var(--reveal-delay)}.Thumbnail_loaded__XOJ5p{opacity:1}.Thumbnail_blur__opK6A{filter:blur(8px)}.Thumbnail_cover__1zsIi{-o-object-fit:cover;object-fit:cover}.Thumbnail_contain__K6M0d{-o-object-fit:contain;object-fit:contain}.SlideshowTitle_root__2VccW{display:-webkit-box;color:var(--blue-gray-900);font-size:18px;font-weight:600;line-height:1.2;margin-bottom:8px;white-space:break-spaces;word-break:break-word;-webkit-box-orient:vertical}.RecSaveButton_icon__btwCp{color:var(--blue-gray-700);z-index:2}.SlideshowStats_root__EQOR1{display:flex;align-items:center;gap:6px}.SlideshowStats_text___WD7l{color:var(--blue-gray-600)}.SlideshowAuthor_root__IkT1_{color:var(--celadon-blue);font-weight:600;text-decoration:underline;-webkit-text-decoration-color:transparent;text-decoration-color:transparent;text-decoration-thickness:1.5px;text-underline-offset:2px;transition:-webkit-text-decoration-color .2s ease-out;transition:text-decoration-color .2s ease-out;transition:text-decoration-color .2s ease-out,-webkit-text-decoration-color .2s ease-out;z-index:2}.SlideshowAuthor_root__IkT1_:hover{-webkit-text-decoration-color:var(--celadon-blue);text-decoration-color:var(--celadon-blue)}.CountTag_root__y1hE1,.SplitDot_root__lTZDc{color:var(--blue-gray-600);font-weight:400}.VerticalInterstitialAdWrapper_root__LxQh8{container-type:inline-size;position:relative;display:grid;min-height:280px;overflow-x:clip}.VerticalInterstitialAdWrapper_root__LxQh8:has(.interstitial-ad-container.has-fetched):not(:has(.interstitial-ad-container.has-fetched .freestar-ad-container:not(.unfilled))){display:none}.VerticalInterstitialAdWrapper_root__LxQh8:has(div.interstitial-ad-container.has-fetched div.freestar-ad-container.filled div),.VerticalInterstitialAdWrapper_root__LxQh8:has(div.interstitial-ad-container.has-fetched div.freestar-ad-container.unfilled iframe){display:grid!important}.VerticalInterstitial_root__Dunl7{display:none}@container (max-width: 480px){.VerticalInterstitial_root__Dunl7{display:block;justify-self:center;align-self:center}}.FreestarAdContainer_root__qPPC_{position:relative;display:grid;place-content:center}.FreestarAdContainer_root__qPPC_.FreestarAdContainer_withFallback__A4lgm{aspect-ratio:var(--fallback-aspect-ratio)}.FreestarAdContainer_fallback__WreT9{position:absolute;inset:0;grid-template-columns:unset;place-content:center}.AdFallback_root__uAXsl{display:grid;justify-items:center;grid-template-columns:1fr;z-index:0}.MultipleIncontentSmall_root__x58Hs{display:none;grid-template-columns:repeat(auto-fit,minmax(max-content,300px));place-content:center;gap:16px}@container (min-width: 616px) and (max-width: 688px){.MultipleIncontentSmall_root__x58Hs{display:grid}}.MultipleIncontentWide_root__4WD8U{display:none;place-content:center}@container (min-width: 480px) and (max-width: 616px){.MultipleIncontentWide_root__4WD8U{display:grid}}.MultipleIncontentLarge_root__pGIAn{display:none;grid-template-columns:repeat(auto-fit,minmax(max-content,336px));place-content:center;gap:16px}@container (min-width: 688px){.MultipleIncontentLarge_root__pGIAn{display:grid}}.BelowReaderAd_root__NKeGg{margin-top:16px;margin-bottom:60px}.BelowReaderAd_root__NKeGg.BelowReaderAd_desktop__7_JN7{display:block;justify-items:flex-start}.BelowReaderAd_root__NKeGg.BelowReaderAd_mobile__08T3d{display:none}.BelowReaderAd_root__NKeGg .fallback-ad{justify-self:flex-start}@media screen and (max-width:928px){.BelowReaderAd_root__NKeGg.BelowReaderAd_desktop__7_JN7{display:none}.BelowReaderAd_root__NKeGg.BelowReaderAd_mobile__08T3d{display:block;justify-items:center}}.Sidebar_root__1BbNu{width:var(--sidebar-size);max-height:100dvh;overflow:clip scroll;position:sticky;top:var(--metadata-toolbar-offset,0);display:flex;flex-direction:column;padding-inline-start:28px;padding-block-start:32px;padding-block-end:430px}.Sidebar_root__1BbNu.Sidebar_withSidebarAds__0w0dT{max-height:unset;overflow:unset;position:static;top:unset;display:grid;grid-template-rows:repeat(var(--slots),1fr);padding-inline:28px}@media (max-width:1050px){.Sidebar_root__1BbNu,.Sidebar_root__1BbNu.Sidebar_withSidebarAds__0w0dT{display:none}}.AboveRecsAd_root__iTmTR{min-height:280px;margin-block-end:32px}.AboveRecsAd_root__iTmTR .freestar-ad-container{place-content:flex-start}@media (max-width:1050px){.AboveRecsAd_root__iTmTR .freestar-ad-container{place-content:center}}.AboveRecsAd_mobileAd__LYgqf{display:none}.AboveRecsAd_desktopAd__ymykj{display:block}@media (max-width:1050px){.AboveRecsAd_mobileAd__LYgqf{display:block}.AboveRecsAd_desktopAd__ymykj{display:none}}.RailRecommendations_root__zqtZQ{display:flex;flex-direction:column;gap:8px;padding-block-end:24px}.RailRecommendations_title__kt1D2{font-size:24px;color:var(--blue-gray-900);font-weight:600;margin-block-end:20px}.RailCard_root__rZUGY{--card-hover-background:var(--blue-gray-100);width:100%;position:relative;padding-block:12px}.RailCard_root__rZUGY.slideshow-card{grid-template-columns:160px minmax(0,1fr);grid-template-rows:auto;gap:12px}.RailCard_root__rZUGY .slideshow-card-content{padding:0}.RailCard_link__d3BBm{z-index:1}.RailCard_root__rZUGY .RailCard_title__Tvfiv{font-size:16px}.RailCard_stats__ZvZms .text{font-size:12px}.RailCard_root__rZUGY .RailCard_author__JYeYZ{color:var(--blue-gray-700);text-decoration:none}@media screen and (min-width:929px){.RailCard_root__rZUGY:hover{background-color:var(--blue-gray-100)}}.RelatedContent_root__29Np1{background-color:var(--blue-gray-100);border-top:1px solid var(--blue-gray-200);border-bottom:1px solid var(--blue-gray-200);padding-block:32px;position:relative}.RelatedContent_wrapper__riU7l{display:grid;grid-template-columns:minmax(0,1fr);grid-gap:32px;gap:32px;max-width:var(--max-content-width);margin-inline:auto}.RelatedContent_title__QUhpL{text-align:center;font-size:32px;font-weight:700}@media screen and (max-width:520px){.RelatedContent_wrapper__riU7l{padding-inline:16px}}.BottomRecommendation_root__7aU9w{display:grid;grid-gap:4px;gap:4px;padding-inline:24px}.BottomRecommendation_title__SRj68{font-size:22px;font-weight:600}.BottomRecommendation_count__4HpLo{font-size:16px;font-weight:400}@media screen and (max-width:520px){.BottomRecommendation_root__7aU9w{padding-inline:0}}.BottomRecommendationContent_root__2qm4_{display:grid}.BottomRecommendationContent_hidden__CUlxl{display:none}.BottomRecommendationContent_root__2qm4_ .mobile-recs{display:grid}.BottomRecommendationContent_root__2qm4_ .desktop-recs{display:none}@media screen and (min-width:520px){.BottomRecommendationContent_root__2qm4_ .mobile-recs{display:none}.BottomRecommendationContent_root__2qm4_ .desktop-recs{display:flex}}.Slider_root__c0Jo8{position:relative;display:grid}.Slider_scroller__KHjw4{display:flex;gap:20px;overflow:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;max-inline-size:100%;min-block-size:100%;touch-action:pan-x;-ms-overflow-style:none;scrollbar-width:none}.Slider_scroller__KHjw4::-webkit-scrollbar{display:none}.Slider_scroller__KHjw4>*{flex-grow:1;flex-shrink:0;scroll-snap-align:start}.Slider_scroller__KHjw4>:last-child{scroll-snap-align:end}.Slider_arrow__8LCca{display:grid;place-content:center;width:36px;height:36px;position:absolute;top:50%;background:var(--white);border:1px solid var(--blue-gray-200);border-radius:100vmax;box-shadow:0 2px 4px 0 rgba(0,0,0,.25);color:var(--blue-gray-800);padding:0;opacity:1;visibility:visible;pointer-events:all;transition:opacity .2s ease-in-out,visibility .2s ease-in-out;transition-delay:0s;cursor:pointer;z-index:1}.Slider_prev__YMssa{left:0;translate:-50% -50%}.Slider_next__fa9IO{right:0;translate:50% -50%}.Slider_hidden__rs7nK{opacity:0;visibility:hidden;pointer-events:none}.BottomRecommendationCard_root__gffTk{inline-size:clamp(220px,12.63rem + 3.45vw,260px);position:relative;background-color:none}.BottomRecommendationCard_root__gffTk .slideshow-thumbnail{border:1px solid var(--blue-gray-200)}.ScribdRecommendation_root__t3ezS{display:grid;grid-gap:16px;gap:16px;padding:0 24px}.ScribdRecommendation_header__Jw_M1{display:grid;grid-template-columns:1fr max-content}.ScribdRecommendation_title__JZ5p7{font-size:22px;font-weight:600}.ScribdRecommendation_link__4DVQz{align-self:end;grid-column:2;grid-row:1/span 2;color:var(--celadon-blue-dark)}.ScribdRecommendation_link__4DVQz:hover{color:var(--celadon-blue)}.ScribdRecommendationCard_root__ef2Y_{--rec-bg-1:#f1e3e3;--rec-bg-2:#f6f4e3;--rec-bg-3:#e1eaec;--rec-bg-4:#efebef;--rec-bg-5:#f1f0f0;--rec-bg-6:#f4eadb;--rec-bg-7:#eaeee7;--rec-bg-8:#e3e8ef;--rec-bg-9:#f1eee6;max-width:172px;position:relative;height:100%;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:max-content minmax(0,1fr);align-content:flex-start;background-color:var(--white);border:1px solid var(--blue-gray-200);box-shadow:none;transition:box-shadow .2s ease-in-out;text-decoration:none}.ScribdRecommendationCard_root__ef2Y_:hover{box-shadow:0 2px 10px rgba(0,0,0,.1)}.ScribdRecommendationCard_thumb__5VVNh{position:relative;display:flex;background-color:var(--blue-gray-200);margin-block-start:24px;margin-inline:20px}.ScribdRecommendationCard_root__ef2Y_:before{position:absolute;inset:0;aspect-ratio:19/16;content:"";background-color:var(--block-color)}.ScribdRecommendationCard_thumb__5VVNh img{--reveal-delay:calc(30ms * var(--card-index));aspect-ratio:inherit;box-shadow:0 4px 6px rgba(0,0,0,.2);-o-object-fit:cover;object-fit:cover;opacity:0;visibility:hidden;transition:opacity .3s var(--ease);transition-delay:var(--reveal-delay)}.ScribdRecommendationCard_loaded__FTN_f img{opacity:1;visibility:visible}.ScribdRecommendationCard_content__ObcvL{display:flex;flex-direction:column;padding-block:20px;padding-inline:16px}.ScribdRecommendationCard_content__ObcvL .rating{padding-block-start:8px;margin-block-start:auto}@media (max-width:928px){.ScribdRecommendationCard_content__ObcvL .rating{flex-direction:column;align-items:flex-start}}.Rating_root__fgZQJ{display:flex;align-items:center;-moz-column-gap:6px;column-gap:6px;white-space:nowrap}.Rating_root__fgZQJ :first-child{color:#e47b01;font-size:16px;line-height:1}.Rating_root__fgZQJ :last-child{color:var(--blue-gray-600);font-size:14px;letter-spacing:-.25px}.Transcript_root__Vrf6Q{width:100%;max-width:var(--max-content-width);display:grid;grid-gap:8px;gap:8px;padding:32px 16px;margin-inline:auto;position:relative;background:#fff}.Transcript_title__YgAka{display:flex;align-items:center;gap:4px;font-weight:300;word-break:break-word}.Transcript_list__faItj{list-style-type:none;padding-inline-start:0;word-break:break-word}.Transcript_link__MLbGS{color:var(--celadon-blue);font-weight:700;line-height:22px;text-decoration:none;cursor:pointer}.EditorsNotes_root__3PcDF{padding:32px 16px;margin:0 auto}.EditorsNotes_heading__XR9E6{font-weight:700;font-size:22px}.EditorsNotes_list__NcG5Y{padding-left:30px;font-size:18px;font-style:italic;color:var(--blue-gray-600)}.EditorsNotes_item__ebBbj{word-break:break-word}@media screen and (min-width:1696px){.EditorsNotes_root__3PcDF{max-width:1688px}}.ActionsMenu_root__4k507{display:flex;gap:12px;align-items:center;justify-content:flex-start;min-height:44px;position:sticky;bottom:0;z-index:var(--sticky-index);height:var(--actions-menu-height);padding:0 15px;background-color:#fff;box-shadow:0 1.85px 6.25px 0 #00000030}.ActionsMenu_root__4k507 .ActionsMenu_downloadButton__s7Iqj{justify-self:flex-end}@media (min-width:929px){.ActionsMenu_root__4k507{display:none}}.LikeModal_more__R9uAk{justify-self:center;color:var(--celadon-blue);font-weight:500;opacity:0;visibility:hidden;transition:opacity .2s ease-in-out,visibility .2s ease-in-out}.LikeModal_more__R9uAk.LikeModal_visible__t1vr4{opacity:1;visibility:visible;transition-delay:0s}.LikesUserList_root__RMFUk{list-style:none;padding:0 0 16px;margin:0}.LikesUserList_root__RMFUk>li{display:grid}.LikesUserList_root__RMFUk>li:last-child .LikesUserList_link__NeMA0{border-bottom:none}.LikesUserList_link__NeMA0{display:grid;grid-template-columns:repeat(2,max-content) 1fr;grid-template-rows:repeat(2,min-content);grid-template-areas:"avatar username summary" "avatar title title";grid-column-gap:12px;-moz-column-gap:12px;column-gap:12px;grid-row-gap:0;row-gap:0;border-bottom:1px solid var(--blue-gray-200);padding:8px 0;text-decoration:none}.LikesUserList_avatar__VRXz2{grid-area:avatar}.LikesUserList_username__c84om{grid-area:username}.LikesUserList_summary___gbSG{grid-area:summary}.LikesUserList_title__UF0V6{grid-area:title}.ViewModal_content__GPKXy{padding-block:0}.ViewModal_row__xLxnz{display:flex;justify-content:space-between;border-bottom:1px dashed var(--blue-gray-300);color:var(--blue-gray-800);padding:16px 0}.ViewModal_row__xLxnz:last-child{border-bottom:none}.ConfirmRemoveSavedModal_description__2EAEu{color:var(--blue-gray-800);font-weight:400;font-size:16px;line-height:20px;padding:24px 0}div.SaveToNewListModal_input__Fi90k{max-width:unset;margin-bottom:24px}.SaveToNewListModal_checkboxWrapper__y_w0m .SaveToNewListModal_checkboxLabel__lMiU9:hover,.SaveToNewListModal_checkboxWrapper__y_w0m:hover .SaveToNewListModal_checkboxLabel__lMiU9,.SaveToNewListModal_checkboxWrapper__y_w0m:hover .SaveToNewListModal_input__Fi90k{color:var(--blue-gray-800)}.SaveToNewListModal_checkboxWrapper__y_w0m .SaveToNewListModal_checkboxLabel__lMiU9{color:var(--blue-gray-800);font-weight:400;font-size:14px;flex-direction:column;display:flex;line-height:18px}.SaveToNewListModal_imageContainer__Dx4nD{display:flex;flex-direction:column;justify-content:center;align-items:center;width:178px;margin:0 auto 24px}.SaveToNewListModal_imageContainer__Dx4nD img{height:100px}.SaveToNewListModal_errorContainer__FBZPH{margin:16px 0}dialog.FullscreenModal_root__efM9m[open]{animation:none;opacity:1;scale:1}dialog.FullscreenModal_root__efM9m{--max-height:100dvh;width:100dvw;height:100dvh;border-radius:0;opacity:0;scale:.96}dialog.FullscreenModal_root__efM9m .FullscreenModal_content__bQ6mt{width:100svw;height:100svh;display:grid;padding:0;max-height:100svh}@starting-style{dialog.FullscreenModal_root__efM9m[open]{opacity:0;scale:.96}} /*# sourceMappingURL=f2d403b314115c89.css.map*/</style></head><body><noscript><iframe title="gtm-noscript" src="https://www.googletagmanager.com/ns.html?id=GTM-M36RG8PT" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript><div id="__next"><div class="__variable_4d9a39 __className_4d9a39" style="overflow:clip"><div class="PageProgressBar_root__1y_Q3"><div class="PageProgressBar_bar__Kyoem" style="transform:scaleX(0)"></div></div><div data-freestar-ad="__320x50 __1140x90" id="slideshare_pushdown-pushdown-cls" style="height:var(--pushdown-height)"></div><header class="Header_root__8A86O"><div class="Header_wrapper___zBfP"><button aria-label="Open navigation menu" class="Hamburger_root__tHlgC" data-cy="mobile-header-menu" type="button"><span class="Icon_root__AjZyv" style="--size:24px"><span class="Icon_icon__4zzsG" style="mask-image:url(https://public.slidesharecdn.com/_next/static/media/hamburger.5a525941.svg);background-color:currentColor"></span><span class="sr-only"></span></span></button><dialog id=":R9am:" class="drawer Drawer_root__ob4ZM" data-placement="left"><div class="Drawer_content__ye6ZB"></div><button autofocus="" type="button" aria-label="Close" class="close-button CloseButton_root__JCTRm" data-cy="drawer-close-button"><span class="Icon_root__AjZyv" style="--size:24px"><span class="Icon_icon__4zzsG" style="mask-image:url(https://public.slidesharecdn.com/_next/static/media/close.393923c4.svg);background-color:currentColor"></span><span class="sr-only"></span></span></button></dialog><a aria-label="SlideShare a Scribd company logo" class="Logo_root__Qba3h" data-cy="slideshare-logo" title="Return to the homepage" href="https://www.slideshare.net/"><img alt="SlideShare a Scribd company logo" loading="lazy" width="120" height="30" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://public.slidesharecdn.com/images/next/svg/logo/slideshare-scribd-company.svg?w=128&q=75 1x, https://public.slidesharecdn.com/images/next/svg/logo/slideshare-scribd-company.svg?w=256&q=75 2x" src="https://public.slidesharecdn.com/images/next/svg/logo/slideshare-scribd-company.svg?w=256&q=75"/></a></div><div class="SearchForm_root__usp4s"><form data-testid="search-form" role="search"><input name="searchfrom" type="hidden" value="header"/><input type="text" autoComplete="off" aria-label="Search SlideShare" id="nav-search-query" data-cy="search-field" name="q" placeholder="Search" value=""/><button type="submit" class="SearchForm_submit__U8kPR" id="search-submit" data-cy="search-submit"><span class="Icon_root__AjZyv" style="--size:24px"><span class="Icon_icon__4zzsG" style="mask-image:url(https://public.slidesharecdn.com/_next/static/media/search.844a289d.svg);background-color:currentColor"></span><span class="sr-only">Submit Search</span></span></button></form></div><div class="HeaderActions_root__11_ai undefined"></div></header><div class="SlideshowScreen_root__k9j1_ SlideshowScreen_withKeyMoments__RbHLe"><!--$--><div class="metadata Metadata_root__oCstk" data-cy="metadata"><h1 class="Heading_heading__3MAvZ Heading_h1__3k7S2 title Title_root__svkHQ">Lambda-less Stream Processing @Scale in LinkedIn </h1><div class="stats Stats_root__p_BoZ Stats_extendedMetadata__wb62p"><div class="Stats_leftContent__588PR"><time dateTime="2016-07-11 18:27:28 UTC"><span class="skeleton Skeleton_root__U4QqL Skeleton_rounded__BLBq2" style="width:75px;height:24px"></span></time><span class="Text_root__is73U Text_medium__rk8Tn text" style="-webkit-line-clamp:0">•</span><span class="Text_root__is73U Text_medium__rk8Tn text" style="-webkit-line-clamp:0">Download as PPTX, PDF</span><span class="Text_root__is73U Text_medium__rk8Tn Stats_formatTypesBullet__xDv0L text" style="-webkit-line-clamp:0">•</span></div><div class="Stats_rightContent__8d0AF"><span class="Text_root__is73U Text_weight-strong__yEO2S Text_secondary__EPWj0 Text_medium__rk8Tn Likes_root__WVQ1_ text" style="-webkit-line-clamp:0" tabindex="0">4 likes</span><span class="Text_root__is73U Text_medium__rk8Tn text" style="-webkit-line-clamp:0">•</span><span class="Text_root__is73U Text_weight-strong__yEO2S Text_secondary__EPWj0 Text_medium__rk8Tn Likes_root__WVQ1_ text" style="-webkit-line-clamp:0" tabindex="0">2,429<!-- --> <!-- -->views</span></div></div><div class="author Author_root___6Bx5"><div class="Avatar_root__GNWHY" style="width:24px;height:24px;line-height:24px"><img class="Avatar_image__Bbtll" src="https://cdn.slidesharecdn.com/profile-photo-HadoopSummit-48x48.jpg?cb=1596126793" alt="DataWorks Summit/Hadoop Summit" loading="lazy" decoding="sync"/></div><a class="Link_root__vn3ab Author_link___lVxw ellipsis Link_primary__Iq4CI Link_size-large__W0PAv Link_weight-regular__yPpnB" data-cy="author-link" title="DataWorks Summit/Hadoop Summit" href="https://www.slideshare.net/HadoopSummit">DataWorks Summit/Hadoop Summit</a><button type="button" class="FollowButton_root__FxpBi Author_follow__Lw4TS FollowButton_follow__d_6u5">Follow</button></div><div class="description Description_root__kt4uq Description_clamped__PaV_1"><div class="Description_wrapper__hYE9_" data-cy="document-description"><p>Lambda-less Stream Processing @Scale in LinkedIn The document discusses challenges with stream processing including data accuracy and reprocessing. It proposes a "lambda-less" approach using windowed computations and handling late and out-of-order events to produce eventually correct results. Samza is used in LinkedIn's implementation to store streaming data locally using RocksDB for processing within configurable windows. The approach avoids code duplication compared to traditional lambda architectures while still supporting reprocessing through resetting offsets. Challenges remain in merging online and reprocessed results at large scale.<button type="button" class="Button_root__i1yp0 Button_primary__K25Gq Button_text__ZT_3O Button_small__sqsEx Description_less__BvWbY Description_hidden__a9QZJ" data-testid="button" aria-label="Read less"><span>Read less</span></button></p></div><button type="button" class="Button_root__i1yp0 Button_primary__K25Gq Button_text__ZT_3O Button_small__sqsEx Description_more__ChrRK" data-testid="button" aria-label="Read more" data-cy="read-more-button"><span>Read more</span></button></div><div class="actions Actions_root__00yIC"><div class="Tooltip_triggerWrapper___S2HG"><button type="button" class="Button_root__i1yp0 Button_secondary__hHiHI Button_text__ZT_3O Button_small__sqsEx Button_icon__1C4qi like-button unliked" data-testid="button" aria-label="Like" data-favorited="false" data-cy="like-button"><span class="Icon_root__AjZyv" style="--size:24px"><span class="Icon_icon__4zzsG" style="mask-image:url(https://public.slidesharecdn.com/_next/static/media/like.3870b074.svg);background-color:#424766"></span><span class="sr-only"></span></span></button></div><div class="Tooltip_triggerWrapper___S2HG"><button type="button" class="Button_root__i1yp0 Button_secondary__hHiHI Button_text__ZT_3O Button_small__sqsEx Button_icon__1C4qi save-button" data-testid="button" aria-label="actions.save" data-saved="false" data-cy="loggedout-save-slideshow-button"><span class="Icon_root__AjZyv SaveLoggedOut_icon__ny9X2" style="--size:24px"><span class="Icon_icon__4zzsG" style="mask-image:url(https://public.slidesharecdn.com/_next/static/media/save.ef1812e2.svg);background-color:currentColor"></span><span class="sr-only"></span></span></button></div><button type="button" class="unstyled-button more-button MoreDropdownButton_trigger__x7wGs" aria-label="More options" data-cy="more-options-icon" data-testid="ellipsis"><div class="Tooltip_triggerWrapper___S2HG"><span class="Icon_root__AjZyv MoreDropdownButton_moreOptionsIcon__TpJLA" style="--size:24px"><span class="Icon_icon__4zzsG" style="mask-image:url(https://public.slidesharecdn.com/_next/static/media/more-horizontal.f69be1b8.svg);background-color:currentColor"></span><span class="sr-only"></span></span></div></button></div></div><div class="MetadataToolbar_root__c03ao metadata-toolbar" data-cy="slideshow-toolbar"><div class="MetadataToolbar_wrapper__r7XEc"><div class="actions Actions_root__00yIC"><div class="Tooltip_triggerWrapper___S2HG"><button type="button" class="Button_root__i1yp0 Button_secondary__hHiHI Button_text__ZT_3O Button_small__sqsEx Button_icon__1C4qi like-button unliked" data-testid="button" aria-label="Like" data-favorited="false" data-cy="like-button"><span class="Icon_root__AjZyv" style="--size:24px"><span class="Icon_icon__4zzsG" style="mask-image:url(https://public.slidesharecdn.com/_next/static/media/like.3870b074.svg);background-color:#424766"></span><span class="sr-only"></span></span></button></div><div class="Tooltip_triggerWrapper___S2HG"><button type="button" class="Button_root__i1yp0 Button_secondary__hHiHI Button_text__ZT_3O Button_small__sqsEx Button_icon__1C4qi save-button" data-testid="button" aria-label="actions.save" data-saved="false" data-cy="loggedout-save-slideshow-button"><span class="Icon_root__AjZyv SaveLoggedOut_icon__ny9X2" style="--size:24px"><span class="Icon_icon__4zzsG" style="mask-image:url(https://public.slidesharecdn.com/_next/static/media/save.ef1812e2.svg);background-color:currentColor"></span><span class="sr-only"></span></span></button></div><button type="button" class="unstyled-button more-button MoreDropdownButton_trigger__x7wGs" aria-label="More options" data-cy="more-options-icon" data-testid="ellipsis"><div class="Tooltip_triggerWrapper___S2HG"><span class="Icon_root__AjZyv MoreDropdownButton_moreOptionsIcon__TpJLA" style="--size:24px"><span class="Icon_icon__4zzsG" style="mask-image:url(https://public.slidesharecdn.com/_next/static/media/more-horizontal.f69be1b8.svg);background-color:currentColor"></span><span class="sr-only"></span></span></div></button></div><span data-cy="page-number" class="MetadataToolbar_pageNumber__i6Bhj">1<!-- --> <!-- -->of<!-- --> <!-- -->38</span><div class="MetadataToolbar_actions__FB33C"><div class="DownloadButton_root__adY00"><div><button type="button" class="Button_root__i1yp0 Button_primary__K25Gq Button_contained__gyjai Button_large__Yv_oe" data-testid="download-button" role="button" id=":R3h936:-trigger" tabindex="0" aria-haspopup="listbox" aria-controls=":R3h936:" data-cy="download-button-toolbar" label="Download now" aria-label="Download now"><span><span class="Icon_root__AjZyv" style="--size:24px"><span class="Icon_icon__4zzsG" style="mask-image:url(https://public.slidesharecdn.com/_next/static/media/download.b1b2622c.svg);background-color:currentColor"></span><span class="sr-only"></span></span>Download now</span></button><span class="Text_root__is73U Text_secondary__EPWj0 Text_xsmall__vYp9p text" style="-webkit-line-clamp:0">Downloaded 133 times</span></div><span class="sr-only" aria-live="polite"></span></div></div><div class="MetadataToolbar_underline__QQn0C"></div></div></div><!--/$--><!--$--><!--/$--><div class="player Player_root__L1AmF"><div id="new-player" class="vertical-player VerticalPlayer_root__K8_YS" data-slideshow-id="63921306"><div><div id="slide1" class="VerticalSlide_root__jU_9r slide-item" style="aspect-ratio:720 / 405" data-cy="slide-container"><div class="VerticalSlideImage_root__64KSA"><img id="slide-image-0" alt="Lambda-less Stream Processing @Scale in LinkedIn Yi Pan (Apache Samza PMC/Committer) Kartik Paramasivam (Mgr -Streams Infra) June, 2016 " class="vertical-slide-image VerticalSlideImage_image__VtE4p" data-testid="vertical-slide-image" loading="eager" srcSet="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-1-320.jpg 320w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-1-638.jpg 638w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/75/Lambda-less-Stream-Processing-Scale-in-LinkedIn-1-2048.jpg 2048w" src="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-1-320.jpg" sizes="100vw"/></div><!--$--><!--/$--></div></div><div><div id="slide2" class="VerticalSlide_root__jU_9r slide-item" style="aspect-ratio:720 / 405" data-cy="slide-container"><div class="VerticalSlideImage_root__64KSA"><img id="slide-image-1" alt="Agenda • Rise of Stream Processing Applications • Some Hard Problems in Stream Processing –Data Accuracy –Reprocessing • Conclusion " class="vertical-slide-image VerticalSlideImage_image__VtE4p" data-testid="vertical-slide-image" loading="lazy" srcSet="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-2-320.jpg 320w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-2-638.jpg 638w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/75/Lambda-less-Stream-Processing-Scale-in-LinkedIn-2-2048.jpg 2048w" src="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-2-320.jpg" sizes="100vw"/></div><!--$--><!--/$--></div></div><div><div id="slide3" class="VerticalSlide_root__jU_9r slide-item" style="aspect-ratio:720 / 405" data-cy="slide-container"><div class="VerticalSlideImage_root__64KSA"><img id="slide-image-2" alt="Newsfeed " class="vertical-slide-image VerticalSlideImage_image__VtE4p" data-testid="vertical-slide-image" loading="lazy" srcSet="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-3-320.jpg 320w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-3-638.jpg 638w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/75/Lambda-less-Stream-Processing-Scale-in-LinkedIn-3-2048.jpg 2048w" src="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-3-320.jpg" sizes="100vw"/></div><!--$--><!--/$--></div></div><div><div id="slide4" class="VerticalSlide_root__jU_9r slide-item" style="aspect-ratio:720 / 405" data-cy="slide-container"><div class="VerticalSlideImage_root__64KSA"><img id="slide-image-3" alt="Cyber-security " class="vertical-slide-image VerticalSlideImage_image__VtE4p" data-testid="vertical-slide-image" loading="lazy" srcSet="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-4-320.jpg 320w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-4-638.jpg 638w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/75/Lambda-less-Stream-Processing-Scale-in-LinkedIn-4-2048.jpg 2048w" src="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-4-320.jpg" sizes="100vw"/></div><!--$--><!--/$--></div></div><div><div id="slide5" class="VerticalSlide_root__jU_9r slide-item" style="aspect-ratio:720 / 405" data-cy="slide-container"><div class="VerticalSlideImage_root__64KSA"><img id="slide-image-4" alt="Internet of Things " class="vertical-slide-image VerticalSlideImage_image__VtE4p" data-testid="vertical-slide-image" loading="lazy" srcSet="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-5-320.jpg 320w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-5-638.jpg 638w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/75/Lambda-less-Stream-Processing-Scale-in-LinkedIn-5-2048.jpg 2048w" src="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-5-320.jpg" sizes="100vw"/></div><!--$--><!--/$--></div></div><div><div id="slide6" class="VerticalSlide_root__jU_9r slide-item" style="aspect-ratio:720 / 405" data-cy="slide-container"><div class="VerticalSlideImage_root__64KSA"><img id="slide-image-5" alt="Agenda • Rise of Stream Processing Applications • Some Hard Problems in Stream Processing –Data Accuracy –Reprocessing • Conclusion " class="vertical-slide-image VerticalSlideImage_image__VtE4p" data-testid="vertical-slide-image" loading="lazy" srcSet="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-6-320.jpg 320w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-6-638.jpg 638w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/75/Lambda-less-Stream-Processing-Scale-in-LinkedIn-6-2048.jpg 2048w" src="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-6-320.jpg" sizes="100vw"/></div><!--$--><!--/$--></div></div><div><div id="slide7" class="VerticalSlide_root__jU_9r slide-item" style="aspect-ratio:720 / 405" data-cy="slide-container"><div class="VerticalSlideImage_root__64KSA"><img id="slide-image-6" alt="Data Accuracy • Can Stream Processing generate accurate results? –Yes.. but it is not trivial. " class="vertical-slide-image VerticalSlideImage_image__VtE4p" data-testid="vertical-slide-image" loading="lazy" srcSet="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-7-320.jpg 320w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-7-638.jpg 638w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/75/Lambda-less-Stream-Processing-Scale-in-LinkedIn-7-2048.jpg 2048w" src="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-7-320.jpg" sizes="100vw"/></div><!--$--><!--/$--></div></div><div><div id="slide8" class="VerticalSlide_root__jU_9r slide-item" style="aspect-ratio:720 / 405" data-cy="slide-container"><div class="VerticalSlideImage_root__64KSA"><img id="slide-image-7" alt="Case Study Ads HTML 1:00pm AdViewEvents AdQuality processor " class="vertical-slide-image VerticalSlideImage_image__VtE4p" data-testid="vertical-slide-image" loading="lazy" srcSet="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-8-320.jpg 320w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-8-638.jpg 638w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/75/Lambda-less-Stream-Processing-Scale-in-LinkedIn-8-2048.jpg 2048w" src="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-8-320.jpg" sizes="100vw"/></div><!--$--><!--/$--></div></div><div><div id="slide9" class="VerticalSlide_root__jU_9r slide-item" style="aspect-ratio:720 / 405" data-cy="slide-container"><div class="VerticalSlideImage_root__64KSA"><img id="slide-image-8" alt="Case Study Ads HTML 1:01pm AdViewEvents AdQuality processor AdClickEvents " class="vertical-slide-image VerticalSlideImage_image__VtE4p" data-testid="vertical-slide-image" loading="lazy" srcSet="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-9-320.jpg 320w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-9-638.jpg 638w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/75/Lambda-less-Stream-Processing-Scale-in-LinkedIn-9-2048.jpg 2048w" src="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-9-320.jpg" sizes="100vw"/></div><!--$--><!--/$--></div></div><div><div id="slide10" class="VerticalSlide_root__jU_9r slide-item" style="aspect-ratio:720 / 405" data-cy="slide-container"><div class="VerticalSlideImage_root__64KSA"><img id="slide-image-9" alt="Case Study Ads HTML 1:01pm AdViewEvents AdQuality processor AdClickEvents Did AdClick happen within 2min of AdView? YesNo Good AdBad Ad " class="vertical-slide-image VerticalSlideImage_image__VtE4p" data-testid="vertical-slide-image" loading="lazy" srcSet="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-10-320.jpg 320w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-10-638.jpg 638w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/75/Lambda-less-Stream-Processing-Scale-in-LinkedIn-10-2048.jpg 2048w" src="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-10-320.jpg" sizes="100vw"/></div><!--$--><!--/$--></div></div><div><div id="slide11" class="VerticalSlide_root__jU_9r slide-item" style="aspect-ratio:720 / 405" data-cy="slide-container"><div class="VerticalSlideImage_root__64KSA"><img id="slide-image-10" alt="Delays in Event Stream Ad Quality Processor (Samza) Services Tier Kafka Services Tier Ad Quality Processor (Samza) KafkaMirrored Yi DATACENTER 1 DATACENTER 2 AdViewEvent LB " class="vertical-slide-image VerticalSlideImage_image__VtE4p" data-testid="vertical-slide-image" loading="lazy" srcSet="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-11-320.jpg 320w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-11-638.jpg 638w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/75/Lambda-less-Stream-Processing-Scale-in-LinkedIn-11-2048.jpg 2048w" src="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-11-320.jpg" sizes="100vw"/></div><!--$--><!--/$--></div></div><div><div id="slide12" class="VerticalSlide_root__jU_9r slide-item" style="aspect-ratio:720 / 405" data-cy="slide-container"><div class="VerticalSlideImage_root__64KSA"><img id="slide-image-11" alt="Real Time Processing (Samza) Services Tier Kafka Services Tier Real Time Processing (Samza) KafkaMirrored Yi DATACENTER 1 DATACENTER 2 AdClick Event LB Delays in Event Stream Late Arrival " class="vertical-slide-image VerticalSlideImage_image__VtE4p" data-testid="vertical-slide-image" loading="lazy" srcSet="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-12-320.jpg 320w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-12-638.jpg 638w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/75/Lambda-less-Stream-Processing-Scale-in-LinkedIn-12-2048.jpg 2048w" src="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-12-320.jpg" sizes="100vw"/></div><!--$--><!--/$--></div></div><div><div id="slide13" class="VerticalSlide_root__jU_9r slide-item" style="aspect-ratio:720 / 405" data-cy="slide-container"><div class="VerticalSlideImage_root__64KSA"><img id="slide-image-12" alt="Real Time Processing (Samza) Services Tier Kafka Services Tier Real Time Processing (Samza) KafkaMirrored Yi DATACENTER 1 DATACENTER 2 AdClick Event LB Delays in Event stream Out of Order Arrival " class="vertical-slide-image VerticalSlideImage_image__VtE4p" data-testid="vertical-slide-image" loading="lazy" srcSet="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-13-320.jpg 320w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-13-638.jpg 638w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/75/Lambda-less-Stream-Processing-Scale-in-LinkedIn-13-2048.jpg 2048w" src="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-13-320.jpg" sizes="100vw"/></div><!--$--><!--/$--></div></div><div><div id="slide14" class="VerticalSlide_root__jU_9r slide-item" style="aspect-ratio:720 / 405" data-cy="slide-container"><div class="VerticalSlideImage_root__64KSA"><img id="slide-image-13" alt="Lambda at LinkedIn Real Time Processing (Samza) Batch Processing (Hadoop/Spark) Voldem ort R/O Processing Bulk upload Espresso Services Tier Ingestion Serving Clients(browser,devices,..) Kafka " class="vertical-slide-image VerticalSlideImage_image__VtE4p" data-testid="vertical-slide-image" loading="lazy" srcSet="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-14-320.jpg 320w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-14-638.jpg 638w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/75/Lambda-less-Stream-Processing-Scale-in-LinkedIn-14-2048.jpg 2048w" src="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-14-320.jpg" sizes="100vw"/></div><!--$--><!--/$--></div></div><div><div id="slide15" class="VerticalSlide_root__jU_9r slide-item" style="aspect-ratio:720 / 405" data-cy="slide-container"><div class="VerticalSlideImage_root__64KSA"><img id="slide-image-14" alt="• Basic Assumption : Batch jobs have full data- set • But, how about edges? Data Accuracy - with Lambda Smaller batch size == more edges! Graph kudos to Stream Processing 101 from Tyler Akidau (https://www.oreilly.com/ideas/the-world-beyond-batch-streaming-101) 10:00 11:00 12:00 13:00 system time " class="vertical-slide-image VerticalSlideImage_image__VtE4p" data-testid="vertical-slide-image" loading="lazy" srcSet="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-15-320.jpg 320w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-15-638.jpg 638w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/75/Lambda-less-Stream-Processing-Scale-in-LinkedIn-15-2048.jpg 2048w" src="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-15-320.jpg" sizes="100vw"/></div><!--$--><!--/$--></div></div><div><div id="slide16" class="VerticalSlide_root__jU_9r slide-item" style="aspect-ratio:720 / 405" data-cy="slide-container"><div class="VerticalSlideImage_root__64KSA"><img id="slide-image-15" alt="Fixing Lambda Real Time Processing (Samza) Batch Processing (Hadoop/Spark) Voldemort R/O Processing Bulk upload Espresso Services Tier Ingestion Serving Clients(browser,devices, ….) Kafka Kafka Audit Check Safe Start Time " class="vertical-slide-image VerticalSlideImage_image__VtE4p" data-testid="vertical-slide-image" loading="lazy" srcSet="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-16-320.jpg 320w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-16-638.jpg 638w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/75/Lambda-less-Stream-Processing-Scale-in-LinkedIn-16-2048.jpg 2048w" src="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-16-320.jpg" sizes="100vw"/></div><!--$--><!--/$--></div></div><div><div id="slide17" class="VerticalSlide_root__jU_9r slide-item" style="aspect-ratio:720 / 405" data-cy="slide-container"><div class="VerticalSlideImage_root__64KSA"><img id="slide-image-16" alt="Observation • Data Accuracy is still very hard with Lambda –Additional system (e.g. Kafka Audit) has to be used to safely start the batch jobs • Duplication in Online/Offline system: –Development cost –Operational overhead –Maintenance overhead " class="vertical-slide-image VerticalSlideImage_image__VtE4p" data-testid="vertical-slide-image" loading="lazy" srcSet="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-17-320.jpg 320w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-17-638.jpg 638w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/75/Lambda-less-Stream-Processing-Scale-in-LinkedIn-17-2048.jpg 2048w" src="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-17-320.jpg" sizes="100vw"/></div><!--$--><!--/$--></div></div><div><div id="slide18" class="VerticalSlide_root__jU_9r slide-item" style="aspect-ratio:720 / 405" data-cy="slide-container"><div class="VerticalSlideImage_root__64KSA"><img id="slide-image-17" alt="Going Lambda-less • Handle late arrivals and out of order arrivals • Eventually correct results – Compute results at end of ‘window’. – Re-compute when events arrives late • Influenced by “Google MillWheel” " class="vertical-slide-image VerticalSlideImage_image__VtE4p" data-testid="vertical-slide-image" loading="lazy" srcSet="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-18-320.jpg 320w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-18-638.jpg 638w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/75/Lambda-less-Stream-Processing-Scale-in-LinkedIn-18-2048.jpg 2048w" src="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-18-320.jpg" sizes="100vw"/></div><!--$--><!--/$--></div></div><div><div id="slide19" class="VerticalSlide_root__jU_9r slide-item" style="aspect-ratio:720 / 405" data-cy="slide-container"><div class="VerticalSlideImage_root__64KSA"><img id="slide-image-18" alt="Going Lambda-less AdViewEvent AdClickEvent AdQuality processor 1:00pm1:01pm1:01pm1:02pm1:02pm 1:00pm1:02pm Window output is computed at the end of window = (2min after the window is created) window(“1:00pm”, “2min”) Kafka Kafka " class="vertical-slide-image VerticalSlideImage_image__VtE4p" data-testid="vertical-slide-image" loading="lazy" srcSet="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-19-320.jpg 320w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-19-638.jpg 638w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/75/Lambda-less-Stream-Processing-Scale-in-LinkedIn-19-2048.jpg 2048w" src="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-19-320.jpg" sizes="100vw"/></div><!--$--><!--/$--></div></div><div><div id="slide20" class="VerticalSlide_root__jU_9r slide-item" style="aspect-ratio:720 / 405" data-cy="slide-container"><div class="VerticalSlideImage_root__64KSA"><img id="slide-image-19" alt="Handling ‘late arrival’ 1:00pm1:01pm1:01pm1:02pm1:02pm 1:00pm1:02pm 1:01pm Late-arrival Re-compute window(“1:00pm”, “2min”) Kafka Kafka AdViewEvent AdClickEvent AdQuality processor " class="vertical-slide-image VerticalSlideImage_image__VtE4p" data-testid="vertical-slide-image" loading="lazy" srcSet="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-20-320.jpg 320w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-20-638.jpg 638w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/75/Lambda-less-Stream-Processing-Scale-in-LinkedIn-20-2048.jpg 2048w" src="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-20-320.jpg" sizes="100vw"/></div><!--$--><!--/$--></div></div><div><div id="slide21" class="VerticalSlide_root__jU_9r slide-item" style="aspect-ratio:720 / 405" data-cy="slide-container"><div class="VerticalSlideImage_root__64KSA"><img id="slide-image-20" alt="Handling ‘out of order arrival’ 1:01pm1:02pm 1:00pm1:02pm null join result in window(“1:00pm”, “2min”) Kafka Kafka AdViewEvent AdClickEvent AdQuality processor " class="vertical-slide-image VerticalSlideImage_image__VtE4p" data-testid="vertical-slide-image" loading="lazy" srcSet="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-21-320.jpg 320w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-21-638.jpg 638w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/75/Lambda-less-Stream-Processing-Scale-in-LinkedIn-21-2048.jpg 2048w" src="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-21-320.jpg" sizes="100vw"/></div><!--$--><!--/$--></div></div><div><div id="slide22" class="VerticalSlide_root__jU_9r slide-item" style="aspect-ratio:720 / 405" data-cy="slide-container"><div class="VerticalSlideImage_root__64KSA"><img id="slide-image-21" alt="Handling ‘out of order arrival’ 1:01pm1:02pm1:00pm1:01pm 1:00pm1:02pm Re-compute window(“1:00pm”, “2min”) Out-of-order arrival Kafka Kafka AdViewEvent AdClickEvent AdQuality processor " class="vertical-slide-image VerticalSlideImage_image__VtE4p" data-testid="vertical-slide-image" loading="lazy" srcSet="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-22-320.jpg 320w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-22-638.jpg 638w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/75/Lambda-less-Stream-Processing-Scale-in-LinkedIn-22-2048.jpg 2048w" src="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-22-320.jpg" sizes="100vw"/></div><!--$--><!--/$--></div></div><div><div id="slide23" class="VerticalSlide_root__jU_9r slide-item" style="aspect-ratio:720 / 405" data-cy="slide-container"><div class="VerticalSlideImage_root__64KSA"><img id="slide-image-22" alt="SamzaContainer-1 Samza based Solution Kafka AdClicks SamzaContainer-0 Task1 Task2 Task3 AdView Events are saved into RocksDB based local message store which is backed up durably in Kafka Kafka Samza Job Changelog in Kafka " class="vertical-slide-image VerticalSlideImage_image__VtE4p" data-testid="vertical-slide-image" loading="lazy" srcSet="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-23-320.jpg 320w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-23-638.jpg 638w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/75/Lambda-less-Stream-Processing-Scale-in-LinkedIn-23-2048.jpg 2048w" src="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-23-320.jpg" sizes="100vw"/></div><!--$--><!--/$--></div></div><div><div id="slide24" class="VerticalSlide_root__jU_9r slide-item" style="aspect-ratio:720 / 405" data-cy="slide-container"><div class="VerticalSlideImage_root__64KSA"><img id="slide-image-23" alt="SamzaContainer-1 Performance Kafka AdClicks SamzaContainer-0 Task1 Task2 Task3 AdView Performance of Samza’s local RocksDB store: - 1.1 Million TPS (read/write) on single machine (ssd) - Largest production job has 1.5 Terabyte of local state Kafka Samza Job Changelog in Kafka " class="vertical-slide-image VerticalSlideImage_image__VtE4p" data-testid="vertical-slide-image" loading="lazy" srcSet="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-24-320.jpg 320w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-24-638.jpg 638w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/75/Lambda-less-Stream-Processing-Scale-in-LinkedIn-24-2048.jpg 2048w" src="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-24-320.jpg" sizes="100vw"/></div><!--$--><!--/$--></div></div><div><div id="slide25" class="VerticalSlide_root__jU_9r slide-item" style="aspect-ratio:720 / 405" data-cy="slide-container"><div class="VerticalSlideImage_root__64KSA"><img id="slide-image-24" alt="Agenda • Rise of Stream Processing Applications • Some Hard Problems in Stream Processing – Data Accuracy –Reprocessing • Conclusion " class="vertical-slide-image VerticalSlideImage_image__VtE4p" data-testid="vertical-slide-image" loading="lazy" srcSet="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-25-320.jpg 320w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-25-638.jpg 638w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/75/Lambda-less-Stream-Processing-Scale-in-LinkedIn-25-2048.jpg 2048w" src="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-25-320.jpg" sizes="100vw"/></div><!--$--><!--/$--></div></div><div><div id="slide26" class="VerticalSlide_root__jU_9r slide-item" style="aspect-ratio:720 / 405" data-cy="slide-container"><div class="VerticalSlideImage_root__64KSA"><img id="slide-image-25" alt="Reprocessing • What is reprocessing ? –Process events that happened in the past. " class="vertical-slide-image VerticalSlideImage_image__VtE4p" data-testid="vertical-slide-image" loading="lazy" srcSet="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-26-320.jpg 320w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-26-638.jpg 638w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/75/Lambda-less-Stream-Processing-Scale-in-LinkedIn-26-2048.jpg 2048w" src="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-26-320.jpg" sizes="100vw"/></div><!--$--><!--/$--></div></div><div><div id="slide27" class="VerticalSlide_root__jU_9r slide-item" style="aspect-ratio:720 / 405" data-cy="slide-container"><div class="VerticalSlideImage_root__64KSA"><img id="slide-image-26" alt="Case Study : Title Standardization LinkedIn Profile change ‘Title’ : Before: Architect After: Chief Technology Nerd Title Standardizer Search Ads …. " class="vertical-slide-image VerticalSlideImage_image__VtE4p" data-testid="vertical-slide-image" loading="lazy" srcSet="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-27-320.jpg 320w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-27-638.jpg 638w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/75/Lambda-less-Stream-Processing-Scale-in-LinkedIn-27-2048.jpg 2048w" src="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-27-320.jpg" sizes="100vw"/></div><!--$--><!--/$--></div></div><div><div id="slide28" class="VerticalSlide_root__jU_9r slide-item" style="aspect-ratio:720 / 405" data-cy="slide-container"><div class="VerticalSlideImage_root__64KSA"><img id="slide-image-27" alt="Title Standardizer - Implementation output Member Database (espresso) Profile Updates (Samza) Title- Standardizer Machine Learning model Kafka Databus " class="vertical-slide-image VerticalSlideImage_image__VtE4p" data-testid="vertical-slide-image" loading="lazy" srcSet="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-28-320.jpg 320w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-28-638.jpg 638w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/75/Lambda-less-Stream-Processing-Scale-in-LinkedIn-28-2048.jpg 2048w" src="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-28-320.jpg" sizes="100vw"/></div><!--$--><!--/$--></div></div><div><div id="slide29" class="VerticalSlide_root__jU_9r slide-item" style="aspect-ratio:720 / 405" data-cy="slide-container"><div class="VerticalSlideImage_root__64KSA"><img id="slide-image-28" alt="Reprocessing - dealing with bugs output Member Database (espresso) Profile Updates (Samza) Title- Standardizer Kafka Databus rewind 4 hours Machine Learning model " class="vertical-slide-image VerticalSlideImage_image__VtE4p" data-testid="vertical-slide-image" loading="lazy" srcSet="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-29-320.jpg 320w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-29-638.jpg 638w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/75/Lambda-less-Stream-Processing-Scale-in-LinkedIn-29-2048.jpg 2048w" src="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-29-320.jpg" sizes="100vw"/></div><!--$--><!--/$--></div></div><div><div id="slide30" class="VerticalSlide_root__jU_9r slide-item" style="aspect-ratio:720 / 405" data-cy="slide-container"><div class="VerticalSlideImage_root__64KSA"><img id="slide-image-29" alt="Reprocessing - entire Dataset output Member Database (espresso) Profile Updates (Samza) Title- Standardizer Kafka Databus Bootstrap Backup Database Backup (NFS) set offset=0 Machine Learning model (NEW) " class="vertical-slide-image VerticalSlideImage_image__VtE4p" data-testid="vertical-slide-image" loading="lazy" srcSet="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-30-320.jpg 320w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-30-638.jpg 638w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/75/Lambda-less-Stream-Processing-Scale-in-LinkedIn-30-2048.jpg 2048w" src="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-30-320.jpg" sizes="100vw"/></div><!--$--><!--/$--></div></div><div><div id="slide31" class="VerticalSlide_root__jU_9r slide-item" style="aspect-ratio:720 / 405" data-cy="slide-container"><div class="VerticalSlideImage_root__64KSA"><img id="slide-image-30" alt="Reprocessing - entire Dataset Profile Updates (Samza) Title- Standardizer (Samza) Title- Standardizer Bootstrap Backup Machine Learning model (NEW) output Kafka Databus Databus Member Database (espresso) Database Backup (NFS) set offset=0 " class="vertical-slide-image VerticalSlideImage_image__VtE4p" data-testid="vertical-slide-image" loading="lazy" srcSet="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-31-320.jpg 320w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-31-638.jpg 638w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/75/Lambda-less-Stream-Processing-Scale-in-LinkedIn-31-2048.jpg 2048w" src="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-31-320.jpg" sizes="100vw"/></div><!--$--><!--/$--></div></div><div><div id="slide32" class="VerticalSlide_root__jU_9r slide-item" style="aspect-ratio:720 / 405" data-cy="slide-container"><div class="VerticalSlideImage_root__64KSA"><img id="slide-image-31" alt="Reprocessing - entire Dataset Profile Updates (Samza) Title- Standardizer (Samza) Title- Standardizer BootstrapBackup Machine Learning model (NEW) output Kafka Databus Databus (Samza) Merge and Store Results " class="vertical-slide-image VerticalSlideImage_image__VtE4p" data-testid="vertical-slide-image" loading="lazy" srcSet="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-32-320.jpg 320w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-32-638.jpg 638w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/75/Lambda-less-Stream-Processing-Scale-in-LinkedIn-32-2048.jpg 2048w" src="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-32-320.jpg" sizes="100vw"/></div><!--$--><!--/$--></div></div><div><div id="slide33" class="VerticalSlide_root__jU_9r slide-item" style="aspect-ratio:720 / 405" data-cy="slide-container"><div class="VerticalSlideImage_root__64KSA"><img id="slide-image-32" alt="Reprocessing- Caveats • Stream processors are fast.. They can DOS the system if you reprocess – Control max-concurrency of your job – Quotas for Kafka, Databases • Reprocessing a 100 TB source ? –Capacity ? –Saturation of NICs, Top of rack switches " class="vertical-slide-image VerticalSlideImage_image__VtE4p" data-testid="vertical-slide-image" loading="lazy" srcSet="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-33-320.jpg 320w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-33-638.jpg 638w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/75/Lambda-less-Stream-Processing-Scale-in-LinkedIn-33-2048.jpg 2048w" src="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-33-320.jpg" sizes="100vw"/></div><!--$--><!--/$--></div></div><div><div id="slide34" class="VerticalSlide_root__jU_9r slide-item" style="aspect-ratio:720 / 405" data-cy="slide-container"><div class="VerticalSlideImage_root__64KSA"><img id="slide-image-33" alt="Reprocessing larger datasets Profile Updates (Samza) Title- Standardizer Machine Learning model output Kafka Databus (Samza) Merge and Store Results Database Dump in HDFS (Samza) Title- Standardizer ML Model in HDFS Hadoop " class="vertical-slide-image VerticalSlideImage_image__VtE4p" data-testid="vertical-slide-image" loading="lazy" srcSet="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-34-320.jpg 320w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-34-638.jpg 638w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/75/Lambda-less-Stream-Processing-Scale-in-LinkedIn-34-2048.jpg 2048w" src="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-34-320.jpg" sizes="100vw"/></div><!--$--><!--/$--></div></div><div><div id="slide35" class="VerticalSlide_root__jU_9r slide-item" style="aspect-ratio:720 / 405" data-cy="slide-container"><div class="VerticalSlideImage_root__64KSA"><img id="slide-image-34" alt="Experimentation Database Dump in HDFS (Samza) Title- Standardizer Hadoop ML Model in HDFS Output in HDFS ● Offline experimentation before pushing the logic online ○ Most datasets are already available in Hadoop (at LinkedIn) ○ Fast Iteration with minimum impact to production " class="vertical-slide-image VerticalSlideImage_image__VtE4p" data-testid="vertical-slide-image" loading="lazy" srcSet="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-35-320.jpg 320w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-35-638.jpg 638w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/75/Lambda-less-Stream-Processing-Scale-in-LinkedIn-35-2048.jpg 2048w" src="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-35-320.jpg" sizes="100vw"/></div><!--$--><!--/$--></div></div><div><div id="slide36" class="VerticalSlide_root__jU_9r slide-item" style="aspect-ratio:720 / 405" data-cy="slide-container"><div class="VerticalSlideImage_root__64KSA"><img id="slide-image-35" alt="Conclusion 1.It is possible to avoid code duplication(hot/cold path) to support – Accuracy –Reprocessing 2. Some Lambda related problems still linger when reprocessing entire datasets –e.g. merging online/reprocessing results " class="vertical-slide-image VerticalSlideImage_image__VtE4p" data-testid="vertical-slide-image" loading="lazy" srcSet="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-36-320.jpg 320w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-36-638.jpg 638w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/75/Lambda-less-Stream-Processing-Scale-in-LinkedIn-36-2048.jpg 2048w" src="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-36-320.jpg" sizes="100vw"/></div><!--$--><!--/$--></div></div><div><div id="slide37" class="VerticalSlide_root__jU_9r slide-item" style="aspect-ratio:720 / 405" data-cy="slide-container"><div class="VerticalSlideImage_root__64KSA"><img id="slide-image-36" alt="References • MillWheel: http://research.google.com/pubs/pub41378.html • DataFlow: http://research.google.com/pubs/pub41378.html • Samza: http://samza.apache.org/ • Window Operator in Samza: https://issues.apache.org/jira/browse/SAMZA-552 • Lambda Architecture: https://www.manning.com/books/big-data • Stream Processing 101: https://www.oreilly.com/ideas/the-world-beyond-batch- streaming-101 • Stream Processing 102: https://www.oreilly.com/ideas/the-world-beyond-batch- streaming-102 " class="vertical-slide-image VerticalSlideImage_image__VtE4p" data-testid="vertical-slide-image" loading="lazy" srcSet="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-37-320.jpg 320w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-37-638.jpg 638w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/75/Lambda-less-Stream-Processing-Scale-in-LinkedIn-37-2048.jpg 2048w" src="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-37-320.jpg" sizes="100vw"/></div><!--$--><!--/$--></div></div><div><div id="slide38" class="VerticalSlide_root__jU_9r slide-item" style="aspect-ratio:720 / 405" data-cy="slide-container"><div class="VerticalSlideImage_root__64KSA"><img id="slide-image-37" alt="Thank You! " class="vertical-slide-image VerticalSlideImage_image__VtE4p" data-testid="vertical-slide-image" loading="lazy" srcSet="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-38-320.jpg 320w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-38-638.jpg 638w, https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/75/Lambda-less-Stream-Processing-Scale-in-LinkedIn-38-2048.jpg 2048w" src="https://image.slidesharecdn.com/june29500linkedinpanv2-160711182729/85/Lambda-less-Stream-Processing-Scale-in-LinkedIn-38-320.jpg" sizes="100vw"/></div><!--$--><!--/$--></div></div></div></div></div><!--$--><div class="RelatedContent_root__29Np1"><div class="RelatedContent_wrapper__riU7l"><h2 class="Heading_heading__3MAvZ Heading_h2__f9yvs RelatedContent_title__QUhpL">More Related Content</h2><div></div><div></div><div id="between-recs-ad-1-container" class="freestar-ad-container FreestarAdContainer_root__qPPC_" style="--fallback-aspect-ratio:undefined / undefined"><div><div class="" id="between-recs-ad-1"></div></div></div><div></div><div id="between-recs-ad-2-container" class="freestar-ad-container FreestarAdContainer_root__qPPC_" style="--fallback-aspect-ratio:undefined / undefined"><div><div class="" id="between-recs-ad-2"></div></div></div><div></div></div></div><!--/$--><div class="Transcript_root__Vrf6Q"><h2 class="Transcript_title__YgAka"><span class="Icon_root__AjZyv" style="--size:24px"><span class="Icon_icon__4zzsG" style="mask-image:url(https://public.slidesharecdn.com/_next/static/media/file.5db1ba24.svg);background-color:currentColor"></span><span class="sr-only"></span></span>Lambda-less Stream Processing @Scale in LinkedIn </h2><div><ul class="Transcript_list__faItj"><div><li>1. <a class="Transcript_link__MLbGS" href="https://www.slideshare.net/slideshow/lambdaless-stream-processing-scale-in-linkedin/63921306#1">Lambda-less Stream Processing @Scale </a> in LinkedIn Yi Pan (Apache Samza PMC/Committer) Kartik Paramasivam (Mgr -Streams Infra) June, 2016 </li></div><div><li>2. <a class="Transcript_link__MLbGS" href="https://www.slideshare.net/slideshow/lambdaless-stream-processing-scale-in-linkedin/63921306#2">Agenda • Rise of </a> Stream Processing Applications • Some Hard Problems in Stream Processing –Data Accuracy –Reprocessing • Conclusion </li></div><div><li>3. <a class="Transcript_link__MLbGS" href="https://www.slideshare.net/slideshow/lambdaless-stream-processing-scale-in-linkedin/63921306#3">Newsfeed </a></li></div><div><li>4. <a class="Transcript_link__MLbGS" href="https://www.slideshare.net/slideshow/lambdaless-stream-processing-scale-in-linkedin/63921306#4">Cyber-security </a></li></div><div><li>5. <a class="Transcript_link__MLbGS" href="https://www.slideshare.net/slideshow/lambdaless-stream-processing-scale-in-linkedin/63921306#5">Internet of Things </a> </li></div><div><li>6. <a class="Transcript_link__MLbGS" href="https://www.slideshare.net/slideshow/lambdaless-stream-processing-scale-in-linkedin/63921306#6">Agenda • Rise of </a> Stream Processing Applications • Some Hard Problems in Stream Processing –Data Accuracy –Reprocessing • Conclusion </li></div><div><li>7. <a class="Transcript_link__MLbGS" href="https://www.slideshare.net/slideshow/lambdaless-stream-processing-scale-in-linkedin/63921306#7">Data Accuracy • Can </a> Stream Processing generate accurate results? –Yes.. but it is not trivial. </li></div><div><li>8. <a class="Transcript_link__MLbGS" href="https://www.slideshare.net/slideshow/lambdaless-stream-processing-scale-in-linkedin/63921306#8">Case Study Ads HTML 1:00pm AdViewEvents AdQuality processor </a> </li></div><div><li>9. <a class="Transcript_link__MLbGS" href="https://www.slideshare.net/slideshow/lambdaless-stream-processing-scale-in-linkedin/63921306#9">Case Study Ads HTML 1:01pm AdViewEvents AdQuality processor AdClickEvents </a> </li></div><div><li>10. <a class="Transcript_link__MLbGS" href="https://www.slideshare.net/slideshow/lambdaless-stream-processing-scale-in-linkedin/63921306#10">Case Study Ads HTML 1:01pm AdViewEvents AdQuality processor AdClickEvents Did </a> AdClick happen within 2min of AdView? YesNo Good AdBad Ad </li></div><div><li>11. <a class="Transcript_link__MLbGS" href="https://www.slideshare.net/slideshow/lambdaless-stream-processing-scale-in-linkedin/63921306#11">Delays in Event Stream Ad </a> Quality Processor (Samza) Services Tier Kafka Services Tier Ad Quality Processor (Samza) KafkaMirrored Yi DATACENTER 1 DATACENTER 2 AdViewEvent LB </li></div><div><li>12. <a class="Transcript_link__MLbGS" href="https://www.slideshare.net/slideshow/lambdaless-stream-processing-scale-in-linkedin/63921306#12">Real Time Processing (Samza) Services Tier Kafka Services </a> Tier Real Time Processing (Samza) KafkaMirrored Yi DATACENTER 1 DATACENTER 2 AdClick Event LB Delays in Event Stream Late Arrival </li></div><div><li>13. <a class="Transcript_link__MLbGS" href="https://www.slideshare.net/slideshow/lambdaless-stream-processing-scale-in-linkedin/63921306#13">Real Time Processing (Samza) Services Tier Kafka Services </a> Tier Real Time Processing (Samza) KafkaMirrored Yi DATACENTER 1 DATACENTER 2 AdClick Event LB Delays in Event stream Out of Order Arrival </li></div><div><li>14. <a class="Transcript_link__MLbGS" href="https://www.slideshare.net/slideshow/lambdaless-stream-processing-scale-in-linkedin/63921306#14">Lambda at LinkedIn Real Time Processing (Samza) Batch Processing (Hadoop/Spark) Voldem ort </a> R/O Processing Bulk upload Espresso Services Tier Ingestion Serving Clients(browser,devices,..) Kafka </li></div><div><li>15. <a class="Transcript_link__MLbGS" href="https://www.slideshare.net/slideshow/lambdaless-stream-processing-scale-in-linkedin/63921306#15">• Basic Assumption </a> : Batch jobs have full data- set • But, how about edges? Data Accuracy - with Lambda Smaller batch size == more edges! Graph kudos to Stream Processing 101 from Tyler Akidau (https://www.oreilly.com/ideas/the-world-beyond-batch-streaming-101) 10:00 11:00 12:00 13:00 system time </li></div><div><li>16. <a class="Transcript_link__MLbGS" href="https://www.slideshare.net/slideshow/lambdaless-stream-processing-scale-in-linkedin/63921306#16">Fixing Lambda Real Time Processing (Samza) Batch Processing (Hadoop/Spark) Voldemort R/O Processing Bulk upload Espresso Services </a> Tier Ingestion Serving Clients(browser,devices, ….) Kafka Kafka Audit Check Safe Start Time </li></div><div><li>17. <a class="Transcript_link__MLbGS" href="https://www.slideshare.net/slideshow/lambdaless-stream-processing-scale-in-linkedin/63921306#17">Observation • Data Accuracy </a> is still very hard with Lambda –Additional system (e.g. Kafka Audit) has to be used to safely start the batch jobs • Duplication in Online/Offline system: –Development cost –Operational overhead –Maintenance overhead </li></div><div><li>18. <a class="Transcript_link__MLbGS" href="https://www.slideshare.net/slideshow/lambdaless-stream-processing-scale-in-linkedin/63921306#18">Going Lambda-less • Handle </a> late arrivals and out of order arrivals • Eventually correct results – Compute results at end of ‘window’. – Re-compute when events arrives late • Influenced by “Google MillWheel” </li></div><div><li>19. <a class="Transcript_link__MLbGS" href="https://www.slideshare.net/slideshow/lambdaless-stream-processing-scale-in-linkedin/63921306#19">Going Lambda-less AdViewEvent AdClickEvent AdQuality processor 1:00pm1:01pm1:01pm1:02pm1:02pm 1:00pm1:02pm Window </a> output is computed at the end of window = (2min after the window is created) window(“1:00pm”, “2min”) Kafka Kafka </li></div><div><li>20. <a class="Transcript_link__MLbGS" href="https://www.slideshare.net/slideshow/lambdaless-stream-processing-scale-in-linkedin/63921306#20">Handling ‘late arrival’ 1:00pm1:01pm1:01pm1:02pm1:02pm 1:00pm1:02pm 1:01pm Late-arrival Re-compute window(“1:00pm”, </a> “2min”) Kafka Kafka AdViewEvent AdClickEvent AdQuality processor </li></div><div><li>21. <a class="Transcript_link__MLbGS" href="https://www.slideshare.net/slideshow/lambdaless-stream-processing-scale-in-linkedin/63921306#21">Handling ‘out of </a> order arrival’ 1:01pm1:02pm 1:00pm1:02pm null join result in window(“1:00pm”, “2min”) Kafka Kafka AdViewEvent AdClickEvent AdQuality processor </li></div><div><li>22. <a class="Transcript_link__MLbGS" href="https://www.slideshare.net/slideshow/lambdaless-stream-processing-scale-in-linkedin/63921306#22">Handling ‘out of </a> order arrival’ 1:01pm1:02pm1:00pm1:01pm 1:00pm1:02pm Re-compute window(“1:00pm”, “2min”) Out-of-order arrival Kafka Kafka AdViewEvent AdClickEvent AdQuality processor </li></div><div><li>23. <a class="Transcript_link__MLbGS" href="https://www.slideshare.net/slideshow/lambdaless-stream-processing-scale-in-linkedin/63921306#23">SamzaContainer-1 Samza based Solution Kafka AdClicks SamzaContainer-0 Task1 Task2 Task3 AdView Events </a> are saved into RocksDB based local message store which is backed up durably in Kafka Kafka Samza Job Changelog in Kafka </li></div><div><li>24. <a class="Transcript_link__MLbGS" href="https://www.slideshare.net/slideshow/lambdaless-stream-processing-scale-in-linkedin/63921306#24">SamzaContainer-1 Performance Kafka AdClicks SamzaContainer-0 Task1 Task2 Task3 AdView Performance of Samza’s </a> local RocksDB store: - 1.1 Million TPS (read/write) on single machine (ssd) - Largest production job has 1.5 Terabyte of local state Kafka Samza Job Changelog in Kafka </li></div><div><li>25. <a class="Transcript_link__MLbGS" href="https://www.slideshare.net/slideshow/lambdaless-stream-processing-scale-in-linkedin/63921306#25">Agenda • Rise of </a> Stream Processing Applications • Some Hard Problems in Stream Processing – Data Accuracy –Reprocessing • Conclusion </li></div><div><li>26. <a class="Transcript_link__MLbGS" href="https://www.slideshare.net/slideshow/lambdaless-stream-processing-scale-in-linkedin/63921306#26">Reprocessing • What is </a> reprocessing ? –Process events that happened in the past. </li></div><div><li>27. <a class="Transcript_link__MLbGS" href="https://www.slideshare.net/slideshow/lambdaless-stream-processing-scale-in-linkedin/63921306#27">Case Study : </a> Title Standardization LinkedIn Profile change ‘Title’ : Before: Architect After: Chief Technology Nerd Title Standardizer Search Ads …. </li></div><div><li>28. <a class="Transcript_link__MLbGS" href="https://www.slideshare.net/slideshow/lambdaless-stream-processing-scale-in-linkedin/63921306#28">Title Standardizer - Implementation output Member Database (espresso) Profile Updates (Samza) </a> Title- Standardizer Machine Learning model Kafka Databus </li></div><div><li>29. <a class="Transcript_link__MLbGS" href="https://www.slideshare.net/slideshow/lambdaless-stream-processing-scale-in-linkedin/63921306#29">Reprocessing - dealing </a> with bugs output Member Database (espresso) Profile Updates (Samza) Title- Standardizer Kafka Databus rewind 4 hours Machine Learning model </li></div><div><li>30. <a class="Transcript_link__MLbGS" href="https://www.slideshare.net/slideshow/lambdaless-stream-processing-scale-in-linkedin/63921306#30">Reprocessing - entire </a> Dataset output Member Database (espresso) Profile Updates (Samza) Title- Standardizer Kafka Databus Bootstrap Backup Database Backup (NFS) set offset=0 Machine Learning model (NEW) </li></div><div><li>31. <a class="Transcript_link__MLbGS" href="https://www.slideshare.net/slideshow/lambdaless-stream-processing-scale-in-linkedin/63921306#31">Reprocessing - entire </a> Dataset Profile Updates (Samza) Title- Standardizer (Samza) Title- Standardizer Bootstrap Backup Machine Learning model (NEW) output Kafka Databus Databus Member Database (espresso) Database Backup (NFS) set offset=0 </li></div><div><li>32. <a class="Transcript_link__MLbGS" href="https://www.slideshare.net/slideshow/lambdaless-stream-processing-scale-in-linkedin/63921306#32">Reprocessing - entire </a> Dataset Profile Updates (Samza) Title- Standardizer (Samza) Title- Standardizer BootstrapBackup Machine Learning model (NEW) output Kafka Databus Databus (Samza) Merge and Store Results </li></div><div><li>33. <a class="Transcript_link__MLbGS" href="https://www.slideshare.net/slideshow/lambdaless-stream-processing-scale-in-linkedin/63921306#33">Reprocessing- Caveats • Stream </a> processors are fast.. They can DOS the system if you reprocess – Control max-concurrency of your job – Quotas for Kafka, Databases • Reprocessing a 100 TB source ? –Capacity ? –Saturation of NICs, Top of rack switches </li></div><div><li>34. <a class="Transcript_link__MLbGS" href="https://www.slideshare.net/slideshow/lambdaless-stream-processing-scale-in-linkedin/63921306#34">Reprocessing larger datasets Profile Updates (Samza) </a> Title- Standardizer Machine Learning model output Kafka Databus (Samza) Merge and Store Results Database Dump in HDFS (Samza) Title- Standardizer ML Model in HDFS Hadoop </li></div><div><li>35. <a class="Transcript_link__MLbGS" href="https://www.slideshare.net/slideshow/lambdaless-stream-processing-scale-in-linkedin/63921306#35">Experimentation Database Dump in HDFS (Samza) </a> Title- Standardizer Hadoop ML Model in HDFS Output in HDFS ● Offline experimentation before pushing the logic online ○ Most datasets are already available in Hadoop (at LinkedIn) ○ Fast Iteration with minimum impact to production </li></div><div><li>36. <a class="Transcript_link__MLbGS" href="https://www.slideshare.net/slideshow/lambdaless-stream-processing-scale-in-linkedin/63921306#36">Conclusion 1.It is possible </a> to avoid code duplication(hot/cold path) to support – Accuracy –Reprocessing 2. Some Lambda related problems still linger when reprocessing entire datasets –e.g. merging online/reprocessing results </li></div><div><li>37. <a class="Transcript_link__MLbGS" href="https://www.slideshare.net/slideshow/lambdaless-stream-processing-scale-in-linkedin/63921306#37">References • MillWheel: http://research.google.com/pubs/pub41378.html • </a> DataFlow: http://research.google.com/pubs/pub41378.html • Samza: http://samza.apache.org/ • Window Operator in Samza: https://issues.apache.org/jira/browse/SAMZA-552 • Lambda Architecture: https://www.manning.com/books/big-data • Stream Processing 101: https://www.oreilly.com/ideas/the-world-beyond-batch- streaming-101 • Stream Processing 102: https://www.oreilly.com/ideas/the-world-beyond-batch- streaming-102 </li></div><div><li>38. <a class="Transcript_link__MLbGS" href="https://www.slideshare.net/slideshow/lambdaless-stream-processing-scale-in-linkedin/63921306#38">Thank You! </a></li></div></ul></div></div><div class="actions-menu-container ActionsMenu_root__4k507" data-cy="actions-menu-mobile"><div class="Tooltip_triggerWrapper___S2HG"><button type="button" class="Button_root__i1yp0 Button_secondary__hHiHI Button_text__ZT_3O Button_small__sqsEx Button_icon__1C4qi save-button" data-testid="button" aria-label="actions.save" data-saved="false" data-cy="loggedout-save-slideshow-button"><span class="Icon_root__AjZyv SaveLoggedOut_icon__ny9X2" style="--size:24px"><span class="Icon_icon__4zzsG" style="mask-image:url(https://public.slidesharecdn.com/_next/static/media/save.ef1812e2.svg);background-color:currentColor"></span><span class="sr-only"></span></span></button></div><button type="button" class="unstyled-button more-button MoreDropdownButton_trigger__x7wGs" aria-label="More options" data-cy="more-options-icon" data-testid="ellipsis"><div class="Tooltip_triggerWrapper___S2HG"><span class="Icon_root__AjZyv MoreDropdownButton_moreOptionsIcon__TpJLA" style="--size:24px"><span class="Icon_icon__4zzsG" style="mask-image:url(https://public.slidesharecdn.com/_next/static/media/more-horizontal.f69be1b8.svg);background-color:currentColor"></span><span class="sr-only"></span></span></div></button><div class="DownloadButton_root__adY00 ActionsMenu_downloadButton__s7Iqj"><div><button type="button" class="Button_root__i1yp0 Button_primary__K25Gq Button_contained__gyjai Button_large__Yv_oe" data-testid="download-button" role="button" id=":R4j36:-trigger" tabindex="0" aria-haspopup="listbox" aria-controls=":R4j36:" data-cy="download-button-actions-menu" label="Download" aria-label="Download"><span><span class="Icon_root__AjZyv" style="--size:24px"><span class="Icon_icon__4zzsG" style="mask-image:url(https://public.slidesharecdn.com/_next/static/media/download.b1b2622c.svg);background-color:currentColor"></span><span class="sr-only"></span></span>Download</span></button></div><span class="sr-only" aria-live="polite"></span></div></div><dialog class="Modal_root__TYkzh FullscreenModal_root__efM9m" id=":Rn36:"><div class="Modal_wrapper__4UTGq"><div class="modal-content Modal_content__R1F4d FullscreenModal_content__bQ6mt"></div></div></dialog><div class="ad textads banner-ads banner_ads ad-unit ad-zone ad-space adsbox ads prebid" style="position:absolute;height:1px"></div><footer class="Footer_footer__N3WmV"><div class="FooterTop_wrapper__RuYz5" data-testid="footer-top"><div class="FooterTop_links__9J65v"><a class="Link_root__vn3ab Link_light__mcUPh Link_size-medium__ZLo12 Link_weight-bold__me4nt" href="/about">About</a><a class="Link_root__vn3ab Link_light__mcUPh Link_size-medium__ZLo12 Link_weight-bold__me4nt" href="https://support.scribd.com/hc/en/categories/360004792932-SlideShare?userType=SlideShare">Support</a><a class="Link_root__vn3ab Link_light__mcUPh Link_size-medium__ZLo12 Link_weight-bold__me4nt" href="https://support.scribd.com/hc/en/articles/210129326-General-Terms-of-Use">Terms</a><a class="Link_root__vn3ab Link_light__mcUPh Link_size-medium__ZLo12 Link_weight-bold__me4nt" href="https://support.scribd.com/hc/en/articles/210129366-Privacy-policy">Privacy</a><a class="Link_root__vn3ab Link_light__mcUPh Link_size-medium__ZLo12 Link_weight-bold__me4nt" href="/copyright-policy">Copyright</a><button class="FooterTop_cookiePreferenceButton__xmSox" type="button">Cookie Preferences</button><a class="Link_root__vn3ab Link_light__mcUPh Link_size-medium__ZLo12 Link_weight-bold__me4nt" href="https://support.scribd.com/hc/en-us/articles/360038016931-Privacy-Rights-Request-Form">Do not sell or share my personal information</a><a class="Link_root__vn3ab Link_light__mcUPh Link_size-medium__ZLo12 Link_weight-bold__me4nt" href="https://www.everand.com">Everand</a></div></div><hr class="Footer_separator__Qa1tj"/><div class="FooterBottom_wrapper__Gj9p_" data-testid="footer-bottom"><span class="FooterBottom_copyright__xltkG">© 2024 SlideShare from Scribd </span><div class="FooterBottom_icons__wEEhc"><a class="Link_root__vn3ab Link_light__mcUPh Link_size-large__W0PAv Link_weight-regular__yPpnB" aria-label="Slideshare on Twitter" href="https://twitter.com/slideshare"><span class="Icon_root__AjZyv" style="--size:18px"><span class="Icon_icon__4zzsG" style="mask-image:url(https://public.slidesharecdn.com/_next/static/media/twitter.89a06630.svg);background-color:currentColor"></span><span class="sr-only"></span></span></a><span class="FooterBottom_separator__181dN"></span><a class="Link_root__vn3ab Link_light__mcUPh Link_size-large__W0PAv Link_weight-regular__yPpnB" aria-label="Slideshare on RSS Feed" href="https://www.slideshare.net/rss/latest"><span class="Icon_root__AjZyv" style="--size:16px"><span class="Icon_icon__4zzsG" style="mask-image:url(https://public.slidesharecdn.com/_next/static/media/rss.5c914539.svg);background-color:currentColor"></span><span class="sr-only"></span></span></a></div></div></footer><div id="portals-container" style="z-index:1"><div id="banner-portal" class="PortalsContainer_bannerRoot__Q_sNw"></div></div></div></div><script src="https://cmp.osano.com/AzZdHGSGtpxCq1Cpt/079b27eb-bb3f-48dd-9bd9-3feb8aec3c38/osano.js"></script><script> // This script assumes the Osano script is synchronously loaded window.eventsToSend = window.eventsToSend || [] if (window.Osano) { window.eventsToSend.push({ name: "osano_loaded", timestamp: new Date().toISOString(), value: JSON.stringify({ time: performance?.now() }) }) } </script><script defer="" nomodule="" src="https://public.slidesharecdn.com/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="https://public.slidesharecdn.com/_next/static/chunks/webpack-fca657b2df1193b1.js" defer=""></script><script src="https://public.slidesharecdn.com/_next/static/chunks/framework-0dfcca9a5dec51b3.js" defer=""></script><script src="https://public.slidesharecdn.com/_next/static/chunks/main-4b9e5138f827276f.js" defer=""></script><script src="https://public.slidesharecdn.com/_next/static/chunks/pages/_app-16b66ceb98aedb85.js" defer=""></script><script src="https://public.slidesharecdn.com/_next/static/chunks/5121-c12bfd4bed7c2139.js" defer=""></script><script src="https://public.slidesharecdn.com/_next/static/chunks/5581-c31338dd77890eb2.js" defer=""></script><script src="https://public.slidesharecdn.com/_next/static/chunks/4740-639dc16ecd764905.js" defer=""></script><script src="https://public.slidesharecdn.com/_next/static/chunks/6229-805fdfedcd38ba3e.js" defer=""></script><script src="https://public.slidesharecdn.com/_next/static/chunks/pages/slideshow/%5Btitle%5D/%5Bid%5D-451dcf877ad69f2b.js" defer=""></script><script src="https://public.slidesharecdn.com/_next/static/45a83e178683d1e132a983d100835d187a679f69/_buildManifest.js" defer=""></script><script src="https://public.slidesharecdn.com/_next/static/45a83e178683d1e132a983d100835d187a679f69/_ssgManifest.js" defer=""></script><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"name":"slideshow","edgeTestAssignments":[{"name":"example","variant":"A"},{"name":"fullscreen_view","variant":"C"},{"name":"gallery_view","variant":"B"},{"name":"nextjs_profile","variant":"B"},{"name":"reading_modes","variant":"A"},{"name":"recs_placement","variant":"A"},{"name":"recs_placement_v2","variant":"A"},{"name":"single_slide_view_v2","variant":"A"}],"layout":{"currentUser":null,"fullPath":"https://www.slideshare.net/slideshow/lambdaless-stream-processing-scale-in-linkedin/63921306","osanoId":"079b27eb-bb3f-48dd-9bd9-3feb8aec3c38","featureFlags":[{"name":"disable_facebook","enabled":true},{"name":"document_interstitials_flag","enabled":true},{"name":"recommendation_impression_tracking","enabled":true},{"name":"search_results_tracking","enabled":true},{"name":"view_restriction_without_subscription_after_five","enabled":true},{"name":"disable_lazy_hydration","enabled":false}]},"countryCodeFromFastly":"HK","slideshow":{"username":"HadoopSummit","allowDownloads":true,"allowDownloadOriginalFile":true,"allowEmbeds":true,"canonicalUrl":"https://www.slideshare.net/slideshow/lambdaless-stream-processing-scale-in-linkedin/63921306","categories":[{"id":"16","name":"Technology","url":"technology"}],"createdAt":"2016-07-11 18:27:28 UTC","description":"Lambda-less Stream Processing @Scale in LinkedIn\n\nThe document discusses challenges with stream processing including data accuracy and reprocessing. It proposes a \"lambda-less\" approach using windowed computations and handling late and out-of-order events to produce eventually correct results. Samza is used in LinkedIn's implementation to store streaming data locally using RocksDB for processing within configurable windows. The approach avoids code duplication compared to traditional lambda architectures while still supporting reprocessing through resetting offsets. Challenges remain in merging online and reprocessed results at large scale.","downloadKey":"f98675bdcc28e1ad88a3b6c251736859aac5d82841b2f5a50d9672ad619e5eb0","editorsNotes":[],"emailShareUrl":"mailto:?subject=Check out this SlideShare presentation\u0026body=https://www.slideshare.net/slideshow/lambdaless-stream-processing-scale-in-linkedin/63921306","extension":"pptx","facebookShareUrl":"https://facebook.com/sharer.php?u=https%3A%2F%2Fwww.slideshare.net%2Fslideshow%2Flambdaless-stream-processing-scale-in-linkedin%2F63921306\u0026t=Lambda-less+Stream+Processing+%40Scale+in+LinkedIn+","genaiDescriptionCreatedAt":"2024-04-22","genaiTest":"description","id":"63921306","iframeEmbed":{"url":"https://www.slideshare.net/slideshow/embed_code/key/BDYu4G7x5RFheV","height":486,"width":597},"isIndexable":true,"isLikedByCurrentUser":false,"isPrivate":false,"isSeoTitleTestVariant":false,"isViewable":true,"language":"en","likes":4,"linkedinShareUrl":"https://www.linkedin.com/cws/share?url=https%3A%2F%2Fwww.slideshare.net%2Fslideshow%2Flambdaless-stream-processing-scale-in-linkedin%2F63921306\u0026trk=SLIDESHARE","downloadCount":133,"recommendationsByLocation":{"rightRail":[{"algorithmId":"2","displayTitle":"What's new in SQL on Hadoop and Beyond","isSavedByCurrentUser":false,"pageCount":25,"score":0.6856,"slideshowId":"63920556","sourceName":"ss_similarity","strippedTitle":"whats-new-in-sql-on-hadoop-and-beyond","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/june29550teradatabajda-pawlikowskiv2-160711180913-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"Presto is an open source distributed SQL query engine that allows interactive analysis of data across multiple data stores. At Facebook, Presto is used for ad-hoc queries of their Hadoop data warehouse, which processes trillions of rows and scans petabytes of data daily. Presto's low latency also makes it suitable for powering analytics in user-facing products. New features of Presto include improved SQL support, performance optimizations, and connectors to additional data sources like Redis and MongoDB.","tags":["hadoop summit"],"url":"https://www.slideshare.net/slideshow/whats-new-in-sql-on-hadoop-and-beyond/63920556","userLogin":"HadoopSummit","userName":"DataWorks Summit/Hadoop Summit","viewCount":711},{"algorithmId":"2","displayTitle":"Big Data Day LA 2016/ Use Case Driven track - Hydrator: Open Source, Code-Fre...","isSavedByCurrentUser":false,"pageCount":21,"score":0.6511,"slideshowId":"64951269","sourceName":"ss_similarity","strippedTitle":"big-data-day-la-2016-use-case-driven-track-hydrator-open-source-codefree-data-pipelines-jon-gray-ceo-cask-data","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/h61zbhsgrc2am274hst0-signature-cd258da1f9f37c1fdbc454765d5c9ecfac41d0835b94978b1363c44621f42b66-poli-160812201454-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"This talk will present how to build data pipelines with no code using the open-source, Apache 2.0, Cask Hydrator. The talk will continue with a live demonstration of creating data pipelines for two use cases.\r\n","tags":["use case driven","big data day la"],"url":"https://www.slideshare.net/sawjd/big-data-day-la-2016-use-case-driven-track-hydrator-open-source-codefree-data-pipelines-jon-gray-ceo-cask-data","userLogin":"sawjd","userName":"Data Con LA","viewCount":364},{"algorithmId":"2","displayTitle":"The Future of Hadoop by Arun Murthy, PMC Apache Hadoop \u0026 Cofounder Hortonworks","isSavedByCurrentUser":false,"pageCount":20,"score":0.642,"slideshowId":"58017949","sourceName":"ss_similarity","strippedTitle":"the-future-of-hadoop-by-arun-murthy-pmc-apache-hadoop-cofounder-hortonworks","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/lahug20160203-160208182851-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"Arun Murthy will be discussing the future of Hadoop and the next steps in what the big data world would start to look like in the future. With the advent of tools like Spark and Flink and containerization of apps using Docker, there is a lot of momentum currently in this space. Arun will share his thoughts and ideas on what the future holds for us.\r\n\r\nBio:- \r\nArun C. Murthy \r\nArun is a Apache Hadoop PMC member and has been a full time contributor to the project since the inception in 2006. He is also the lead of the MapReduce project and has focused on building NextGen MapReduce (YARN). Prior to co-founding Hortonworks, Arun was responsible for all MapReduce code and configuration deployed across the 42,000+ servers at Yahoo!. In essence, he was responsible for running Apache Hadoop’s MapReduce as a service for Yahoo!. Also, he jointly holds the current world sorting record using Apache Hadoop. Follow Arun on Twitter: @acmurthy.","tags":["labdug","hortonworks","apache hadoop"],"url":"https://www.slideshare.net/sawjd/the-future-of-hadoop-by-arun-murthy-pmc-apache-hadoop-cofounder-hortonworks","userLogin":"sawjd","userName":"Data Con LA","viewCount":2504},{"algorithmId":"2","displayTitle":"More Data, More Problems: Scaling Kafka-Mirroring Pipelines at LinkedIn ","isSavedByCurrentUser":false,"pageCount":56,"score":0.6361,"slideshowId":"120396596","sourceName":"ss_similarity","strippedTitle":"more-data-more-problems-scaling-kafkamirroring-pipelines-at-linkedin","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/03celiakung-181023060113-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"(Celia Kung, LinkedIn) Kafka Summit SF 2018\r\n\r\nFor several years, LinkedIn has been using Kafka MirrorMaker as the mirroring solution for copying data between Kafka clusters across data centers. However, as LinkedIn data continued to grow, mirroring trillions of Kafka messages per day across data centers uncovered the scale limitations and operability challenges of Kafka MirrorMaker. To address such issues, we have developed a new mirroring solution, built on top our stream ingestion service, Brooklin. Brooklin MirrorMaker aims to provide improved performance and stability, while facilitating better management through finer control of data pipelines. Through flushless Kafka produce, dynamic management of data pipelines, per-partition error handling and flow control, we are able to increase throughput, better withstand consume and produce failures and reduce overall operating costs. As a result, we have eliminated the major pain points of Kafka MirrorMaker. In this talk, we will dive deeper into the challenges LinkedIn has faced with Kafka MirrorMaker, how we tackled them with Brooklin MirrorMaker and our plans for iterating further on this new mirroring solution.","tags":["apache","kafka","summit"],"url":"https://www.slideshare.net/slideshow/more-data-more-problems-scaling-kafkamirroring-pipelines-at-linkedin/120396596","userLogin":"ConfluentInc","userName":"confluent","viewCount":2403},{"algorithmId":"2","displayTitle":"Designing and Implementing a Real-time Data Lake with Dynamically Changing Sc...","isSavedByCurrentUser":false,"pageCount":75,"score":0.6339,"slideshowId":"239445898","sourceName":"ss_similarity","strippedTitle":"designing-and-implementing-a-realtime-data-lake-with-dynamically-changing-schema","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/40gulyaseranti-201124203311-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"Building a curated data lake on real time data is an emerging data warehouse pattern with delta. However in the real world, what we many times face ourselves with is dynamically changing schemas which pose a big challenge to incorporate without downtimes.","tags":[],"url":"https://www.slideshare.net/slideshow/designing-and-implementing-a-realtime-data-lake-with-dynamically-changing-schema/239445898","userLogin":"databricks","userName":"Databricks","viewCount":950},{"algorithmId":"2","displayTitle":"WhereHows: Taming Metadata for 150K Datasets Over 9 Data Platforms","isSavedByCurrentUser":false,"pageCount":26,"score":0.6326,"slideshowId":"75570837","sourceName":"ss_similarity","strippedTitle":"wherehows-taming-metadata-for-150k-datasets-over-9-data-platforms","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/bigdatameetup-wherehows-170501162751-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"This document summarizes a presentation given by Mars Lan on LinkedIn's metadata management system called WhereHows. WhereHows collects metadata from LinkedIn's various data platforms and provides a unified view. It extracts metadata from sources using ETL jobs, transforms the data into a standardized format, and loads it into a database. WhereHows tracks over 150,000 datasets across 9 data platforms and visualizes the lineage and relationships between datasets to help users understand how data is processed. The system continues to be improved with better metadata collection, compliance features, and a simplified user experience.","tags":[],"url":"https://www.slideshare.net/slideshow/wherehows-taming-metadata-for-150k-datasets-over-9-data-platforms/75570837","userLogin":"MarsLan2","userName":"Mars Lan","viewCount":1768},{"algorithmId":"2","displayTitle":"Querying Druid in SQL with Superset","isSavedByCurrentUser":false,"pageCount":26,"score":0.6263,"slideshowId":"102739940","sourceName":"ss_similarity","strippedTitle":"querying-druid-in-sql-with-superset","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/queryingdruid-180620211645-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"Druid is a high performance, column-oriented distributed data store that is widely used at Oath for big data analysis. Druid has a JSON schema as its query language, making it difficult for new users unfamiliar with the schema to start querying Druid quickly. The JSON schema is designed to work with the data ingestion methods of Druid, so it can provide high performance features such as data aggregations in JSON, but many are unable to utilize such features, because they not familiar with the specifics of how to optimize Druid queries. However, most new Druid users at Yahoo are already very familiar with SQL, and the queries they want to write for Druid can be converted to concise SQL.\r\nWe found that our data analysts wanted an easy way to issue ad-hoc Druid queries and view the results in a BI tool in a way that's presentable to nontechnical stakeholders. In order to achieve this, we had to bridge the gap between Druid, SQL, and our BI tools such as Apache Superset. In this talk, we will explore different ways to query a Druid datasource in SQL and discuss which methods were most appropriate for our use cases. We will also discuss our open source contributions so others can utilize our work. GURUGANESH KOTTA, Software Dev Eng, Oath and JUNXIAN WU, Software Engineer, Oath Inc.","tags":["apache hadoop","apache hive","apache oozie"],"url":"https://www.slideshare.net/slideshow/querying-druid-in-sql-with-superset/102739940","userLogin":"Hadoop_Summit","userName":"DataWorks Summit","viewCount":5531},{"algorithmId":"2","displayTitle":"ASPgems - kappa architecture","isSavedByCurrentUser":false,"pageCount":32,"score":0.6246,"slideshowId":"53497158","sourceName":"ss_similarity","strippedTitle":"aspgems-kappa-architecture","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/aspgems-kappaarchitecture-151003170508-lva1-app6891-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"Kappa Architecture is an alternative to Lambda Architecture that simplifies real-time data processing. It uses a distributed log like Kafka to store all input data immutably to allow reprocessing from the beginning if the processing code changes. This avoids having to maintain separate batch and real-time processing systems. The ASPgems team has implemented Kappa Architecture for several clients using Kafka, Spark Streaming, and Cassandra to provide real-time analytics and metrics in sectors like telecommunications, IoT, insurance, and energy.","tags":["kappa architecture","big data","scala"],"url":"https://www.slideshare.net/slideshow/aspgems-kappa-architecture/53497158","userLogin":"juantomas","userName":"Juantomás García Molina","viewCount":2650}],"whatsHot":[{"algorithmId":"2","displayTitle":"Data Driving Yahoo Mail Growth and Evolution with a 50 PB Hadoop Warehouse","isSavedByCurrentUser":false,"pageCount":34,"score":0.6238,"slideshowId":"77186495","sourceName":"ss_similarity","strippedTitle":"data-driving-yahoo-mail-growth-and-evolution-with-a-50-pb-hadoop-warehouse","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/nickhuangdatadrivingyahoomailgrowthandevolutionwitha50pbhadoopwarehouse-170622193630-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"Yahoo Mail has 200+ million users a month and generates hundreds of terabytes of data per day, which continues to grow steadily. The nature of email messages has also evolved: for example, today the majority of them are generated by machines, consisting of newsletters, social media notifications, purchase invoices, travel bookings, and the like, which drove innovations in product development to help users organize their inboxes.\r\n\r\nSince 2014, the Yahoo Mail Data Engineering team took on the task of revamping the Mail data warehouse and analytics infrastructure in order to drive the continued growth and evolution of Yahoo Mail. Along the way we have built a 50 PB Hadoop warehouse, and surrounding analytics and machine learning programs that have transformed the way data plays in Yahoo Mail.\r\n\r\nIn this session we will share our experience from this 3 year journey, from the system architecture, analytics systems built, to the learnings from development and drive for adoption.","tags":["dws17","dataworks summit 2017","dataworks summit"],"url":"https://www.slideshare.net/slideshow/data-driving-yahoo-mail-growth-and-evolution-with-a-50-pb-hadoop-warehouse/77186495","userLogin":"Hadoop_Summit","userName":"DataWorks Summit","viewCount":1034},{"algorithmId":"2","displayTitle":"A Big Data Lake Based on Spark for BBVA Bank-(Oscar Mendez, STRATIO)","isSavedByCurrentUser":false,"pageCount":23,"score":0.6218,"slideshowId":"49763949","sourceName":"ss_similarity","strippedTitle":"a-big-data-lake-based-on-spark-for-oscar-mendezpptx","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/09aoscarmendez-150624022849-lva1-app6892-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"This document describes BBVA's implementation of a Big Data Lake using Apache Spark for log collection, storage, and analytics. It discusses:\n\n1) Using Syslog-ng for log collection from over 2,000 applications and devices, distributing logs to Kafka. \n\n2) Storing normalized logs in HDFS and performing analytics using Spark, with outputs to analytics, compliance, and indexing systems. \n\n3) Choosing Spark because it allows interactive, batch, and stream processing with one system using RDDs, SQL, streaming, and machine learning.","tags":["spark summit 2015","apache spark"],"url":"https://www.slideshare.net/SparkSummit/a-big-data-lake-based-on-spark-for-oscar-mendezpptx","userLogin":"SparkSummit","userName":"Spark Summit","viewCount":6761},{"algorithmId":"2","displayTitle":"Delta Lake OSS: Create reliable and performant Data Lake by Quentin Ambard","isSavedByCurrentUser":false,"pageCount":42,"score":0.6151,"slideshowId":"186685980","sourceName":"ss_similarity","strippedTitle":"delta-lake-oss-create-reliable-and-performant-data-lake-by-quentin-ambard","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/2019-10deltalakeossedition-parisdataeng-quentin-191025085623-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"Delta Lake is an open source framework living on top of parquet in your data lake to provide Reliability and performances. It has been open-sourced by Databricks this year and is gaining traction to become the defacto delta lake format.\r\n\r\nWe’ll see all the goods Delta Lake can do to your data with ACID transactions, DDL operations, Schema enforcement, batch and stream support etc !","tags":["delta lake","data engineering","databricks"],"url":"https://www.slideshare.net/slideshow/delta-lake-oss-create-reliable-and-performant-data-lake-by-quentin-ambard/186685980","userLogin":"ParisDataEngineers","userName":"Paris Data Engineers !","viewCount":1408},{"algorithmId":"2","displayTitle":"Quark Virtualization Engine for Analytics ","isSavedByCurrentUser":false,"pageCount":21,"score":0.6078,"slideshowId":"63926636","sourceName":"ss_similarity","strippedTitle":"quark-virtualization-engine-for-analytics","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/june291220qubolevenkatesh-160711212900-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"Rajat Venkatesh from Qubole presented on Quark, a virtualization engine for analytics. Quark uses a multi-store architecture to optimize queries using materialized views, predicate injection, and denormalized/sorted tables. It supports multiple SQL and storage engines. The roadmap includes improvements to the cost-based optimizer, support for OLAP cubes, and developing Quark as a service. Coordinates for the Quark GitHub and mailing list were provided.","tags":["hadoop summit"],"url":"https://www.slideshare.net/slideshow/quark-virtualization-engine-for-analytics/63926636","userLogin":"HadoopSummit","userName":"DataWorks Summit/Hadoop Summit","viewCount":957},{"algorithmId":"2","displayTitle":"Big Data Computing Architecture","isSavedByCurrentUser":false,"pageCount":38,"score":0.6024,"slideshowId":"61840015","sourceName":"ss_similarity","strippedTitle":"big-data-computing-architecture","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/bigdataarchitecturegang-160510013922-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"The document discusses the evolution of big data architectures from Hadoop and MapReduce to Lambda architecture and stream processing frameworks. It notes the limitations of early frameworks in terms of latency, scalability, and fault tolerance. Modern architectures aim to unify batch and stream processing for low latency queries over both historical and new data.","tags":["storm","hadoop","spark"],"url":"https://www.slideshare.net/slideshow/big-data-computing-architecture/61840015","userLogin":"taogang1","userName":"Gang Tao","viewCount":746},{"algorithmId":"2","displayTitle":"Big Data Ready Enterprise ","isSavedByCurrentUser":false,"pageCount":25,"score":0.6017,"slideshowId":"63920611","sourceName":"ss_similarity","strippedTitle":"big-data-ready-enterprise","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/june30300wiprotechnologiesbanerjeesarda-160711181046-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"The document describes Big Data Ready Enterprise (BDRE), an open source product that addresses common challenges in implementing and operating big data solutions at large scale. It provides out-of-the-box features to accelerate implementations using pluggable architecture, community support, and distribution compatibility. The document outlines BDRE's key benefits and capabilities for data ingestion, workflow automation, operational metadata management, and more. It also provides examples of BDRE implementations and screenshots of the product's interface.","tags":["hadoop summit"],"url":"https://www.slideshare.net/slideshow/big-data-ready-enterprise/63920611","userLogin":"HadoopSummit","userName":"DataWorks Summit/Hadoop Summit","viewCount":2269},{"algorithmId":"2","displayTitle":"Visual Mapping of Clickstream Data","isSavedByCurrentUser":false,"pageCount":60,"score":0.6014,"slideshowId":"33919656","sourceName":"ss_similarity","strippedTitle":"hadoop-meets-mature-bi-where-the-rubber-meets-the-road","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/w1620-1750berlagezaalslidedecknew300pm-140424185424-phpapp01-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"This document provides an overview of WANdisco's NonStop HBase solution for making HBase continuously available for enterprise deployments. It discusses traditional high availability approaches that rely on backups and describes how these can fail. It then introduces WANdisco's patented active-active replication technology that provides 100% uptime with zero downtime. The document demonstrates how WANdisco implements multiple active HBase masters and region servers using a distributed coordination engine and Paxos consensus protocol. This allows HBase to avoid single points of failure and provides seamless failover for clients. It concludes with a demo of the NonStop HBase solution in action.","tags":[],"url":"https://www.slideshare.net/slideshow/hadoop-meets-mature-bi-where-the-rubber-meets-the-road/33919656","userLogin":"Hadoop_Summit","userName":"DataWorks Summit","viewCount":5662},{"algorithmId":"2","displayTitle":"Big Data Day LA 2016/ NoSQL track - Analytics at the Speed of Light with Redi...","isSavedByCurrentUser":false,"pageCount":27,"score":0.601,"slideshowId":"64950166","sourceName":"ss_similarity","strippedTitle":"big-data-day-la-2016-nosql-track-analytics-at-the-speed-of-light-with-redis-and-spark-dave-neilsen-developer-relations-redis-labs","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/i8l2knzwqdywcy8qwx3q-signature-ab02c4cb833dbba903c1f71145c407b68a83e908de0a99c55c22e8b624345b7d-poli-160812192311-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"This document discusses how Redis can be used for analytics at high speeds. It provides examples of how Redis data structures and operations allow for real-time bidding, recommendations, and time-series analytics. Redis on flash is presented as a cost-effective way to achieve high performance by using flash as an extension of RAM. Redis modules are introduced as a way to extend Redis capabilities with features like full text search, graphs, and SQL.","tags":["redis","big data day la","apache spark"],"url":"https://www.slideshare.net/slideshow/big-data-day-la-2016-nosql-track-analytics-at-the-speed-of-light-with-redis-and-spark-dave-neilsen-developer-relations-redis-labs/64950166","userLogin":"sawjd","userName":"Data Con LA","viewCount":455},{"algorithmId":"2","displayTitle":"Big Data Day LA 2015 - Introducing N1QL: SQL for Documents by Jeff Morris of ...","isSavedByCurrentUser":false,"pageCount":31,"score":0.599,"slideshowId":"50873390","sourceName":"ss_similarity","strippedTitle":"introducing-n1ql-sql-for-documents-by-jeff-morris-of-couchbase","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/vfre36afqmkunhivzmvq-signature-ee37a53f7b4532836fdf2ea3319896fde3c09619a53106d5e53af3d549b9c7af-poli-150724040411-lva1-app6892-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"NoSQL has exploded on the developer scene promising alternatives to RDBMS that make rapidly developing, Internet scale applications easier than ever. However, as a trade off to the ease of development and scale, some of the familiarity with other well-known query interfaces such as SQL, has been lost. Until now that is...N1QL (pronounced ‘N1QL’) is a SQL like query language for querying JSON, which brings the familiarity of RDBMS back to the NoSQL world. In this session you will learn about the syntax and basics of this new language as well as Integration with the Couchbase SDKs.","tags":["los angeles big data users group","big data","big data day la"],"url":"https://www.slideshare.net/slideshow/introducing-n1ql-sql-for-documents-by-jeff-morris-of-couchbase/50873390","userLogin":"sawjd","userName":"Data Con LA","viewCount":501},{"algorithmId":"2","displayTitle":"Streamsets and spark","isSavedByCurrentUser":false,"pageCount":13,"score":0.5987,"slideshowId":"72763672","sourceName":"ss_similarity","strippedTitle":"streamsets-and-spark-72763672","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/streamsetsandspark-170303063730-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"StreamSets can process data using Apache Spark in three ways:\n1) The Spark Evaluator stage allows user-provided Spark code to run on each batch of records in a pipeline and return results or errors. \n2) A Cluster Pipeline can leverage Apache Spark's Direct Kafka DStream to partition data from Kafka across worker pipelines on a cluster. \n3) A Spark Executor can kick off a Spark application when an event is received, allowing tasks like model updating to run on streaming data using Spark.","tags":["streamsets","ingest","streaming"],"url":"https://www.slideshare.net/slideshow/streamsets-and-spark-72763672/72763672","userLogin":"harisr1234","userName":"Hari Shreedharan","viewCount":1574},{"algorithmId":"2","displayTitle":"The Evolution of Big Data Pipelines at Intuit ","isSavedByCurrentUser":false,"pageCount":41,"score":0.5986,"slideshowId":"63923943","sourceName":"ss_similarity","strippedTitle":"the-evolution-of-big-data-pipelines-at-intuit","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/june30210intuitjoshirajaram-160711195233-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"The document summarizes the evolution of Intuit's big data pipelines over time from disparate and chaotic early stages to their current integrated cloud-based architecture. It describes how Intuit transitioned from siloed data storage to a single cohesive data pipeline using Apache Kafka and real-time processing. It outlines the key components of their current big data pipeline including real-time data collection, processing, profile storage, and monitoring systems and how this pipeline supports use cases like personalization, fraud detection and more.","tags":["hadoop summit"],"url":"https://www.slideshare.net/slideshow/the-evolution-of-big-data-pipelines-at-intuit/63923943","userLogin":"HadoopSummit","userName":"DataWorks Summit/Hadoop Summit","viewCount":1566},{"algorithmId":"2","displayTitle":"Big Telco - Yousun Jeong","isSavedByCurrentUser":false,"pageCount":21,"score":0.5952,"slideshowId":"54557266","sourceName":"ss_similarity","strippedTitle":"big-telco-yousun-jeong","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/04yousunjeong-151030084956-lva1-app6891-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"This document provides an overview of SK Telecom's use of big data analytics and Spark. Some key points:\n\n- SKT collects around 250 TB of data per day which is stored and analyzed using a Hadoop cluster of over 1400 nodes. \n\n- Spark is used for both batch and real-time processing due to its performance benefits over other frameworks. Two main use cases are described: real-time network analytics and a network enterprise data warehouse (DW) built on Spark SQL.\n\n- The network DW consolidates data from over 130 legacy databases to enable thorough analysis of the entire network. Spark SQL, dynamic resource allocation in YARN, and integration with BI tools help meet requirements for timely processing and quick","tags":["spark summit eu","apache spark"],"url":"https://www.slideshare.net/slideshow/big-telco-yousun-jeong/54557266","userLogin":"SparkSummit","userName":"Spark Summit","viewCount":4295},{"algorithmId":"2","displayTitle":"From Batch to Streaming ET(L) with Apache Apex","isSavedByCurrentUser":false,"pageCount":22,"score":0.593,"slideshowId":"77218260","sourceName":"ss_similarity","strippedTitle":"from-batch-to-streaming-etl-with-apache-apex","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/thomasweisefrombatchtostreamingetlwithapacheapex-170623221553-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"Stream data processing is increasingly required to support business needs for faster actionable insight with growing volume of information from more sources. Apache Apex is a true stream processing framework for low-latency, high-throughput and reliable processing of complex analytics pipelines on clusters. Apex is designed for quick time-to-production, and is used in production by large companies for real-time and batch processing at scale.\r\n\r\nThis session will use an Apex production use case to walk through the incremental transition from a batch pipeline with hours of latency to an end-to-end streaming architecture with billions of events per day which are processed to deliver real-time analytical reports. The example is representative for many similar extract-transform-load (ETL) use cases with other data sets that can use a common library of building blocks. The transform (or analytics) piece of such pipelines varies in complexity and often involves business logic specific, custom components.\r\n\r\nTopics include:\r\n\r\n* Pipeline functionality from event source through queryable state for real-time insights.\r\n* API for application development and development process.\r\n* Library of building blocks including connectors for sources and sinks such as Kafka, JMS, Cassandra, HBase, JDBC and how they enable end-to-end exactly-once results.\r\n* Stateful processing with event time windowing.\r\n* Fault tolerance with exactly-once result semantics, checkpointing, incremental recovery\r\n* Scalability and low-latency, high-throughput processing with advanced engine features for auto-scaling, dynamic changes, compute locality.\r\n* Who is using Apex in production, and roadmap.\r\n\r\nFollowing the session attendees will have a high level understanding of Apex and how it can be applied to use cases at their own organizations.","tags":["dataworks summit","hadoop","hadoop summit"],"url":"https://www.slideshare.net/slideshow/from-batch-to-streaming-etl-with-apache-apex/77218260","userLogin":"Hadoop_Summit","userName":"DataWorks Summit","viewCount":514},{"algorithmId":"2","displayTitle":"\"Who Moved my Data? - Why tracking changes and sources of data is critical to...","isSavedByCurrentUser":false,"pageCount":29,"score":0.593,"slideshowId":"66235618","sourceName":"ss_similarity","strippedTitle":"who-moved-my-data-why-tracking-changes-and-sources-of-data-is-critical-to-your-data-lake-success-by-russ-savage-cask","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/whomovedmydatav11-160920233642-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"Speaker: Russ Savage, from Cask \r\nBig Data Applications Meetup, 09/14/2016\r\nPalo Alto, CA \r\n\r\nMore info here: http://www.meetup.com/BigDataApps/ \r\n\r\nLink to talk: https://youtu.be/4j78g3WvC4Y\r\n\r\n\r\nAbout the talk: \r\n\r\nAs data lake sizes grow, and more users begin exploring and including that data in their everyday analysis, keeping track of the sources for data becomes critical. Understanding how a dataset was generated and who is using it allows users and companies to ensure their analysis is leveraging the most accurate and up to date information. In this talk, we will explore the different techniques available to keep track of your data in your data lake and demonstrate how we at Cask approached and attempted to mitigate this issue. ","tags":["big data","data tracking","tracking"],"url":"https://www.slideshare.net/slideshow/who-moved-my-data-why-tracking-changes-and-sources-of-data-is-critical-to-your-data-lake-success-by-russ-savage-cask/66235618","userLogin":"caskdata","userName":"Cask Data","viewCount":414},{"algorithmId":"2","displayTitle":"Realtime streaming architecture in INFINARIO","isSavedByCurrentUser":false,"pageCount":21,"score":0.593,"slideshowId":"47514085","sourceName":"ss_similarity","strippedTitle":"realtime-streaming-architecture-in-infinario","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/realtimestreamingininfinariopublic-150428090347-conversion-gate01-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"About our experience with realtime analyses on never-ending stream of user events. Discuss Lambda architecture, Kappa, Apache Kafka and our own approach.","tags":["analytics","streaming","real-time"],"url":"https://www.slideshare.net/slideshow/realtime-streaming-architecture-in-infinario/47514085","userLogin":"jozokovac","userName":"Jozo Kovac","viewCount":1382},{"algorithmId":"2","displayTitle":"Active Learning for Fraud Prevention","isSavedByCurrentUser":false,"pageCount":28,"score":0.5897,"slideshowId":"63888252","sourceName":"ss_similarity","strippedTitle":"active-learning-for-fraud-prevention","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/june28410paypalramanathan-160710173729-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"This document discusses using active learning for fraud prevention at PayPal. It introduces fraud prevention techniques at PayPal, including machine learning models at the transaction, account, and network levels. It then describes an active learning framework that uses deep learning and gradient boosted trees models along with a query by committee strategy. The experiments show that active learning is able to improve the area under the ROC curve performance of these models while significantly reducing labeling costs compared to random sampling for training data.","tags":["hadoop summit"],"url":"https://www.slideshare.net/slideshow/active-learning-for-fraud-prevention/63888252","userLogin":"HadoopSummit","userName":"DataWorks Summit/Hadoop Summit","viewCount":2205},{"algorithmId":"2","displayTitle":"The delta architecture","isSavedByCurrentUser":false,"pageCount":41,"score":0.5859,"slideshowId":"164400585","sourceName":"ss_similarity","strippedTitle":"the-delta-architecture-164400585","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/thedeltaarchitecture-190817014135-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"Lambda architecture is a popular technique where records are processed by a batch system and streaming system in parallel. The results are then combined during query time to provide a complete answer. Strict latency requirements to process old and recently generated events made this architecture popular. The key downside to this architecture is the development and operational overhead of managing two different systems.\r\n\r\nThere have been attempts to unify batch and streaming into a single system in the past. Organizations have not been that successful though in those attempts. But, with the advent of Delta Lake, we are seeing lot of engineers adopting a simple continuous data flow model to process data as it arrives. We call this architecture, The Delta Architecture.","tags":["apache spark","delta lake","big data"],"url":"https://www.slideshare.net/slideshow/the-delta-architecture-164400585/164400585","userLogin":"prakash573","userName":"Prakash Chockalingam","viewCount":701},{"algorithmId":"2","displayTitle":"Spark meetup - Zoomdata Streaming","isSavedByCurrentUser":false,"pageCount":14,"score":0.5839,"slideshowId":"58624697","sourceName":"ss_similarity","strippedTitle":"spark-meetup-zoomdata-streaming-58624697","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/sparkmeetup-zoomdatastreaming-160223192232-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"This document discusses interactive data visualization powered by Spark streaming. It describes how Zoomdata allows users to visualize streaming data in real-time as new data is delivered. The key challenges of streaming data like time, frequency, retention and synchronization are addressed. Zoomdata receives streaming data via Kafka or JMS, processes it using Spark Streaming in a single JVM, and stores the data in buffers like MongoDB. This allows for interactive data visualizations that update in real-time as new streaming data is processed. The document also outlines technologies used, how the system scales out, benefits, and includes a demo of streaming data from Twitter to MemSQL and Solr sinks using Spark Streaming.","tags":["spark","apache spark","zoomdata"],"url":"https://www.slideshare.net/slideshow/spark-meetup-zoomdata-streaming-58624697/58624697","userLogin":"Zoomdata","userName":"Zoomdata","viewCount":889},{"algorithmId":"2","displayTitle":"03-NOV-1510-Ognjen-Antonic-Telemach-stream-1","isSavedByCurrentUser":false,"pageCount":30,"score":0.5831,"slideshowId":"60289313","sourceName":"ss_similarity","strippedTitle":"03nov1510ognjenantonictelemachstream1","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/ae64e49e-058d-4d6b-9416-9af7a5ee8f8a-160331151449-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"This document discusses how Telemach Slovenia leveraged open source big data technologies like Elasticsearch, Logstash, and Kibana (ELK stack) to build analytics dashboards for fraud detection and network monitoring. It summarizes their initial success building a roaming fraud dashboard in 8 days using these technologies. This proof of concept led them to expand usage to additional fraud and network performance dashboards. The ELK stack provided scalable and cost-effective log analytics capabilities compared to commercial options like Splunk. This enabled both IT and business users to gain new visual insights into network operations and issues.","tags":[],"url":"https://www.slideshare.net/slideshow/03nov1510ognjenantonictelemachstream1/60289313","userLogin":"OgnjenAntonic","userName":"Ognjen Antonic","viewCount":382}],"alsoLiked":[],"similarTo":[{"algorithmId":"3","displayTitle":"Essential Ingredients of Realtime Stream Processing @ Scale","isSavedByCurrentUser":false,"pageCount":47,"score":0.5574,"slideshowId":"54049320","sourceName":"cm_text","strippedTitle":"essential-ingredients-of-realtime-stream-processing-scale","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/bigdataspainstreamprocessingwithssamza-151017041948-lva1-app6892-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"This presentation at BigDataSpain covers the secret sauce behind scaling real time event/stream processing @ LinkedIn","tags":["distributed","realtime","stream processing"],"url":"https://www.slideshare.net/slideshow/essential-ingredients-of-realtime-stream-processing-scale/54049320","userLogin":"KartikParamasivam","userName":"Kartik Paramasivam","viewCount":1268},{"algorithmId":"3","displayTitle":"ApacheCon BigData - What it takes to process a trillion events a day?","isSavedByCurrentUser":false,"pageCount":70,"score":0.5387,"slideshowId":"76263967","sourceName":"cm_text","strippedTitle":"apachecon-bigdata-what-it-takes-to-process-a-trillion-events-a-day","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/apachecon-talk-jagadish-1-170523162431-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"This document discusses stream processing at LinkedIn and summarizes two case studies:\n\n1. LinkedIn's communications platform processes over a trillion events per day using Apache Samza for real-time notifications, security monitoring, and other applications. \n\n2. Activity tracking in the News Feed uses stream processing to track metrics like ads clicked and session durations in real-time for hundreds of applications across LinkedIn.\n\n3. The document also outlines some of the hard problems in stream processing like state management, remote I/O, and deployment models that Samza addresses through techniques such as local state caching, asynchronous remote access, and running on YARN or embedded.","tags":["samza","large scale","systems"],"url":"https://www.slideshare.net/slideshow/apachecon-bigdata-what-it-takes-to-process-a-trillion-events-a-day/76263967","userLogin":"jagadish1989","userName":"Jagadish Venkatraman","viewCount":191},{"algorithmId":"3","displayTitle":"Essential ingredients for real time stream processing @Scale by Kartik pParam...","isSavedByCurrentUser":false,"pageCount":48,"score":0.5359,"slideshowId":"54210834","sourceName":"cm_text","strippedTitle":"essential-ingredients-for-real-time-stream-processing-scale-by-kartik-pparamasivam-at-big-data-spain-2015","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/kartikparamasivam-essentialingredientsforrealtimestreamprocessingscale-bigdataspain2015-151021105455-lva1-app6892-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"This document discusses stream processing at scale. It begins with an introduction and agenda. It then discusses scenarios for stream processing like newsfeeds, cybersecurity, and IoT. It presents the canonical stream processing architecture with data buses, real-time and batch processing, and ingestion/serving tiers. The document dives into the essential ingredients for stream processing: scale, reprocessing, accuracy of results, and easy programmability. It provides examples and strategies for each of these essential ingredients to achieve efficient and accurate stream processing at large scales.","tags":["real time processing","big data spain","big data"],"url":"https://www.slideshare.net/slideshow/essential-ingredients-for-real-time-stream-processing-scale-by-kartik-pparamasivam-at-big-data-spain-2015/54210834","userLogin":"BigDataSpain","userName":"Big Data Spain","viewCount":391},{"algorithmId":"3","displayTitle":"Powering Real-Time Apps with ScyllaDB_ Low Latency \u0026 Linear Scalability","isSavedByCurrentUser":false,"pageCount":24,"score":0.4941,"slideshowId":"261797574","sourceName":"cm_text","strippedTitle":"powering-realtime-apps-with-scylladb-low-latency-linear-scalability","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/webinarpoweringreal-timeappswithscylladblowlatencylinearscalability2023-10-05-231005174427-54d5be05-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"Discover how your team can achieve low latency at the extreme scale that your data-intensive applications require. We’ll walk you through an example of how ScyllaDB scales linearly to achieve 1M and then 2M OPS – with \u003c1ms P99 latency. We’ll cover how this works on a sample realtime app (an ML feature store), share best practices for performance, and talk about the most important tradeoffs you’ll need to negotiate.\n\nJoin us to learn:\n- Why and how to ensure your database takes full advantage of your cloud infrastructure\n- What architectural considerations matter most for high throughput and low latency\n- Key factors to consider when selecting a high-performance database","tags":["scylladb","scylla","nosql"],"url":"https://www.slideshare.net/slideshow/powering-realtime-apps-with-scylladb-low-latency-linear-scalability/261797574","userLogin":"ScyllaDB","userName":"ScyllaDB","viewCount":330},{"algorithmId":"3","displayTitle":"Apache Kafka - Scalable Message-Processing and more !","isSavedByCurrentUser":false,"pageCount":42,"score":0.4915,"slideshowId":"63814794","sourceName":"cm_text","strippedTitle":"apache-kafka-scalable-messageprocessing-and-more","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/kafka-scalable-stream-processing-and-more-v1-160707143139-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"ndependent of the source of data, the integration of event streams into an Enterprise Architecture gets more and more important in the world of sensors, social media streams and Internet of Things. Events have to be accepted quickly and reliably, they have to be distributed and analysed, often with many consumers or systems interested in all or part of the events. How can me make sure that all these event are accepted and forwarded in an efficient and reliable way? This is where Apache Kafaka comes into play, a distirbuted, highly-scalable messaging broker, build for exchanging huge amount of messages between a source and a target.\r\nThis session will start with an introduction into Apache and presents the role of Apache Kafka in a modern data / information architecture and the advantages it brings to the table. Additionally the Kafka ecosystem will be covered as well as the integration of Kafka in the Oracle Stack, with products such as Golden Gate, Service Bus and Oracle Stream Analytics all being able to act as a Kafka consumer or producer.","tags":["stream-processing","kafka","streaming-analytics"],"url":"https://www.slideshare.net/slideshow/apache-kafka-scalable-messageprocessing-and-more/63814794","userLogin":"gschmutz","userName":"Guido Schmutz","viewCount":1849},{"algorithmId":"3","displayTitle":"stream-processing-at-linkedin-with-apache-samza","isSavedByCurrentUser":false,"pageCount":61,"score":0.4895,"slideshowId":"105630048","sourceName":"cm_text","strippedTitle":"streamprocessingatlinkedinwithapachesamza-105630048","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/presentation-abhishek-upload-180712234718-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"Talk given at the Bangalore Apache Kafka Group meetup\r\nhttps://www.meetup.com/Bangalore-Apache-Kafka-Group/events/251707854/","tags":[],"url":"https://www.slideshare.net/slideshow/streamprocessingatlinkedinwithapachesamza-105630048/105630048","userLogin":"AbhishekShivanna","userName":"Abhishek Shivanna","viewCount":503},{"algorithmId":"3","displayTitle":"The Evolution of Trillion-level Real-time Messaging System in BIGO - Puslar ...","isSavedByCurrentUser":false,"pageCount":31,"score":0.4875,"slideshowId":"251256050","sourceName":"cm_text","strippedTitle":"the-evolution-of-trillionlevel-realtime-messaging-system-in-bigo-puslar-summit-asia-2021","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/updated-theevolutionoftrillion-levelreal-timemessagingsysteminbigo-wuzhanpeng-220228025424-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"This document discusses BIGO's evolution from using open-source Kafka to Apache Pulsar for its real-time messaging system. It describes the challenges BIGO faced with Kafka as data scales rapidly grew, including poor scalability and degraded I/O performance. BIGO chose Pulsar for its lightweight horizontal scalability, excellent read-write isolation, and ability to support over a million topics. Typical application scenarios discussed include high throughput event tracking, lightweight traffic balancing, and high performance catch-up reads for machine learning tasks. Future work may involve optimizations for different read/write models and combining SSD and HDD storage.","tags":["bigo","apache pulsar","event streaming"],"url":"https://www.slideshare.net/slideshow/the-evolution-of-trillionlevel-realtime-messaging-system-in-bigo-puslar-summit-asia-2021/251256050","userLogin":"streamnative","userName":"StreamNative","viewCount":101},{"algorithmId":"3","displayTitle":"AWS Lambda Supports Parallelization Factor for Kinesis and DynamoDB Event Sou...","isSavedByCurrentUser":false,"pageCount":59,"score":0.4872,"slideshowId":"234819105","sourceName":"cm_text","strippedTitle":"aws-lambda-supports-parallelization-factor-for-kinesis-and-dynamodb-event-sources","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/repeat1masteringawslambdastreamingeventsourcessvs323-r1-200601101955-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"AWS Lambda now supports Parallelization Factor, a feature that allows you to process one shard of a Kinesis or DynamoDB data stream with more than one Lambda invocation simultaneously. This new feature allows you to build more agile stream processing applications on volatile data traffic. \r\n\r\nBy default, Lambda invokes a function with one batch of data records from one shard at a time. For a single event source mapping, the maximum number of concurrent Lambda invocations is equal to the number of Kinesis or DynamoDB shards. \r\n\r\nNow you can specify the number of concurrent batches that Lambda polls from a shard via a Parallelization Factor from 1 (default) to 10. For example, when Parallelization Factor is set to 2, you can have 200 concurrent Lambda invocations at maximum to process 100 Kinesis data shards. This helps scale up the processing throughput when the data volume is volatile and the IteratorAge is high. ","tags":["serverless","aws","cloud"],"url":"https://www.slideshare.net/slideshow/aws-lambda-supports-parallelization-factor-for-kinesis-and-dynamodb-event-sources/234819105","userLogin":"SwapnilPawar3","userName":"Swapnil Pawar","viewCount":3496},{"algorithmId":"3","displayTitle":"Streaming data analytics (Kinesis, EMR/Spark) - Pop-up Loft Tel Aviv ","isSavedByCurrentUser":false,"pageCount":31,"score":0.4821,"slideshowId":"60401019","sourceName":"cm_text","strippedTitle":"streaming-data-analytics-kinesis-emrspark-popup-loft-tel-aviv","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/1-160403065221-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"\"Low latency analytics is becoming a very popular scenario. In this session we will discuss several architectural options for doing \r\nanalytics on moving data using Amazon Kinesis and EMR/Spark Streaming and share some best practices and real world examples.\"","tags":["popuplofttlv","aws","cloud"],"url":"https://www.slideshare.net/AmazonWebServices/streaming-data-analytics-kinesis-emrspark-popup-loft-tel-aviv","userLogin":"AmazonWebServices","userName":"Amazon Web Services","viewCount":4624},{"algorithmId":"3","displayTitle":"Samza at LinkedIn","isSavedByCurrentUser":false,"pageCount":60,"score":0.4811,"slideshowId":"102921356","sourceName":"cm_text","strippedTitle":"samza-at-linkedin","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/samzaatlinkedin-180625051245-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"This document summarizes a presentation about stream processing at LinkedIn using Apache Samza. It discusses how LinkedIn uses Samza for several use cases, including notifications, viewport tracking, and others. It provides details on how notifications are handled through a stream processing-based ATC (Air Traffic Controller) system. It also describes how viewport tracking works to power relevant content on LinkedIn's feed by processing billions of client-side tracking events daily through Samza.","tags":["samza","apache","linkedin"],"url":"https://www.slideshare.net/slideshow/samza-at-linkedin/102921356","userLogin":"VenuRyali1","userName":"Venu Ryali","viewCount":114},{"algorithmId":"3","displayTitle":"Real-time Data Processing Using AWS Lambda","isSavedByCurrentUser":false,"pageCount":40,"score":0.4776,"slideshowId":"76110993","sourceName":"cm_text","strippedTitle":"realtime-data-processing-using-aws-lambda-76110993","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/realtimedataprocessingusingawslambdasfsummit2017-170519002417-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"This document provides an overview and agenda for a presentation on real-time data processing using AWS Lambda. The presentation covers serverless real-time data processing concepts, processing streaming data with Lambda and Kinesis, a streaming data processing demo, a data processing pipeline with Lambda and MapReduce, and a big data processing solution demo. It also discusses a customer story of Fannie Mae using distributed computing with Lambda for financial modeling. Key topics include serverless processing of real-time streaming data, a map-reduce model for serverless distributed computing, benchmarks of serverless distributed computing, and Fannie Mae's journey migrating their high performance computing workloads to AWS Lambda.","tags":["compute evolved week","aws","amazon web services"],"url":"https://www.slideshare.net/slideshow/realtime-data-processing-using-aws-lambda-76110993/76110993","userLogin":"AmazonWebServices","userName":"Amazon Web Services","viewCount":3284},{"algorithmId":"3","displayTitle":"Scalable Stream Processing with Apache Samza","isSavedByCurrentUser":false,"pageCount":32,"score":0.476,"slideshowId":"165222902","sourceName":"cm_text","strippedTitle":"scalable-stream-processing-with-apache-samza","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/scalablestreamprocessingwithapachesamza-190820181131-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"We have seen tremendous growth in near real-time (\"nearline\") processing at LinkedIn in recent years. LinkedIn now uses Apache Samza to process well over a Trillion messages every day across thousands of applications. Apache Samza serves as the foundation for several application platforms at LinkedIn, spanning a wide variety of use cases like security, notifications, machine learning, monitoring, search, and more. In this talk we will explore various features of Apache Samza that provide the flexibility and scalability to we need to power stream processing at massive scale.","tags":["apache samza","samza","stream processing"],"url":"https://www.slideshare.net/slideshow/scalable-stream-processing-with-apache-samza/165222902","userLogin":"PrateekMaheshwari21","userName":"Prateek Maheshwari","viewCount":151},{"algorithmId":"3","displayTitle":"Raleigh DevDay 2017: Real time data processing using AWS Lambda","isSavedByCurrentUser":false,"pageCount":36,"score":0.4755,"slideshowId":"78648617","sourceName":"cm_text","strippedTitle":"real-time-data-processing-using-aws-lambda-78648617","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/realtimedataprocessingusingawslambdaserverlessjuanvillaianscofield1030am-170808021033-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"This document provides an overview of serverless real-time data processing using AWS Lambda and Amazon Kinesis. It discusses how Lambda functions can be used to process streaming data from Kinesis in real-time. An example pipeline is shown where data is ingested into Kinesis and Lambda functions are triggered to process the data and output results. Distributed computing with Lambda is also briefly discussed.","tags":["aws lambda","aws","amazon web services"],"url":"https://www.slideshare.net/slideshow/real-time-data-processing-using-aws-lambda-78648617/78648617","userLogin":"AmazonWebServices","userName":"Amazon Web Services","viewCount":290},{"algorithmId":"3","displayTitle":"London hug-samza","isSavedByCurrentUser":false,"pageCount":29,"score":0.4745,"slideshowId":"27619110","sourceName":"cm_text","strippedTitle":"london-hugsamza","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/london-hug-samza-131027132930-phpapp01-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"Apache Samza is a framework for reliable stream processing using Apache Kafka and Hadoop YARN. It provides low-latency, real-time stream processing capabilities. Samza jobs consume and process data from Kafka topics as input streams and output results to other topics. Samza tasks are distributed and run reliably across a YARN cluster, processing and maintaining state for assigned Kafka partitions. The Samza API allows developers to build stream processing applications using a simple process() method to consume messages and emit results.","tags":[],"url":"https://www.slideshare.net/slideshow/london-hugsamza/27619110","userLogin":"huguk","userName":"huguk","viewCount":2618},{"algorithmId":"3","displayTitle":"Apache Samza: Reliable Stream Processing Atop Apache Kafka and Hadoop YARN","isSavedByCurrentUser":false,"pageCount":29,"score":0.4745,"slideshowId":"27464843","sourceName":"cm_text","strippedTitle":"apache-samza","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/london-hug-samza-131022152727-phpapp02-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"Apache Samza is a framework for reliable stream processing using Apache Kafka and Hadoop YARN. It provides low-latency stream processing by allowing users to write stream processing jobs that consume messages from Kafka topics and process them using simple process functions. Samza jobs are distributed and run across clusters using YARN to provide reliability and scalability. The process functions in Samza allow users to easily integrate stream processing with state storage and message output to other Kafka topics.","tags":["hadoop samza yarn"],"url":"https://www.slideshare.net/slideshow/apache-samza/27464843","userLogin":"blueboxtraveler","userName":"blueboxtraveler","viewCount":7581},{"algorithmId":"3","displayTitle":"Samza at LinkedIn: Taking Stream Processing to the Next Level","isSavedByCurrentUser":false,"pageCount":39,"score":0.4744,"slideshowId":"35174157","sourceName":"cm_text","strippedTitle":"samza-at-linkedin-taking-stream-processing-to-the-next-level","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/samzaatlinkedin-140527105811-phpapp02-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"Slides from my talk at Berlin Buzzwords, 27 May 2014. Unfortunately Slideshare has screwed up the fonts. See https://speakerdeck.com/ept/samza-at-linkedin-taking-stream-processing-to-the-next-level for a version of the deck with correct fonts.\r\n\r\nStream processing is an essential part of real-time data systems, such as news feeds, live search indexes, real-time analytics, metrics and monitoring. But writing stream processes is still hard, especially when you're dealing with so much data that you have to distribute it across multiple machines. How can you keep the system running smoothly, even when machines fail and bugs occur?\r\n\r\nApache Samza is a new framework for writing scalable stream processing jobs. Like Hadoop and MapReduce for batch processing, it takes care of the hard parts of running your message-processing code on a distributed infrastructure, so that you can concentrate on writing your application using simple APIs. It is in production use at LinkedIn.\r\n\r\nThis talk will introduce Samza, and show how to use it to solve a range of different problems. Samza has some unique features that make it especially interesting for large deployments, and in this talk we will dig into how they work under the hood. In particular:\r\n\r\n• Samza is built to support many different jobs written by different teams. Isolation between jobs ensures that a single badly behaved job doesn't affect other jobs. It is robust by design.\r\n• Samza can handle jobs that require large amounts of state, for example joining multiple streams, augmenting a stream with data from a database, or aggregating data over long time windows. This makes it a very powerful tool for applications.","tags":["samza","stream processing","fault tolerance"],"url":"https://www.slideshare.net/slideshow/samza-at-linkedin-taking-stream-processing-to-the-next-level/35174157","userLogin":"martinkleppmann","userName":"Martin Kleppmann","viewCount":4389},{"algorithmId":"3","displayTitle":"Getting Maximum Performance from Amazon Redshift (DAT305) | AWS re:Invent 2013","isSavedByCurrentUser":false,"pageCount":77,"score":0.4744,"slideshowId":"28437022","sourceName":"cm_text","strippedTitle":"getting-maximum-performance-from-amazon-redshift-dat305-aws-reinvent-2013-28437022","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/dat305-131119204619-phpapp01-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"Get the most out of Amazon Redshift by learning about cutting-edge data warehousing implementations. Desk.com, a Salesforce.com company, discusses how they maintain a large concurrent user base on their customer-facing business intelligence portal powered by Amazon Redshift. HasOffers shares how they load 60 million events per day into Amazon Redshift with a 3-minute end-to-end load latency to support ad performance tracking for thousands of affiliate networks. Finally, Aggregate Knowledge discusses how they perform complex queries at scale with Amazon Redshift to support their media intelligence platform.","tags":["aws cloud","startups","dat305"],"url":"https://www.slideshare.net/slideshow/getting-maximum-performance-from-amazon-redshift-dat305-aws-reinvent-2013-28437022/28437022","userLogin":"AmazonWebServices","userName":"Amazon Web Services","viewCount":26829},{"algorithmId":"3","displayTitle":"Akka, Spark or Kafka? Selecting The Right Streaming Engine For the Job","isSavedByCurrentUser":false,"pageCount":49,"score":0.4731,"slideshowId":"93793907","sourceName":"cm_text","strippedTitle":"akka-spark-or-kafka-selecting-the-right-streaming-engine-for-the-job","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/streamingwebinar-20180412-180413131328-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"The document discusses streaming data architectures and streaming engines. It provides an overview of classic batch architectures like Hadoop and Spark and new streaming architectures using technologies like Kafka, Flink and Beam. It then examines different streaming engines, considering factors like latency, volume, data processing needs, and preferred application architecture. Key streaming engines highlighted include Apache Beam, Flink, Spark, Akka Streams and Kafka Streams.","tags":["akka","akka streams","fast data platform"],"url":"https://www.slideshare.net/slideshow/akka-spark-or-kafka-selecting-the-right-streaming-engine-for-the-job/93793907","userLogin":"Lightbend","userName":"Lightbend","viewCount":19401},{"algorithmId":"3","displayTitle":"Netflix Keystone—Cloud scale event processing pipeline","isSavedByCurrentUser":false,"pageCount":83,"score":0.473,"slideshowId":"65974988","sourceName":"cm_text","strippedTitle":"netflix-keystonecloud-scale-event-processing-pipeline","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/orielly-data-pipeline-webcast-160913131854-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"http://www.oreilly.com/pub/e/3764\r\n\r\nKeystone processes over 700 billion events per day (1 peta byte) with at-least-once processing semantics in the cloud. Monal Daxini details how they used Kafka, Samza, Docker, and Linux at scale to implement a multi-tenant pipeline in AWS cloud within a year. He'll also share plans on offering a Stream Processing as a Service for all of Netflix use.\r\n\r\n","tags":["kafka","stream processing","oreilly"],"url":"https://www.slideshare.net/slideshow/netflix-keystonecloud-scale-event-processing-pipeline/65974988","userLogin":"mdaxini","userName":"Monal Daxini","viewCount":3354},{"algorithmId":"3","displayTitle":"Data Con LA 2022 Keynote","isSavedByCurrentUser":false,"pageCount":16,"score":0.4719,"slideshowId":"252940056","sourceName":"cm_text","strippedTitle":"data-con-la-2022-keynote","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/dataconla-220912210129-ae9b7e26-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"- Project Lightspeed is the next generation of Apache Spark Structured Streaming that aims to provide faster and simpler stream processing with predictable low latency. \n- It targets reducing tail latency by up to 2x through faster bookkeeping and offset management. It also enhances functionality with advanced capabilities like new operators and easy to use APIs.\n- Project Lightspeed also aims to simplify deployment, operations, monitoring and troubleshooting of streaming applications. It seeks to improve ecosystem support for connectors, authentication and authorization.\n- Some specific improvements include faster micro-batch processing, enhancing Python as a first class citizen, and making debugging of streaming jobs easier through visualizations.","tags":["data con la","dcla"],"url":"https://www.slideshare.net/slideshow/data-con-la-2022-keynote/252940056","userLogin":"sawjd","userName":"Data Con LA","viewCount":16}],"moreFromUser":[{"algorithmId":"","displayTitle":"Running Apache Spark \u0026 Apache Zeppelin in Production","isSavedByCurrentUser":false,"pageCount":28,"score":0,"slideshowId":"83150055","sourceName":"MORE_FROM_USER","strippedTitle":"running-apache-spark-apache-zeppelin-in-production-83150055","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/sparkzeppelininproduction-vinayshukla-171201212915-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"This document discusses running Apache Spark and Apache Zeppelin in production. It begins by introducing the author and their background. It then covers security best practices for Spark deployments, including authentication using Kerberos, authorization using Ranger/Sentry, encryption, and audit logging. Different Spark deployment modes like Spark on YARN are explained. The document also discusses optimizing Spark performance by tuning executor size and multi-tenancy. Finally, it covers security features for Apache Zeppelin like authentication, authorization, and credential management.","tags":["apahce spark","hadoop","dataworks summit"],"url":"https://www.slideshare.net/slideshow/running-apache-spark-apache-zeppelin-in-production-83150055/83150055","userLogin":"HadoopSummit","userName":"DataWorks Summit/Hadoop Summit","viewCount":9637},{"algorithmId":"","displayTitle":"State of Security: Apache Spark \u0026 Apache Zeppelin","isSavedByCurrentUser":false,"pageCount":25,"score":0,"slideshowId":"83150023","sourceName":"MORE_FROM_USER","strippedTitle":"state-of-security-apache-spark-apache-zeppelin-83150023","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/stateofsparksecurity-viinayshukla-hs16sj-171201212830-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"This document discusses Spark security and provides an overview of authentication, authorization, encryption, and auditing in Spark. It describes how Spark leverages Kerberos for authentication and uses services like Ranger and Sentry for authorization. It also outlines how communication channels in Spark are encrypted and some common issues to watch out for related to Spark security.","tags":["apache spark","dataworks summit","hadoop summit"],"url":"https://www.slideshare.net/slideshow/state-of-security-apache-spark-apache-zeppelin-83150023/83150023","userLogin":"HadoopSummit","userName":"DataWorks Summit/Hadoop Summit","viewCount":3268},{"algorithmId":"","displayTitle":"Unleashing the Power of Apache Atlas with Apache Ranger","isSavedByCurrentUser":false,"pageCount":33,"score":0,"slideshowId":"75001432","sourceName":"MORE_FROM_USER","strippedTitle":"unleashing-the-power-of-apache-atlas-with-apache-ranger","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/april61500ibmjones-170413225943-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"The document discusses the Virtual Data Connector project which aims to leverage Apache Atlas and Apache Ranger to provide unified metadata and access governance across data sources. Key points include:\n\n- The project aims to address challenges of understanding, governing, and controlling access to distributed data through a centralized metadata catalog and policies. \n\n- Apache Atlas provides a scalable metadata repository while Apache Ranger enables centralized access governance. The project will integrate these using a virtualization layer.\n\n- Enhancements to Atlas and Ranger are proposed to better support the project's goals around a unified open metadata platform and metadata-driven governance.\n\n- An initial minimum viable product will be built this year with the goal of an open, collaborative ecosystem around shared","tags":["hadoop summit","dataworks summit"],"url":"https://www.slideshare.net/slideshow/unleashing-the-power-of-apache-atlas-with-apache-ranger/75001432","userLogin":"HadoopSummit","userName":"DataWorks Summit/Hadoop Summit","viewCount":6800},{"algorithmId":"","displayTitle":"Enabling Digital Diagnostics with a Data Science Platform","isSavedByCurrentUser":false,"pageCount":10,"score":0,"slideshowId":"75001344","sourceName":"MORE_FROM_USER","strippedTitle":"enabling-digital-diagnostics-with-a-data-science-platform","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/april51750yaleschoolschulz-170413225451-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"This document discusses using a data science platform to enable digital diagnostics in healthcare. It provides an overview of healthcare data sources and Yale/YNHH's data science platform. It then describes the data science journey process using a clinical laboratory use case as an example. The goal is to use big data and machine learning to improve diagnostic reproducibility, throughput, turnaround time, and accuracy for laboratory testing by developing a machine learning algorithm and real-time data processing pipeline.","tags":["dataworks summit","hadoop summit"],"url":"https://www.slideshare.net/slideshow/enabling-digital-diagnostics-with-a-data-science-platform/75001344","userLogin":"HadoopSummit","userName":"DataWorks Summit/Hadoop Summit","viewCount":1443},{"algorithmId":"","displayTitle":"Revolutionize Text Mining with Spark and Zeppelin","isSavedByCurrentUser":false,"pageCount":28,"score":0,"slideshowId":"75001304","sourceName":"MORE_FROM_USER","strippedTitle":"revolutionize-text-mining-with-spark-and-zeppelin-75001304","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/april51700hortonworksliang-170413225230-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"This document discusses using Apache Spark and MLlib for text mining on big data. It outlines common text mining applications, describes how Spark and MLlib enable scalable machine learning on large datasets, and provides examples of text mining workflows and pipelines that can be built with Spark MLlib algorithms and components like tokenization, feature extraction, and modeling. It also discusses customizing ML pipelines and the Zeppelin notebook platform for collaborative data science work.","tags":["hadoop summit","dataworks summit"],"url":"https://www.slideshare.net/slideshow/revolutionize-text-mining-with-spark-and-zeppelin-75001304/75001304","userLogin":"HadoopSummit","userName":"DataWorks Summit/Hadoop Summit","viewCount":2092},{"algorithmId":"","displayTitle":"Double Your Hadoop Performance with Hortonworks SmartSense","isSavedByCurrentUser":false,"pageCount":28,"score":0,"slideshowId":"75001077","sourceName":"MORE_FROM_USER","strippedTitle":"double-your-hadoop-performance-with-hortonworks-smartsense-75001077","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/april51410bscpoggimonterorivero-170413223657-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"This document compares the performance of Hive and Spark when running the BigBench benchmark. It outlines the structure and use cases of the BigBench benchmark, which aims to cover common Big Data analytical properties. It then describes sequential performance tests of Hive+Tez and Spark on queries from the benchmark using a HDInsight PaaS cluster, finding variations in performance between the systems. Concurrency tests are also run by executing multiple query streams in parallel to analyze throughput.","tags":["smartsense","dataworks summit","hadoop summit"],"url":"https://www.slideshare.net/slideshow/double-your-hadoop-performance-with-hortonworks-smartsense-75001077/75001077","userLogin":"HadoopSummit","userName":"DataWorks Summit/Hadoop Summit","viewCount":1050},{"algorithmId":"","displayTitle":"Hadoop Crash Course","isSavedByCurrentUser":false,"pageCount":93,"score":0,"slideshowId":"74939890","sourceName":"MORE_FROM_USER","strippedTitle":"hadoop-crash-course","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/dwmunichhadoopcrashcourse-final-170412151353-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"The document discusses modern data applications and architectures. It introduces Apache Hadoop, an open-source software framework for distributed storage and processing of large datasets across clusters of commodity hardware. Hadoop provides massive scalability and easy data access for applications. The document outlines the key components of Hadoop, including its distributed storage, processing framework, and ecosystem of tools for data access, management, analytics and more. It argues that Hadoop enables organizations to innovate with all types and sources of data at lower costs.","tags":["hadoop summit","apache hadoop","dataworks summit"],"url":"https://www.slideshare.net/slideshow/hadoop-crash-course/74939890","userLogin":"HadoopSummit","userName":"DataWorks Summit/Hadoop Summit","viewCount":4207},{"algorithmId":"","displayTitle":"Data Science Crash Course","isSavedByCurrentUser":false,"pageCount":91,"score":0,"slideshowId":"74939603","sourceName":"MORE_FROM_USER","strippedTitle":"data-science-crash-course","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/crashcourse-datascience-munich-public-170412150852-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"This document provides an overview of data science and machine learning. It discusses what data science and machine learning are, including extracting insights from data and computers learning without being explicitly programmed. It also covers Apache Spark, which is an open source framework for large-scale data processing. Finally, it discusses common machine learning algorithms like regression, classification, clustering, and dimensionality reduction.","tags":["data science","hadoop summit","dataworks summit"],"url":"https://www.slideshare.net/slideshow/data-science-crash-course/74939603","userLogin":"HadoopSummit","userName":"DataWorks Summit/Hadoop Summit","viewCount":2547},{"algorithmId":"","displayTitle":"Apache Spark Crash Course","isSavedByCurrentUser":false,"pageCount":84,"score":0,"slideshowId":"74939387","sourceName":"MORE_FROM_USER","strippedTitle":"apache-spark-crash-course","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/crashcourse-apachespark-munich-public-170412150529-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"This document provides an overview of Apache Spark, including its capabilities and components. Spark is an open-source cluster computing framework that allows distributed processing of large datasets across clusters of machines. It supports various data processing workloads including streaming, SQL, machine learning and graph analytics. The document discusses Spark's APIs like DataFrames and its libraries like Spark SQL, Spark Streaming, MLlib and GraphX. It also provides examples of using Spark for tasks like linear regression modeling.","tags":["hadoop summit","dataworks summit"],"url":"https://www.slideshare.net/slideshow/apache-spark-crash-course/74939387","userLogin":"HadoopSummit","userName":"DataWorks Summit/Hadoop Summit","viewCount":3096},{"algorithmId":"","displayTitle":"Dataflow with Apache NiFi","isSavedByCurrentUser":false,"pageCount":34,"score":0,"slideshowId":"74939220","sourceName":"MORE_FROM_USER","strippedTitle":"dataflow-with-apache-nifi","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/2017-170412150251-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"This document provides an overview of Apache NiFi and dataflow. It begins with an introduction to the challenges of moving data effectively within and between systems. It then discusses Apache NiFi's key features for addressing these challenges, including guaranteed delivery, data buffering, prioritized queuing, and data provenance. The document outlines NiFi's architecture and components like repositories and extension points. It also previews a live demo and invites attendees to further discuss Apache NiFi at a Birds of a Feather session.","tags":["dataworks summit","apache nifi","hadoop summit"],"url":"https://www.slideshare.net/slideshow/dataflow-with-apache-nifi/74939220","userLogin":"HadoopSummit","userName":"DataWorks Summit/Hadoop Summit","viewCount":9068},{"algorithmId":"","displayTitle":"Schema Registry - Set you Data Free","isSavedByCurrentUser":false,"pageCount":23,"score":0,"slideshowId":"74892367","sourceName":"MORE_FROM_USER","strippedTitle":"schema-registry-set-you-data-free","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/april61700hortonworksduggana-170411152833-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"Many Organizations are currently processing various types of data and in different formats. Most often this data will be in free form, As the consumers of this data growing it’s imperative that this free-flowing data needs to adhere to a schema. It will help data consumers to have an expectation of about the type of data they are getting and also they will be able to avoid immediate impact if the upstream source changes its format. Having a uniform schema representation also gives the Data Pipeline a really easy way to integrate and support various systems that use different data formats.\r\nSchemaRegistry is a central repository for storing, evolving schemas. It provides an API \u0026 tooling to help developers and users to register a schema and consume that schema without having any impact if the schema changed. Users can tag different schemas and versions, register for notifications of schema changes with versions etc.\r\nIn this talk, we will go through the need for a schema registry and schema evolution and showcase the integration with Apache NiFi, Apache Kafka, Apache Storm.","tags":["hadoop summit","dataworks summit"],"url":"https://www.slideshare.net/slideshow/schema-registry-set-you-data-free/74892367","userLogin":"HadoopSummit","userName":"DataWorks Summit/Hadoop Summit","viewCount":5397},{"algorithmId":"","displayTitle":"Building a Large-Scale, Adaptive Recommendation Engine with Apache Flink and ...","isSavedByCurrentUser":false,"pageCount":66,"score":0,"slideshowId":"74892337","sourceName":"MORE_FROM_USER","strippedTitle":"building-a-largescale-adaptive-recommendation-engine-with-apache-flink-and-spark","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/april61610hungarianacademyofscienceszvarahermann-170411152807-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"There is increasing need for large-scale recommendation systems. Typical solutions rely on periodically retrained batch algorithms, but for massive amounts of data, training a new model could take hours. This is a problem when the model needs to be more up-to-date. For example, when recommending TV programs while they are being transmitted the model should take into consideration users who watch a program at that time.\r\nThe promise of online recommendation systems is fast adaptation to changes, but methods of online machine learning from streams is commonly believed to be more restricted and hence less accurate than batch trained models. Combining batch and online learning could lead to a quickly adapting recommendation system with increased accuracy. However, designing a scalable data system for uniting batch and online recommendation algorithms is a challenging task. In this talk we present our experiences in creating such a recommendation engine with Apache Flink and Apache Spark.","tags":["apache flink","apache spark","hadoop summit"],"url":"https://www.slideshare.net/slideshow/building-a-largescale-adaptive-recommendation-engine-with-apache-flink-and-spark/74892337","userLogin":"HadoopSummit","userName":"DataWorks Summit/Hadoop Summit","viewCount":2152},{"algorithmId":"","displayTitle":"Real-Time Anomaly Detection using LSTM Auto-Encoders with Deep Learning4J on ...","isSavedByCurrentUser":false,"pageCount":64,"score":0,"slideshowId":"74892044","sourceName":"MORE_FROM_USER","strippedTitle":"realtime-anomaly-detection-using-lstm-autoencoders-with-deep-learning4j-on-apache-spark","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/april61410ibmkienzler-170411152501-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"DeepLearning is not just a hype - it outperforms state-of-the-art ML algorithms. One by one. In this talk we will show how DeepLearning can be used for detecting anomalies on IoT sensor data streams at high speed using DeepLearning4J on top of different BigData engines like ApacheSpark and ApacheFlink. Key in this talk is the absence of any large training corpus since we are using unsupervised machine learning - a domain current DL research threats step-motherly. As we can see in this demo LSTM networks can learn very complex system behavior - in this case data coming from a physical model simulating bearing vibration data. Once draw back of DeepLearning is that normally a very large labaled training data set is required. This is particularly interesting since we can show how unsupervised machine learning can be used in conjunction with DeepLearning - no labeled data set is necessary. We are able to detect anomalies and predict braking bearings with 10 fold confidence. All examples and all code will be made publicly available and open sources. Only open source components are used.","tags":["dataworks summit","hadoop summit","deep learning"],"url":"https://www.slideshare.net/slideshow/realtime-anomaly-detection-using-lstm-autoencoders-with-deep-learning4j-on-apache-spark/74892044","userLogin":"HadoopSummit","userName":"DataWorks Summit/Hadoop Summit","viewCount":10032},{"algorithmId":"","displayTitle":"Mool - Automated Log Analysis using Data Science and ML","isSavedByCurrentUser":false,"pageCount":21,"score":0,"slideshowId":"74891350","sourceName":"MORE_FROM_USER","strippedTitle":"mool-automated-log-analysis-using-data-science-and-ml","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/april61500hortonworkschoudharynagar-170411151648-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"QE automation for large systems is a great step forward in increasing system reliability. In the big-data world, multiple components have to come together to provide end-users with business outcomes. This means, that QE Automations scenarios need to be detailed around actual use cases, cross-cutting components. The system tests potentially generate large amounts of data on a recurring basis, verifying which is a tedious job. Given the multiple levels of indirection, the false positives of actual defects are higher, and are generally wasteful.\r\nAt Hortonworks, we’ve designed and implemented Automated Log Analysis System - Mool, using Statistical Data Science and ML. Currently the work in progress has a batch data pipeline with a following ensemble ML pipeline which feeds into the recommendation engine. The system identifies the root cause of test failures, by correlating the failing test cases, with current and historical error records, to identify root cause of errors across multiple components. The system works in unsupervised mode with no perfect model/stable builds/source-code version to refer to. In addition the system provides limited recommendations to file/open past tickets and compares run-profiles with past runs.","tags":["dataworks summit","machine learning","hadoop summit"],"url":"https://www.slideshare.net/slideshow/mool-automated-log-analysis-using-data-science-and-ml/74891350","userLogin":"HadoopSummit","userName":"DataWorks Summit/Hadoop Summit","viewCount":1487},{"algorithmId":"","displayTitle":"How Hadoop Makes the Natixis Pack More Efficient ","isSavedByCurrentUser":false,"pageCount":20,"score":0,"slideshowId":"74891163","sourceName":"MORE_FROM_USER","strippedTitle":"how-hadoop-makes-the-natixis-pack-more-efficient","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/april61410natixisvaiemontagnon-170411151446-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"Improving business performance is never easy! The Natixis Pack is like Rugby. Working together is key to scrum success. Our data journey would undoubtedly have been so much more difficult if we had not made the move together.\r\nThis session is the story of how ‘The Natixis Pack’ has driven change in its current IT architecture so that legacy systems can leverage some of the many components in Hortonworks Data Platform in order to improve the performance of business applications. During this session, you will hear:\r\n•\tHow and why the business and IT requirements originated\r\n•\tHow we leverage the platform to fulfill security and production requirements\r\n•\tHow we organize a community to:\r\no\tGuard all the players, no one gets left on the ground!\r\no\tUs the platform appropriately (Not every problem is eligible for Big Data and standard databases are not dead)\r\n•\tWhat are the most usable, the most interesting and the most promising technologies in the Apache Hadoop community\r\nWe will finish the story of a successful rugby team with insight into the special skills needed from each player to win the match!\r\nDETAILS\r\nThis session is part business, part technical. We will talk about infrastructure, security and project management as well as the industrial usage of Hive, HBase, Kafka, and Spark within an industrial Corporate and Investment Bank environment, framed by regulatory constraints.","tags":["apache kafka","apache spark","apache ambari"],"url":"https://www.slideshare.net/slideshow/how-hadoop-makes-the-natixis-pack-more-efficient/74891163","userLogin":"HadoopSummit","userName":"DataWorks Summit/Hadoop Summit","viewCount":777},{"algorithmId":"","displayTitle":"HBase in Practice ","isSavedByCurrentUser":false,"pageCount":46,"score":0,"slideshowId":"74890983","sourceName":"MORE_FROM_USER","strippedTitle":"hbase-in-practice-74890983","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/april61220opencoregeorge-170411151249-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"HBase is a distributed, column-oriented database that stores data in tables divided into rows and columns. It is optimized for random, real-time read/write access to big data. The document discusses HBase's key concepts like tables, regions, and column families. It also covers performance tuning aspects like cluster configuration, compaction strategies, and intelligent key design to spread load evenly. Different use cases are suitable for HBase depending on access patterns, such as time series data, messages, or serving random lookups and short scans from large datasets. Proper data modeling and tuning are necessary to maximize HBase's performance.","tags":["dataworks summit","hbase","hadoop summit"],"url":"https://www.slideshare.net/slideshow/hbase-in-practice-74890983/74890983","userLogin":"HadoopSummit","userName":"DataWorks Summit/Hadoop Summit","viewCount":5557},{"algorithmId":"","displayTitle":"The Challenge of Driving Business Value from the Analytics of Things (AOT)","isSavedByCurrentUser":false,"pageCount":20,"score":0,"slideshowId":"74890879","sourceName":"MORE_FROM_USER","strippedTitle":"the-challenge-of-driving-business-value-from-the-analytics-of-things-aot","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/april61130teradatamarques-170411151136-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"There has been an explosion of data digitising our physical world – from cameras, environmental sensors and embedded devices, right down to the phones in our pockets. Which means that, now, companies have new ways to transform their businesses – both operationally, and through their products and services – by leveraging this data and applying fresh analytical techniques to make sense of it. But are they ready? The answer is “no” in most cases.\r\nIn this session, we’ll be discussing the challenges facing companies trying to embrace the Analytics of Things, and how Teradata has helped customers work through and turn those challenges to their advantage.","tags":["dataworks summit","hadoop summit"],"url":"https://www.slideshare.net/HadoopSummit/the-challenge-of-driving-business-value-from-the-analytics-of-things-aot","userLogin":"HadoopSummit","userName":"DataWorks Summit/Hadoop Summit","viewCount":569},{"algorithmId":"","displayTitle":"Breaking the 1 Million OPS/SEC Barrier in HOPS Hadoop","isSavedByCurrentUser":false,"pageCount":51,"score":0,"slideshowId":"74890782","sourceName":"MORE_FROM_USER","strippedTitle":"breaking-the-1-million-opssec-barrier-in-hops-hadoop","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/april61700kthdowling-170411151014-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"In this talk, we will present a new distribution of Hadoop, Hops, that can scale the Hadoop Filesystem (HDFS) by 16X, from 70K ops/s to 1.2 million ops/s on Spotiy's industrial Hadoop workload. Hops is an open-source distribution of Apache Hadoop that supports distributed metadata for HSFS (HopsFS) and the ResourceManager in Apache YARN. HopsFS is the first production-grade distributed hierarchical filesystem to store its metadata normalized in an in-memory, shared nothing database. For YARN, we will discuss optimizations that enable 2X throughput increases for the Capacity scheduler, enabling scalability to clusters with \u003e20K nodes. We will discuss the journey of how we reached this milestone, discussing some of the challenges involved in efficiently and safely mapping hierarchical filesystem metadata state and operations onto a shared-nothing, in-memory database. We will also discuss the key database features needed for extreme scaling, such as multi-partition transactions, partition-pruned index scans, distribution-aware transactions, and the streaming changelog API. Hops (www.hops.io) is Apache-licensed open-source and supports a pluggable database backend for distributed metadata, although it currently only support MySQL Cluster as a backend. Hops opens up the potential for new directions for Hadoop when metadata is available for tinkering in a mature relational database.","tags":["dataworks summit","hadoop summit","hdfs"],"url":"https://www.slideshare.net/slideshow/breaking-the-1-million-opssec-barrier-in-hops-hadoop/74890782","userLogin":"HadoopSummit","userName":"DataWorks Summit/Hadoop Summit","viewCount":966},{"algorithmId":"","displayTitle":"From Regulatory Process Verification to Predictive Maintenance and Beyond wit...","isSavedByCurrentUser":false,"pageCount":35,"score":0,"slideshowId":"74890768","sourceName":"MORE_FROM_USER","strippedTitle":"from-regulatory-process-verification-to-predictive-maintenance-and-beyond-with-talend-data-fabric","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/april61500quinscapehermespoecherhemmers-170411151001-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"In high-risk manufacturing industries, regulatory bodies stipulate continuous monitoring and documentation of critical product attributes and process parameters. On the other hand, sensor data coming from production processes can be used to gain deeper insights into optimization potentials. By establishing a central production data lake based on Hadoop and using Talend Data Fabric as a basis for a unified architecture, the German pharmaceutical company HERMES Arzneimittel was able to cater to compliance requirements as well as unlock new business opportunities, enabling use cases like predictive maintenance, predictive quality assurance or open world analytics. Learn how the Talend Data Fabric enabled HERMES Arzneimittel to become data-driven and transform Big Data projects from challenging, hard to maintain hand-coding jobs to repeatable, future-proof integration designs.\r\nTalend Data Fabric combines Talend products into a common set of powerful, easy-to-use tools for any integration style: real-time or batch, big data or master data management, on-premises or in the cloud.","tags":["hadoop summit","dataworks summit"],"url":"https://www.slideshare.net/slideshow/from-regulatory-process-verification-to-predictive-maintenance-and-beyond-with-talend-data-fabric/74890768","userLogin":"HadoopSummit","userName":"DataWorks Summit/Hadoop Summit","viewCount":1391},{"algorithmId":"","displayTitle":"Backup and Disaster Recovery in Hadoop ","isSavedByCurrentUser":false,"pageCount":27,"score":0,"slideshowId":"74890686","sourceName":"MORE_FROM_USER","strippedTitle":"backup-and-disaster-recovery-in-hadoop-74890686","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/april61610opencoregeorge-170411150900-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"While you could be tempted assuming data is already safe in a single Hadoop cluster, in practice you have to plan for more. Questions like: \"What happens if the entire datacenter fails?, or \"How do I recover into a consistent state of data, so that applications can continue to run?\" are not a all trivial to answer for Hadoop. Did you know that HDFS snapshots are handling open files not as immutable? Or that HBase snapshots are executed asynchronously across servers and therefore cannot guarantee atomicity for cross region updates (which includes tables)? There is no unified and coherent data backup strategy, nor is there tooling available for many of the included components to build such a strategy. The Hadoop distributions largely avoid this topic as most customers are still in the \"single use-case\" or PoC phase, where data governance as far as backup and disaster recovery (BDR) is concerned are not (yet) important. This talk first is introducing you to the overarching issue and difficulties of backup and data safety, looking at each of the many components in Hadoop, including HDFS, HBase, YARN, Oozie, the management components and so on, to finally show you a viable approach using built-in tools. You will also learn not to take this topic lightheartedly and what is needed to implement and guarantee a continuous operation of Hadoop cluster based solutions.","tags":["dataworks summit","hadoop summit"],"url":"https://www.slideshare.net/slideshow/backup-and-disaster-recovery-in-hadoop-74890686/74890686","userLogin":"HadoopSummit","userName":"DataWorks Summit/Hadoop Summit","viewCount":1270}],"featured":null,"latest":[{"algorithmId":"4","displayTitle":"SF Welly Trailblazer Community Xmas 2024","isSavedByCurrentUser":false,"pageCount":8,"score":0,"slideshowId":"273540764","sourceName":"LATEST","strippedTitle":"sf-welly-trailblazer-community-xmas-2024","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/sfwellyxmas2024-241123083748-8ebd6407-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"This is the slide deck of the Salesforce Wellington user group community final gathering for 2024. The event included as presentation by BCITO of theior Copado capability as well as a Christmas song generated in reggae style by Slalom. And also the photo booth sponsored by Upper Echelon","tags":["salesforce admins","trailblazer community","copado"],"url":"https://www.slideshare.net/slideshow/sf-welly-trailblazer-community-xmas-2024/273540764","userLogin":"AnnaLoughnanColquhou","userName":"Anna Loughnan Colquhoun","viewCount":162},{"algorithmId":"4","displayTitle":"Reset RHEL Root User Password - RHCSA.pdf","isSavedByCurrentUser":false,"pageCount":8,"score":0,"slideshowId":"273668115","sourceName":"LATEST","strippedTitle":"reset-rhel-root-user-password-rhcsa-pdf","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/resetrhelpassword-rhcsa-241128060711-a33aecb3-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"Slides on how to reset root user password in rhel - Part of RHCSA syllabus \n","tags":["rhcsa","rhcsa exam","reset password"],"url":"https://www.slideshare.net/slideshow/reset-rhel-root-user-password-rhcsa-pdf/273668115","userLogin":"support8872","userName":"RHCSA Guru","viewCount":26},{"algorithmId":"4","displayTitle":"SELinux Troubleshooting in RHEL - RHCSA+.pdf","isSavedByCurrentUser":false,"pageCount":11,"score":0,"slideshowId":"273705657","sourceName":"LATEST","strippedTitle":"selinux-troubleshooting-in-rhel-rhcsa-pdf","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/selinuxtroubleshooting-rhcsa-241129090545-a8d57c2f-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"Slides on how to troubleshoot SELinux issues - RHCSA+\n\n\n\n\n\n\n","tags":["selinux","selinux options","troubleshoot with selinux"],"url":"https://www.slideshare.net/slideshow/selinux-troubleshooting-in-rhel-rhcsa-pdf/273705657","userLogin":"support8872","userName":"RHCSA Guru","viewCount":18},{"algorithmId":"4","displayTitle":"ICDCC_Paper ID - 688 \"Phablet Encryption Algorithm : a multi-layered approac...","isSavedByCurrentUser":false,"pageCount":10,"score":0,"slideshowId":"273726085","sourceName":"LATEST","strippedTitle":"icdcc_paper-id-688-phablet-encryption-algorithm-a-multi-layered-approach-to-secure-hashing-and-encryption","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/icdccpaperid-688-241130052931-1a91104a-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"The Presentation on Research Paper Titled \"Phablet Encryption Algorithm : a multi-layered approach to secure hashing and encryption\" by Nihal Awasthi author and Developer of Phablet","tags":[],"url":"https://www.slideshare.net/slideshow/icdcc_paper-id-688-phablet-encryption-algorithm-a-multi-layered-approach-to-secure-hashing-and-encryption/273726085","userLogin":"NihalAwasthi","userName":"NihalAwasthi","viewCount":24},{"algorithmId":"4","displayTitle":"Evaluating RAG pipelines built on unstructured data","isSavedByCurrentUser":false,"pageCount":11,"score":0,"slideshowId":"273592670","sourceName":"LATEST","strippedTitle":"evaluating-rag-pipelines-built-on-unstructured-data-5da7","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/arizeai-hakantekgul-unstructureddatameetupnovember2024-241125192254-8ad082cd-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"This talk will cover different techniques for evaluating a RAG pipeline built on unstructured data. Standing up a basic RAG pipeline is becoming easier every day, however identifying weak points in your application or dataset remains a challenge. We'll review how you can use traditional assertion-based evaluation techniques, LLM-as-a-Judge approaches, and embedding visualization tools to improve your pipeline using Arize Phoenix.\n\n","tags":[],"url":"https://www.slideshare.net/slideshow/evaluating-rag-pipelines-built-on-unstructured-data-5da7/273592670","userLogin":"chloewilliams62","userName":"Zilliz ","viewCount":85},{"algorithmId":"4","displayTitle":"MBPS-11-Vahid-Khodabakhshi-Shaparak-Co.pdf","isSavedByCurrentUser":false,"pageCount":48,"score":0,"slideshowId":"273575510","sourceName":"LATEST","strippedTitle":"mbps-11-vahid-khodabakhshi-shaparak-co-pdf","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/mbps-11-vahid-khodabakhshi-shaparak-final-241125061915-84f7a6e2-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"Presentation Title:\n\"Fortifying Banking and Payment Systems: Enhancing Adversarial Resilience and Mitigating Generative AI Bias through Data Poisoning Defense\"\n\nDescription:\nIn this cutting-edge presentation, we delve into the intersection of artificial intelligence, cybersecurity, and financial systems, addressing critical challenges that shape the future of banking and payment infrastructures. With the rapid adoption of AI-driven solutions in fraud detection, credit scoring, and personalized customer services, ensuring the security and ethical application of these technologies has become imperative.\n\nThis session will explore the latest advancements in defending against adversarial threats such as data poisoning and mitigating biases in generative AI models. Attendees will gain insights into robust defense mechanisms, ethical AI principles, and strategies to maintain trust and transparency in AI-powered financial systems.\n\nDesigned for banking and payment professionals, fintech developers, academics, and AI enthusiasts, this presentation offers a comprehensive view of safeguarding AI systems from both technical and ethical vulnerabilities. By attending, participants will enhance their understanding of the complexities of adversarial resilience, learn practical applications of bias mitigation, and discover innovative frameworks to ensure equitable and secure AI integration in the financial domain.\n\nKey Highlights:\n\n- The critical impact of data poisoning on AI-driven banking and payment systems.\n- Methods to fortify adversarial resilience in federated learning environments.\n- Strategies for identifying and mitigating generative AI biases.\n- Real-world examples and their implications for fraud detection, credit assessment, and personalized banking services.\n- Ethical considerations and the importance of transparency, fairness, and human-centered AI design.\n\nThis presentation represents the forefront of research and practice in secure and ethical AI, offering attendees actionable insights to navigate the evolving landscape of artificial intelligence in banking and payment systems.\n\nhttps://www.linkedin.com/in/vahld/ ","tags":["ai bias mitigation","data poisoning defense","federated learning"],"url":"https://www.slideshare.net/slideshow/mbps-11-vahid-khodabakhshi-shaparak-co-pdf/273575510","userLogin":"hidex391","userName":"hidex391","viewCount":233},{"algorithmId":"4","displayTitle":"Migliorare la Developer Experience in un mondo Cloud Native","isSavedByCurrentUser":false,"pageCount":79,"score":0,"slideshowId":"273706401","sourceName":"LATEST","strippedTitle":"migliorare-la-developer-experience-in-un-mondo-cloud-native","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/241127-bolognafirenze-migliorareladeveloperexperienceinunmondocloudnative60m-241129093547-e91729e2-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"Sei pronto a rivoluzionare la tua Developer Experience? Scopri come Platform Engineering e AI RAG possono semplificare e potenziare il lavoro di dev e ops in ambienti cloud-native!","tags":["developer","developerexperience","rag"],"url":"https://www.slideshare.net/slideshow/migliorare-la-developer-experience-in-un-mondo-cloud-native/273706401","userLogin":"commitsoftware","userName":"Commit University","viewCount":37},{"algorithmId":"4","displayTitle":"Algebraic-Structures with one operation as well as two operations and its var...","isSavedByCurrentUser":false,"pageCount":53,"score":0,"slideshowId":"273556860","sourceName":"LATEST","strippedTitle":"algebraic-structures-with-one-operation-as-well-as-two-operations-and-its-variations-like-semigru","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/algebraic-structures-final-241124084652-8b3d5bfb-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"understand algebraic structure, semigroup, monoid ,group and various solved examples","tags":[],"url":"https://www.slideshare.net/slideshow/algebraic-structures-with-one-operation-as-well-as-two-operations-and-its-variations-like-semigru/273556860","userLogin":"rajanimandhare80","userName":"rajanimandhare80","viewCount":115},{"algorithmId":"4","displayTitle":"CollabDays Hungary 2024 - Discovering Process Mining and Task Mining with Pow...","isSavedByCurrentUser":false,"pageCount":45,"score":0,"slideshowId":"273673266","sourceName":"LATEST","strippedTitle":"collabdays-hungary-2024-discovering-process-mining-and-task-mining-with-power-automate-pptx","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/collabdayshungary2024-discoveringprocessminingandtaskminingwithpowerautomate-241128093544-492b7871-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"Have you ever considered the complexity of your business processes, amplified by the constant arrival of new tools? This 45-minute session will shed light on process mining and task mining, essential techniques for understanding and optimizing your processes before considering automation. Through detailed demonstrations and practical case studies, discover how Power Automate can help you analyze and improve your processes, identify bottlenecks, and maximize the efficiency and compliance of your operations.\r\n\r\nTakeaways:\r\n- Learn to break down and analyze your business processes to identify value points and inefficiencies.\r\n- Discover how to use Power Automate for process mining and task mining to optimize your workflows.\r\n- Understand the importance of prior analysis for successful and sustainable process automation.","tags":["powerautomate","processmining","taskmining"],"url":"https://www.slideshare.net/slideshow/collabdays-hungary-2024-discovering-process-mining-and-task-mining-with-power-automate-pptx/273673266","userLogin":"ngeorgeault","userName":"Nicolas Georgeault","viewCount":34},{"algorithmId":"4","displayTitle":"Innovation and Patient-Centric Design Revolutionize Healthcare Web Developmen...","isSavedByCurrentUser":false,"pageCount":9,"score":0,"slideshowId":"273579469","sourceName":"LATEST","strippedTitle":"innovation-and-patient-centric-design-revolutionize-healthcare-web-development-pdf","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/innovationandpatient-centricdesignrevolutionizehealthcarewebdevelopment-241125091011-52420f82-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"Discover how innovation and patient-centric design are transforming healthcare web development, delivering seamless user experiences, improved accessibility, and personalized care solutions. Read More","tags":["website development company","helathcare web development","healthacre web application"],"url":"https://www.slideshare.net/slideshow/innovation-and-patient-centric-design-revolutionize-healthcare-web-development-pdf/273579469","userLogin":"SeasiaInfotech2","userName":"SeasiaInfotech2","viewCount":41},{"algorithmId":"4","displayTitle":"SELinux Policy Management in RHEL - RHCSA+.pdf","isSavedByCurrentUser":false,"pageCount":13,"score":0,"slideshowId":"273668272","sourceName":"LATEST","strippedTitle":"selinux-policy-management-in-rhel-rhcsa-pdf","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/selinuxpolicymanagement-rhcsa-241128061242-cd7ede1b-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"Slides on how to manage SELinux policy - RHCSA+\n","tags":["rhcsa","rhcsa exam","red hat"],"url":"https://www.slideshare.net/slideshow/selinux-policy-management-in-rhel-rhcsa-pdf/273668272","userLogin":"support8872","userName":"RHCSA Guru","viewCount":39},{"algorithmId":"4","displayTitle":"PILLOW TEMPLATE - 016 SEMINAR PROPOSAL ARSITEKTUR-1.pptx","isSavedByCurrentUser":false,"pageCount":17,"score":0,"slideshowId":"273571376","sourceName":"LATEST","strippedTitle":"pillow-template-016-seminar-proposal-arsitektur-1-pptx","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/pillowtemplate-016seminarproposalarsitektur-1-241125033035-f5a9b9e1-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"PILLOW TEMPLATE - 016 SEMINAR PROPOSAL ARSITEKTUR","tags":[],"url":"https://www.slideshare.net/slideshow/pillow-template-016-seminar-proposal-arsitektur-1-pptx/273571376","userLogin":"escitsinaga248","userName":"escitsinaga248","viewCount":44},{"algorithmId":"4","displayTitle":"Unit One -Programming Languages(Programming Logic and Techniques)","isSavedByCurrentUser":false,"pageCount":43,"score":0,"slideshowId":"273739783","sourceName":"LATEST","strippedTitle":"unit-one-programming-languages-programming-logic-and-techniques","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/unit1-241130205046-c2b0d118-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"In the world of computing, programming languages are the tools we use to communicate with machines and instruct them on performing tasks. Whether you’re developing software, creating websites, or designing mobile apps, a strong understanding of programming languages is crucial. This blog explores the fundamentals of programming languages, their characteristics, and the key concepts that every aspiring programmer should know.","tags":["programming language","plt","programming logic and techniqu"],"url":"https://www.slideshare.net/slideshow/unit-one-programming-languages-programming-logic-and-techniques/273739783","userLogin":"NabinDhakal8","userName":"Nabin Dhakal","viewCount":35},{"algorithmId":"4","displayTitle":"Sitecore XM Cloud Personalization vs Sitecore Personalize","isSavedByCurrentUser":false,"pageCount":26,"score":0,"slideshowId":"273687310","sourceName":"LATEST","strippedTitle":"sitecore-xm-cloud-personalization-vs-sitecore-personalize","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/sugcon2024-241128182009-d28c2bff-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"Dive into the world of personalization with a focused comparison between XM Cloud's Embedded Personalization and Sitecore Personalize. Feeling overwhelmed by the array of options in Sitecore? This session acts as your guide, helping you understand the nuances between these two powerful tools.\nWe'll kick things off by dissecting XM Cloud's embedded personalization capabilities, highlighting its user-friendly interface and seamless integration with Pages. Learn how to effortlessly create targeted experiences and preview content for different audiences, all within the familiar Sitecore environment.\nThen, we'll unravel the complexities of Sitecore Personalize, showcasing its advanced features such as custom rules, A/B testing, and real-time personalization at the component level. Witness firsthand how Sitecore Personalize empowers you to craft dynamic journeys that captivate your audience.\nAs we compare these tools head-to-head, we'll address the crucial question of when and why to choose each. Armed with a clear decision-making framework, you'll gain insights into selecting the ideal tool based on your project goals and budget constraints. Discover how to harness the combined power of XM Cloud and Sitecore Personalize to elevate your personalization strategy to new heights.\nWhether you're a seasoned marketer or a savvy developer, this session offers valuable insights to help you personalize like a pro with Sitecore. By the end, you'll be equipped to make informed decisions, craft compelling experiences, and drive meaningful engagement and conversions.\n","tags":["sitecore","xmcloud","sugcon"],"url":"https://www.slideshare.net/slideshow/sitecore-xm-cloud-personalization-vs-sitecore-personalize/273687310","userLogin":"PriyankaGulia7","userName":"PriyankaGulia7","viewCount":19},{"algorithmId":"4","displayTitle":"The UX of DX (Write the Docs 2024) - Theresa Neate.pdf","isSavedByCurrentUser":false,"pageCount":39,"score":0,"slideshowId":"273693629","sourceName":"LATEST","strippedTitle":"the-ux-of-dx-write-the-docs-2024-theresa-neate-pdf","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/theuxofdxwritethedocs2024-theresaneate-241129000624-63ccfc15-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"In this talk I discuss with you what Developer Experience (DX) is and how it draws directly from User Experience (UX) guidelines and principles. It is beautiful and intuitive and a joy to experience, very much like excellent documentation.\n\nAs technical documentarians, you are also developer advocates. You advocate TO developers and FOR developers. You have the privilege of contributing directly to developers’ experience (DX), not only with your documentation but also with their experience and perception of the wider product, system or tool the documentation supports.\n\nWhile we say in UX “Don’t Make me Think”, we in fact always think. When Daniel Kahneman talks about “Thinking Fast and Slow”, it is your users’ Thinking Fast system that shapes the developer experience of your product and its documentation.\n\nWhat then, do Thinking Fast and Don’t Make me Think, have in common? And how do these connect with UX, DX and documentation?","tags":["user experience","developer experience","writing"],"url":"https://www.slideshare.net/slideshow/the-ux-of-dx-write-the-docs-2024-theresa-neate-pdf/273693629","userLogin":"TheresaNeate","userName":"Theresa Neate","viewCount":39},{"algorithmId":"4","displayTitle":"Cyber Resilience and Critical Information Infrastructure Singapore Case Studi...","isSavedByCurrentUser":false,"pageCount":31,"score":0,"slideshowId":"273628203","sourceName":"LATEST","strippedTitle":"cyber-resilience-and-critical-information-infrastructure-singapore-case-studies-ajccbc-2024-pdf","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/cyberresilienceandcriticalinformationinfrastructuresingaporecasestudiesajccbc2024-241127005219-f16d345e-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"Cyber Resilient Ecosystems and \u000bCritical Information Infrastructure – Singapore Case Studies\nFor ASEAN Japan Cybersecurity Capacity Building Centre by Benjamin Ang\nHead, Centre of Excellence for National Security\u000bRSIS, Nanyang Technological University, Singapore\nContent\nASEAN Government Commitment\nEcosystem Building\nCritical Information Infrastructure\nISACs and Information Sharing \nOT Cybersecurity\nASEAN Government Committment\nASEAN Ministerial Conference on Cybersecurity\u000b\nNorms Implementation Checklist process\nRegional Action Plan (RAP) Matrix Format\nRAP Simple Format\nEcosystem Building\nSingapore Cybersecurity Strategy 2021\nEcosystem Building\nExamples of Ecosystem Building\nPartner with Industry, IHLs, and professional associations to support \nYouth (Cyber Youth Singapore, SG Cyber Youth)\nWomen (SG Cyber Women) and \nMid-career professionals (Skills Future)\nUpskilling culture\nMore career pathways\nCritical Information Infrastructure\n11 Sectors of \u000bCritical Information Infrastructure\nProtect Our Critical Infrastructure\nCII Protection Programme for government agencies and CII operators\nEnable information exchange among CII operators\nMeasure governance maturity and cyber hygiene\nBuild culture of cyber-risks literacy\nPromote security by design\nEnsure supply chain security\nSingapore’s Cybersecurity Act 2018\nDesignates certain systems / organizations as Critical Information Infrastructure (CII)\nAppoints CII Owners and makes them responsible for complying with CSA’s standards, audit, participation in exercises, etc.\nMakes it compulsory for CII Owners to report breaches (still optional for other organizations)\nGives CSA power to enter and take over systems (e.g. seize servers) in serious incidents\nRequires registration of some cyber professionals e.g. penetration testers\nProvided for Cybersecurity Code of Practice for Critical Information Infrastructure (1.0 and 2.0)\n\nExtension of Critical Information Infrastructure\nCybersecurity Act 2018\n11 Critical Sectors\nEnergy, Water, Banking and Finance, Healthcare, Transport (Land, Maritime, Aviation), Infocomm, Media, Security and Emergency Services, Government\n\nCybersecurity Act 2024\nCII outside the country\nSTCC: Systems of Temporary Cybersecurity Concern\nESCI: Entities of Special Cybersecurity Interest\nFDI: Foundational Digital Infrastructure\n\nSTCC: Systems of Temporary \u000bCybersecurity Concern\nESCI: Entities of Special \u000bCybersecurity Interest\nFDI: Foundational Digital Infrastructure\nISACs and Information Sharing\nSingapore OT-ISAC\nSingapore collaborated with the Global Resilience Federation Asia Pacific (GRF APAC) to launch the OT Cybersecurity Information Sharing and Analysis Center (OT-ISAC) in 2019\nMembers from Government, CII and OT industries\nAreas for Improvement in 2024","tags":["cyber attacks","cybersecurity","critical infrastructure"],"url":"https://www.slideshare.net/slideshow/cyber-resilience-and-critical-information-infrastructure-singapore-case-studies-ajccbc-2024-pdf/273628203","userLogin":"benjaminang","userName":"Benjamin Ang","viewCount":224},{"algorithmId":"4","displayTitle":"Essential guide to 3D digitised heritage: Introduction to 3D","isSavedByCurrentUser":false,"pageCount":54,"score":0,"slideshowId":"273682714","sourceName":"LATEST","strippedTitle":"essential-guide-to-3d-digitised-heritage-introduction-to-3d","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/introto3d13-241128153632-af80626e-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"Webinar delivered by Catherine Anne Cassidy, CARARE's digital skills officer which provides an introduction to digitising cultural heritage in 3D for cultural heritage professionals, students and volunteers. The webinar is the first in a series of 3 developed by CARARE for the 5DCulture project as part of its capacity building activities.\nThis webinar explores the uses of 3D digitisation in cultural heritage, methods for digitisation and things to consider when setting up a project such as the resources and skills required, and object selection and handling. It concludes by introducing topics which will be covered in more detail in the following two webinars including standards, metadata, rights and licences, archiving and re-use of 3D content in various applications (online, in print, in stories, creative projects and so on).","tags":["carare","5dculture","3d"],"url":"https://www.slideshare.net/slideshow/essential-guide-to-3d-digitised-heritage-introduction-to-3d/273682714","userLogin":"CARARE","userName":"CARARE","viewCount":156},{"algorithmId":"4","displayTitle":"Will Oracle 23ai make you a better DBA or Developer?","isSavedByCurrentUser":false,"pageCount":50,"score":0,"slideshowId":"273595389","sourceName":"LATEST","strippedTitle":"will-oracle-23ai-make-you-a-better-dba-or-developer","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/keynote-yatra-jul2024withrusslowenthal-241125222324-9c5ec5ed-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"Oracle Database 23ai was released, and it is a groundbreaking database release. Oracle has many advantages and combines everything into one database, whereas others need separate environments. But how will this impact the daily work of DBAs and Developers? Will this make you a better DBA or Developer, or will \"AI\" just make you obsolete? What are the plans and strategies? And how does this interact with the \"cloud\"?\n\nDBAs and Developers, you are the backbone of the IT industry. Nothing functions without your expertise. We want to assure you that with the advent of AI in the database, your roles will only become more crucial. We will demonstrate how everyone can benefit and how your daily work may evolve. Most importantly, we will guide you on what needs to be done.\n\nLearn from two Oracle experts how we see the future - and why Oracle DBAs and Developers run the world.","tags":["oracle ahf","tfa","exachk"],"url":"https://www.slideshare.net/slideshow/will-oracle-23ai-make-you-a-better-dba-or-developer/273595389","userLogin":"SandeshRao4","userName":"Sandesh Rao","viewCount":29},{"algorithmId":"4","displayTitle":"Explainable AI (XAI) for college seminar.pptx","isSavedByCurrentUser":false,"pageCount":13,"score":0,"slideshowId":"273543887","sourceName":"LATEST","strippedTitle":"explainable-ai-xai-for-college-seminar-pptx","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/157ankitpandey-241123122426-9a5d4a4b-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"A SEMINAR PRESENTION ON XAI","tags":["xai ml lime shap pdp"],"url":"https://www.slideshare.net/slideshow/explainable-ai-xai-for-college-seminar-pptx/273543887","userLogin":"birji2302","userName":"birji2302","viewCount":35},{"algorithmId":"4","displayTitle":"Artefactual AtoM Priorities November 2024","isSavedByCurrentUser":false,"pageCount":7,"score":0,"slideshowId":"273591809","sourceName":"LATEST","strippedTitle":"artefactual-atom-priorities-november-2024","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/artefactual-atom-priorities-november-2024-241125183645-1d5c0bf7-thumbnail.jpg?width=600\u0026height=600\u0026fit=bounds","description":"Artefactual update November 2024 about AtoM plans and current roadmap","tags":[],"url":"https://www.slideshare.net/slideshow/artefactual-atom-priorities-november-2024/273591809","userLogin":"accesstomemory","userName":"Artefactual Systems - AtoM","viewCount":134}]},"secretUrl":"BDYu4G7x5RFheV","shouldShowAds":true,"slides":{"host":"https://image.slidesharecdn.com","title":"Lambda-less-Stream-Processing-Scale-in-LinkedIn","imageLocation":"june29500linkedinpanv2-160711182729","imageSizes":[{"quality":85,"width":320,"format":"jpg"},{"quality":85,"width":638,"format":"jpg"},{"quality":75,"width":2048,"format":"webp"}]},"smsShareUrl":"sms:?body=Check out this SlideShare : https://www.slideshare.net/slideshow/lambdaless-stream-processing-scale-in-linkedin/63921306","strippedTitle":"lambdaless-stream-processing-scale-in-linkedin","thumbnail":"https://cdn.slidesharecdn.com/ss_thumbnails/june29500linkedinpanv2-160711182729-thumbnail.jpg?width=640\u0026height=640\u0026fit=bounds","title":"Lambda-less Stream Processing @Scale in LinkedIn ","totalSlides":38,"transcript":["Lambda-less Stream Processing\n@Scale in LinkedIn\nYi Pan (Apache Samza PMC/Committer)\nKartik Paramasivam (Mgr -Streams Infra)\nJune, 2016\n ","Agenda\n• Rise of Stream Processing Applications\n• Some Hard Problems in Stream Processing\n–Data Accuracy\n–Reprocessing\n• Conclusion\n ","Newsfeed\n ","Cyber-security\n ","Internet of Things\n ","Agenda\n• Rise of Stream Processing Applications\n• Some Hard Problems in Stream Processing\n–Data Accuracy\n–Reprocessing\n• Conclusion\n ","Data Accuracy\n• Can Stream Processing generate accurate\nresults?\n–Yes.. but it is not trivial.\n ","Case Study\nAds\nHTML\n1:00pm\nAdViewEvents\nAdQuality processor\n ","Case Study\nAds\nHTML\n1:01pm\nAdViewEvents\nAdQuality processor\nAdClickEvents\n ","Case Study\nAds\nHTML\n1:01pm\nAdViewEvents\nAdQuality processor\nAdClickEvents\nDid AdClick\nhappen\nwithin 2min\nof AdView?\nYesNo\nGood AdBad Ad\n ","Delays in Event\nStream\nAd Quality\nProcessor\n(Samza)\nServices Tier\nKafka\nServices Tier\nAd Quality\nProcessor\n(Samza)\nKafkaMirrored\nYi\nDATACENTER 1 DATACENTER 2\nAdViewEvent\nLB\n ","Real Time\nProcessing\n(Samza)\nServices Tier\nKafka\nServices Tier\nReal Time\nProcessing\n(Samza)\nKafkaMirrored\nYi\nDATACENTER 1 DATACENTER 2\nAdClick Event\nLB\nDelays in Event\nStream\nLate\nArrival\n ","Real Time\nProcessing\n(Samza)\nServices Tier\nKafka\nServices Tier\nReal Time\nProcessing\n(Samza)\nKafkaMirrored\nYi\nDATACENTER 1 DATACENTER 2\nAdClick Event\nLB\nDelays in Event\nstream\nOut of\nOrder\nArrival\n ","Lambda at\nLinkedIn\nReal Time\nProcessing\n(Samza)\nBatch\nProcessing\n(Hadoop/Spark)\nVoldem\nort R/O\nProcessing\nBulk\nupload\nEspresso\nServices Tier\nIngestion Serving\nClients(browser,devices,..)\nKafka\n ","• Basic Assumption : Batch jobs have full data-\nset\n• But, how about edges?\nData Accuracy - with Lambda\nSmaller batch size == more edges!\nGraph kudos to Stream Processing 101 from Tyler Akidau\n(https://www.oreilly.com/ideas/the-world-beyond-batch-streaming-101)\n10:00 11:00 12:00 13:00 system time\n ","Fixing Lambda\nReal Time\nProcessing\n(Samza)\nBatch\nProcessing\n(Hadoop/Spark)\nVoldemort\nR/O\nProcessing\nBulk\nupload\nEspresso\nServices Tier\nIngestion Serving\nClients(browser,devices, ….)\nKafka\nKafka\nAudit\nCheck\nSafe Start\nTime\n ","Observation\n• Data Accuracy is still very hard with Lambda\n–Additional system (e.g. Kafka Audit) has to be\nused to safely start the batch jobs\n• Duplication in Online/Offline system:\n–Development cost\n–Operational overhead\n–Maintenance overhead\n ","Going Lambda-less\n• Handle late arrivals and out of order arrivals\n• Eventually correct results\n– Compute results at end of ‘window’.\n– Re-compute when events arrives late\n• Influenced by “Google MillWheel”\n ","Going Lambda-less\nAdViewEvent\nAdClickEvent\nAdQuality processor\n1:00pm1:01pm1:01pm1:02pm1:02pm\n1:00pm1:02pm\nWindow output is computed at the end of\nwindow = (2min after the window is created)\nwindow(“1:00pm”, “2min”)\nKafka\nKafka\n ","Handling ‘late arrival’\n1:00pm1:01pm1:01pm1:02pm1:02pm\n1:00pm1:02pm\n1:01pm\nLate-arrival\nRe-compute\nwindow(“1:00pm”, “2min”)\nKafka\nKafka\nAdViewEvent\nAdClickEvent\nAdQuality processor\n ","Handling ‘out of order arrival’\n1:01pm1:02pm\n1:00pm1:02pm\nnull join result in\nwindow(“1:00pm”, “2min”)\nKafka\nKafka\nAdViewEvent\nAdClickEvent\nAdQuality processor\n ","Handling ‘out of order arrival’\n1:01pm1:02pm1:00pm1:01pm\n1:00pm1:02pm\nRe-compute\nwindow(“1:00pm”, “2min”)\nOut-of-order arrival\nKafka\nKafka\nAdViewEvent\nAdClickEvent\nAdQuality processor\n ","SamzaContainer-1\nSamza based Solution\nKafka\nAdClicks\nSamzaContainer-0\nTask1\nTask2\nTask3\nAdView\nEvents are saved into RocksDB based local message\nstore which is backed up durably in Kafka\nKafka\nSamza Job\nChangelog\nin Kafka\n ","SamzaContainer-1\nPerformance\nKafka\nAdClicks\nSamzaContainer-0\nTask1\nTask2\nTask3\nAdView\nPerformance of Samza’s local RocksDB store:\n- 1.1 Million TPS (read/write) on single machine (ssd)\n- Largest production job has 1.5 Terabyte of local state\nKafka\nSamza Job\nChangelog\nin Kafka\n ","Agenda\n• Rise of Stream Processing Applications\n• Some Hard Problems in Stream Processing\n– Data Accuracy\n–Reprocessing\n• Conclusion\n ","Reprocessing\n• What is reprocessing ?\n–Process events that happened in the past.\n ","Case Study : Title Standardization\nLinkedIn\nProfile\nchange ‘Title’ :\nBefore: Architect\nAfter: Chief\nTechnology\nNerd\nTitle\nStandardizer\nSearch Ads ….\n ","Title Standardizer -\nImplementation\noutput\nMember\nDatabase\n(espresso)\nProfile\nUpdates\n(Samza) Title-\nStandardizer\nMachine Learning\nmodel\nKafka\nDatabus\n ","Reprocessing - dealing with bugs\noutput\nMember\nDatabase\n(espresso)\nProfile\nUpdates\n(Samza) Title-\nStandardizer\nKafka\nDatabus\nrewind 4 hours\nMachine Learning\nmodel\n ","Reprocessing - entire Dataset\noutput\nMember\nDatabase\n(espresso)\nProfile\nUpdates\n(Samza) Title-\nStandardizer\nKafka\nDatabus\nBootstrap\nBackup\nDatabase\nBackup\n(NFS)\nset offset=0\nMachine Learning\nmodel (NEW)\n ","Reprocessing - entire Dataset\nProfile\nUpdates\n(Samza) Title-\nStandardizer\n(Samza) Title-\nStandardizer\nBootstrap\nBackup Machine Learning\nmodel (NEW)\noutput\nKafka\nDatabus\nDatabus\nMember\nDatabase\n(espresso)\nDatabase\nBackup\n(NFS)\nset offset=0\n ","Reprocessing - entire Dataset\nProfile\nUpdates\n(Samza) Title-\nStandardizer\n(Samza) Title-\nStandardizer\nBootstrapBackup\nMachine Learning\nmodel (NEW)\noutput\nKafka\nDatabus\nDatabus\n(Samza)\nMerge and\nStore\nResults\n ","Reprocessing- Caveats\n• Stream processors are fast.. They can DOS the\nsystem if you reprocess\n– Control max-concurrency of your job\n– Quotas for Kafka, Databases\n• Reprocessing a 100 TB source ?\n–Capacity ?\n–Saturation of NICs, Top of rack switches\n ","Reprocessing larger datasets\nProfile\nUpdates\n(Samza) Title-\nStandardizer\nMachine Learning\nmodel\noutput\nKafka\nDatabus\n(Samza)\nMerge and\nStore\nResults\nDatabase\nDump in\nHDFS\n(Samza) Title-\nStandardizer\nML Model in\nHDFS\nHadoop\n ","Experimentation\nDatabase\nDump in HDFS\n(Samza) Title-\nStandardizer\nHadoop\nML Model in\nHDFS\nOutput in HDFS\n● Offline experimentation before pushing the logic online\n○ Most datasets are already available in Hadoop (at LinkedIn)\n○ Fast Iteration with minimum impact to production\n ","Conclusion\n1.It is possible to avoid code\nduplication(hot/cold path) to support\n– Accuracy\n–Reprocessing\n2. Some Lambda related problems still linger\nwhen reprocessing entire datasets\n–e.g. merging online/reprocessing results\n ","References\n• MillWheel: http://research.google.com/pubs/pub41378.html\n• DataFlow: http://research.google.com/pubs/pub41378.html\n• Samza: http://samza.apache.org/\n• Window Operator in Samza: https://issues.apache.org/jira/browse/SAMZA-552\n• Lambda Architecture: https://www.manning.com/books/big-data\n• Stream Processing 101: https://www.oreilly.com/ideas/the-world-beyond-batch-\nstreaming-101\n• Stream Processing 102: https://www.oreilly.com/ideas/the-world-beyond-batch-\nstreaming-102\n ","Thank You!\n "],"twitterShareUrl":"https://twitter.com/intent/tweet?via=SlideShare\u0026text=Lambda-less+Stream+Processing+%40Scale+in+LinkedIn++by+%40hadoopsummit+%23hadoopsummit+https%3A%2F%2Fwww.slideshare.net%2Fslideshow%2Flambdaless-stream-processing-scale-in-linkedin%2F63921306","type":"presentation","slideDimensions":{"height":405,"width":720},"topReadSlides":[],"user":{"id":"102722397","isFollowing":false,"login":"HadoopSummit","name":"DataWorks Summit/Hadoop Summit","occupation":"","organization":"DataWorks Summit/Hadoop Summit","photo":"https://cdn.slidesharecdn.com/profile-photo-HadoopSummit-48x48.jpg?cb=1596126793","photoExists":true,"shortName":"DataWorks Summit/Hadoop Summit"},"views":2429},"_nextI18Next":{"initialI18nStore":{"en":{"common":{"ad":{"fallbackText":"Ad for Scribd subscription","label":"Ad","close":"Close Ad","dismiss_in":"Dismiss in","ad_info_title":"Why are you seeing this?","ad_info_description":"We use ads to keep content free and accessible for everyone. You can remove them by \u003c2\u003esigning up\u003c/2\u003e for a SlideShare subscription."},"error":{"favorite_add":"We couldn't add SlideShare to favorites","favorite_remove":"We couldn't remove SlideShare from favorites","follow":"There was a problem following this user","unfollow":"There was a problem un-following this user","save":"Unable to save this item at this time.","remove_save":"We couldn't remove from your saved items"},"header":{"hamburger_menu_aria_label":"Open navigation menu","logo":{"alt":"SlideShare a Scribd company logo","title":"Return to the homepage"},"home":"Home","explore":"Explore","search":{"placeholder":"Search","aria_label":"Search SlideShare","button":"Submit Search"},"upload":"Upload","login":"Login","signup":{"label":"Download free for 30 days","title":"Signup now for a SlideShare account"},"user":{"aria_label":"User Settings","clipboards":"My Clipboards","uploads":"My Uploads","analytics":"Analytics","settings":"Account Settings","support":"Support","logout":"Logout"}},"footer":{"link":{"about":"About","support":"Support","terms":"Terms","privacy":"Privacy","copyright":"Copyright","cookie":"Cookie Preferences","privacyRights":"Do not sell or share my personal information"},"language_selector":{"aria_label":"Change Language","hidden_text":"Current Language"},"copyright":"SlideShare from Scribd","social":{"rss":{"aria_label":"Slideshare on RSS Feed","title":"RSS"},"twitter":{"aria_label":"Slideshare on Twitter","title":"Twitter"}}},"app_notification_banner":{"notification_text":"We've updated our privacy policy.","notification_link_text_desktop":"Click here to review the details.","notification_link_text_mobile":"Tap here to review the details."},"privacy_policy_explicit_opt_in_modal":{"modal_title":"We've updated our privacy policy.","modal_content_paragraph_one":"We’ve updated our privacy policy so that we are compliant with changing global privacy regulations and to provide you with insight into the limited ways in which we use your data.","modal_content_paragraph_two":"You can read the details below. By accepting, you agree to the updated privacy policy.","modal_content_paragraph_three":"Thank you!","modal_action_assertive":"Accept and continue","modal_action":"View updated privacy policy","modal_action_error":"We've encountered a problem, please try again."},"actions":{"addToSaved":"Save for later","all_saved":"All Saved","back":"Back","close":"Close","cancel":"Cancel","save":"Save","saved":"Saved","submit":"Submit","next":"Next","previous":"Previous","removeSaved":"Remove from saved","scrollLeft":"Scroll Left","scrollRight":"Scroll Right","save_to_new_list_success":"Saved to "},"form":{"required":"Required"},"slideshow_card":{"slideshow_type":{"document":"Document","infographic":"Infographic","presentation":"Presentation","documents":"Documents","infographics":"Infographics","presentations":"Presentations","downloads":"Downloads","likes":"Likes"},"slideshow_type_unit":{"presentation":"Slide","document":"Page","infographic":"Page"},"pages_count_one":"{{count}} page","pages_count_other":"{{count}} pages","slides_count_one":"{{count}} slide","slides_count_other":"{{count}} slides","screen_reader_text":"{{title}} by {{author}}","screen_reader_text_extended":"{{title}} by {{author}}, has {{slideCount}} slides with {{viewCount}} views.","view_one":"view","view_other":"views"},"image_alt":{"studying":"Abstract image of a woman sitting on books and studying on a laptop"},"items":{"count_one":"{{count}} item","count_other":"{{count}} items"},"time":{"second_one":"{{count}} second","second_other":"{{count}} seconds"},"timeSince":{"minutes_ago":"{{count}} min. ago","hours_ago_one":"{{count}} hour ago","hours_ago_other":"{{count}} hours ago","days_ago_one":"{{count}} day ago","days_ago_other":"{{count}} days ago","months_ago_one":"{{count}} month ago","months_ago_other":"{{count}} months ago","years_ago_one":"{{count}} year ago","years_ago_other":"{{count}} years ago"},"see_more":"See more","see_less":"See Less","yes":"Yes","no":"No","signup":"Sign Up"},"player":{"actions":{"all_saved":"All Saved","clip":"Clip Slide","copy_text":"Copy text","copy_text_success":"Text copied to clipboard","copy_text_error":"Failed to copy the text. Please try again!","download_presentation":"Download presentation","download_slide":"Download slide","download_document":"Download document","download_page":"Download page","download_now":"Download now","download":"Download","favorite":"Favorite","remove_favorite":"Remove favorite","remove_like":"Remove like","like":"Like","follow":"Follow","unfollow":"Unfollow","more_options":"More options","share":"Share","save_slide":"Save slide","saved":"Saved","remove_from_list":"Remove from list {{listname}}","removed_from_list":"Saved item has been removed from the List","removed_from_list_error":"Could not remove the saved item from list","save_error":"Unable to save this item at this time.","save_to_new_list":"New list","save_to_list":"Save to list {{listname}}","scroll_view":"Scroll view","scroll_view_description":"Vertically scroll through all slides","slideshow_view":"Slideshow view","slideshow_view_description":"View one slide at a time","no_saved_lists":"You don't have any lists created yet."},"ads":{"label":"Ad","skip":"Skip to next slide","skip_countdown":"You can skip to the next slide in","continue_in":"Continue in","change_volume":"Change Volume","download_read_ad_free":"Download to read ad-free","scroll":"Scroll to read more"},"ad_block_interstitial":{"title_1":"Keep SlideShare free —","title_2":"please disable your ad blocker.","button_label":"Show me how","message":"Hate ads? Join Scribd to browse SlideShare and Scribd ad-free.","cta":"Try Scribd for free"},"author":{"by":"by","follow":"Follow","following":"Following","keynoteAuthor":"Keynote Author"},"download":{"success":"Your SlideShare is downloading."},"editors_notes":"Editor's Notes","end_of_reading":{"loading":"Loading in","title":"Check these out next","next_slideshares":"Next SlideShares","upcoming_slideshare":"Upcoming SlideShare"},"first_clip":{"title":"You just clipped your first slide!","description":"Clipping is a handy way to collect important slides you want to go back to later. Now customize the name of a clipboard to store your clips."},"metadata":{"at":"at","aiTag":{"descriptionLabel":"AI-enhanced description","descriptionTooltipTitle":"AI-Enhanced Description","descriptionTooltip":"Leveraging AI technology, we've optimized the description for improved clarity.","titleLabel":"AI-enhanced title","titleTooltipTitle":"AI-Enhanced Title","titleTooltip":"Leveraging AI technology, we've optimized the title for improved clarity.","titleAndDescriptionLabel":"AI-enhanced title and description","titleAndDescriptionTooltipTitle":"AI-Enhanced Title and Description","titleAndDescriptionTooltip":"Leveraging AI technology, we've optimized the title and description for improved clarity."},"download":{"bottomSheetTitle":"Download format","label_short":"Download","label":"Download now","description":"Download to read offline","download_count":"Downloaded {{count}} times"},"download_as":"Download as {{formatTypes}}","free_download":"Free Download","readMore":"Read more","readLess":"Read less","more":"more","category":{"label":"Category","description":"View the featured presentations, documents and infographics in the"},"dateFormat":"MMM. D, YYYY","most_read":"Most read","pages":"Pages","page":"Page"},"navigation":{"next_slide":"Next Slide","previous_slide":"Previous Slide","slide_count_of_total_count":"\u003cspan data-cy='current-slide-number' class='current-slide-number j-current-slide'\u003e{{slideCount}}\u003c/span\u003e of \u003cspan class='total-slides j-total-slides'\u003e{{totalCount}}\u003c/span\u003e","view_fullscreen":"View Fullscreen","zoom_in":"Zoom In","zoom_out":"Zoom Out"},"new_clipboard_modal":{"title":"Create a clipboard","name":{"label":"Name","placeholder":"Best of Slides","error":"Name cannot be blank"},"description":{"label":"Description","placeholder":"Add a brief description so other know what your clipboard is about."},"visibility":{"label":"Visibility","description":"Others can see my Clipboard"}},"select_clipboard_modal":{"title":"Select a clipboard","message":"Looks like you've already clipped this slide","button":"Create a clipboard"},"share":"Share SlideShare","rec":{"related":"Related slideshows","recommended_for_you":"Recommended for you","descTooltipTitle":"About the slideshow","recommended":{"title":"Recommended","shortTitle":"Recommended"},"relatedContent":{"title":"More Related Content","shortTitle":"More Related Content"},"featured":{"title":"Featured","shortTitle":"Featured"},"forYou":{"title":"Slideshows for you","shortTitle":"Slideshows for you"},"alsoLiked":{"title":"Viewers also liked","shortTitle":"Viewers also liked"},"latest":{"title":"Recently uploaded","shortTitle":"Recently uploaded"},"moreFromUser":{"title":"More from {{name}}","shortTitle":"More from uploader"},"similarTo":{"title":"Similar to {{title}}","shortTitle":"Similar to"},"whatsHot":{"title":"What's hot","shortTitle":"What's hot"}},"scribd":{"books":{"label":"Ebook","title":"Related Books"},"audioBooks":{"label":"Audiobook","title":"Related Audiobooks"},"error":{"title":"Oops! Something went wrong.","description":"We're sorry, but we can't find any related content at this time.","button":"Try again"},"freeWithTrial":"Free with a 30 day trial from {{brand}}","viewAll":"View All"},"error":{"clipboard":"We couldn't create your clipboard","save":"We couldn't save this item","unsave":"We couldn't remove from your saved items","blocked":"This user has blocked you","private_content":"Private content!","privacy_explanation":"This content has been marked as private by the uploader.","enter_password":"Enter password","file_protected":"This file is password protected.","password_incorrect":"The password is incorrect.","private_presentation":"Private Presentation","private_content_message":"This uploaded file has been marked private by the author. Sorry!","removed_content_title":"Uploaded Content Removed","removed_content_message":"The uploaded content has been removed and is no longer available.","redirect_message":"Redirecting to the homepage in","something_went_wrong_title":"Sorry! The page could not be loaded.","something_went_wrong_message":"This is probably a temporary error. Just refresh the page and retry. If the problem continues, please check back in 5-10 minutes.","not_found_title":"Sorry! We could not find what you were looking for.","not_found_message":"Don't worry, we will help you get to the right place. Are you looking for:"},"save_to_new_list_modal":{"title":"Add to a new list","list_name_input_label":"What would you like to name this list?","list_privacy_label":"Make list private","cancel_button_label":"Cancel","save_list_button_label":"Save","success":"Saved to ","error":"We couldn't save this item to {{listname}}"},"confirm_remove_save_modal":{"title":"This saved item is also in a list.","description":"Removing from saved will also delete the item from your lists","cancel_button_label":"Cancel","delete_button_label":"Delete"},"seo_metadata_test":{"description_suffix":"Download as a PDF or view online for free"}},"metadata":{"gallery_view":"Gallery","gallery_view_label":"Gallery View","like_one":"like","like_other":"likes","likeWithCount_one":"{{count}} like","likeWithCount_other":"{{count}} likes","view_one":"view","view_other":"views","saved_one":"saved","saved_other":"saved","from_embeds":"From embeds","number_of_embeds":"Number of embeds","on_slideshare":"On Slideshare","total_views":"Total views","split_char":",","decimal_point":".","show_more":"Show More","likes":{"empty_message":"Be the first to like this","loading_message":"Loading..."},"slide_one":"slide","slide_other":"slides","slide_count_of_total":"of"},"report":{"more":"More options","share":"Share","report":"Report","edit":"Edit","viewAnalytics":"View Analytics","flag_as_inappropriate":"Report as inappropriate","error":"There was an error while reporting this slideshow. Please try again.","flag":"Flag","copyright_complaint":"Copyright Complaint","select_a_reason":"Select a reason","select_your_reason":"Select your reason for reporting this presentation as inappropriate.","none":"None","porn":"Pornographic","defamatory":"Defamatory","ultraviolence":"Extremely Violent or Promotes Terrorism","hate_speech":"Hate Speech","offensive":"Offensive Language or Threatening","spam":"Spam or Scam","form":{"title":"Report content","description":"If you are the copyright owner of this document and want to report it, please visit the \u003cCustomLink href='example.com'\u003ecopyright infringement notice page\u003c/CustomLink\u003e to submit a report.","error_category":"Select a category to submit your report","error_subtype":"Select a sub-category to submit your report","default_subtype":"Select an option...","category":{"illegal":{"label":"Illegal","description":"Content that breaks the law or promotes illegal activities.","subtypes":{"child_exploitation":"Minor Exploitation","child_sexual_abuse_material":"Child Sexual Abuse","dangerous_products_or_services":"Dangerous Products/Services","non_violent_crime":"Non-Violent Offenses","sex_related_crime":"Sexual Offenses","violent_crime":"Violent Offenses","terrorism":"Terrorism","general":"Other"}},"explicit":{"label":"Explicit","description":"Content that is graphic, offensive, or disturbing.","subtypes":{"sexually_explicit_content":"Sexually Explicit","shocking_content":"Shocking or Disturbing","general":"Other"}},"dangerous_and_deragatory":{"label":"Dangerous \u0026 Derogatory","description":"Content that encourages harmful, threatening, or hateful behavior.","subtypes":{"menacing":"Threatening Behavior","incitement":"Inciting Violence or Hatred","self_harm":"Self-harm","general":"Other"}},"deceptive_and_fraudulent":{"label":"Deceptive \u0026 Fraudulent","description":"Content that intentionally misleads, deceives, or engages in fraudulent activities.","subtypes":{"academic_integrity":"Academic Dishonesty","misinformation":"Spreading False Information","general":"Other"}},"guideline_ignoring":{"label":"Intellectual Property","description":"Content that uses someone else's protected work without permission.","subtypes":{"ip_infringement_copyright":"IP infringement (copyright)","ip_infringement_non_copyright":"IP infringement (non-copyright)","general":"Other"}},"privacy":{"label":"Privacy","description":"Content that misuses personal information.","subtypes":{"privacy_general":"General Privacy","privacy_child":"Child Privacy"}},"spam":{"label":"Spam","description":"Unsolicited and repetitive content that disrupts your experience."},"low_quality":{"label":"Low Quality","description":"Content that fails to meet minimum standards for clarity, relevance, or completeness."}}}},"share_modal":{"close":"Close","embed_title":"Embed","embed_size":"Size (px)","link":"Link","start":"Start on","title":"Share this SlideShare","share_facebook":"Share on Facebook","share_linkedin":"Share on Linkedin","share_twitter":"Tweet on Twitter"},"next_slideshow":{}}},"initialLocale":"en","ns":["common","player","metadata","report","share_modal","next_slideshow"],"userConfig":null},"_sentryTraceData":"b80ccd5d49ae4a0f882a7a505d63a912-586040441b7fdc66-1","_sentryBaggage":"sentry-environment=production,sentry-public_key=7e7cafa2920448ed81ac67de08abbeed,sentry-trace_id=b80ccd5d49ae4a0f882a7a505d63a912,sentry-sample_rate=1,sentry-transaction=%2Fslideshow%2F%5Btitle%5D%2F%5Bid%5D,sentry-sampled=true"},"__N_SSP":true},"page":"/slideshow/[title]/[id]","query":{"title":"lambdaless-stream-processing-scale-in-linkedin","id":"63921306"},"buildId":"45a83e178683d1e132a983d100835d187a679f69","assetPrefix":"https://public.slidesharecdn.com","runtimeConfig":{"assetPrefix":"https://public.slidesharecdn.com"},"isFallback":false,"isExperimentalCompile":false,"gssp":true,"locale":"en","locales":["en","de","es","pt","fr"],"defaultLocale":"en","domainLocales":[{"domain":"www.slideshare.net","defaultLocale":"en"},{"domain":"de.slideshare.net","defaultLocale":"de"},{"domain":"es.slideshare.net","defaultLocale":"es"},{"domain":"pt.slideshare.net","defaultLocale":"pt"},{"domain":"fr.slideshare.net","defaultLocale":"fr"}],"scriptLoader":[]}</script></body></html>