website v2
diff --git a/404.html b/404.html
index b86ff33..5b14a6f 100644
--- a/404.html
+++ b/404.html
@@ -48,4 +48,4 @@
         }
       }
     })
-  </script><title data-react-helmet="true">404: Not found | </title><meta data-react-helmet="true" name="description" content="Apache Limial official site"/><meta data-react-helmet="true" name="image" content="http://liminal.apache.com/logo.png"/><meta data-react-helmet="true" http-equiv="x-ua-compatible" content="IE=edge,chrome=1"/><meta data-react-helmet="true" name="MobileOptimized" content="320"/><meta data-react-helmet="true" name="HandheldFriendly" content="True"/><meta data-react-helmet="true" name="google" content="notranslate"/><meta data-react-helmet="true" name="referrer" content="no-referrer-when-downgrade"/><meta data-react-helmet="true" property="og:url" content="http://liminal.apache.com"/><meta data-react-helmet="true" property="og:type" content="website"/><meta data-react-helmet="true" property="og:title" content="404: Not found | "/><meta data-react-helmet="true" property="og:description" content="Apache Limial official site"/><meta data-react-helmet="true" property="og:locale" content="en"/><meta data-react-helmet="true" property="og:site_name" content=""/><meta data-react-helmet="true" property="og:image" content="http://liminal.apache.com/logo.png"/><meta data-react-helmet="true" property="og:image:secure_url" content="http://liminal.apache.com/logo.png"/><meta data-react-helmet="true" property="og:image:alt" content="Banner"/><meta data-react-helmet="true" property="og:image:type" content="image/png"/><meta data-react-helmet="true" property="og:image:width" content="1200"/><meta data-react-helmet="true" property="og:image:height" content="630"/><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"/><meta data-react-helmet="true" name="twitter:title" content="404: Not found | "/><meta data-react-helmet="true" name="twitter:site" content="@lior.schachter"/><meta data-react-helmet="true" name="twitter:creator" content="@lior.schachter"/><meta data-react-helmet="true" name="twitter:image" content="http://liminal.apache.com/logo.png"/><meta data-react-helmet="true" name="twitter:image:src" content="http://liminal.apache.com/logo.png"/><meta data-react-helmet="true" name="twitter:image:alt" content="Banner"/><meta data-react-helmet="true" name="twitter:image:width" content="1200"/><meta data-react-helmet="true" name="twitter:image:height" content="630"/><script data-react-helmet="true" type="application/ld+json">[{"@context":"http://schema.org","@type":"WebSite","url":"http://liminal.apache.com","name":"404: Not found","alternateName":"Apache Liminal"}]</script><link rel="icon" href="/favicon-32x32.png?v=f730a0b8e533f2d4da7bd901d2b7ab80" type="image/png"/><link rel="manifest" href="/manifest.webmanifest"/><link rel="apple-touch-icon" sizes="48x48" href="/icons/icon-48x48.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="72x72" href="/icons/icon-72x72.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="96x96" href="/icons/icon-96x96.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="144x144" href="/icons/icon-144x144.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="192x192" href="/icons/icon-192x192.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="256x256" href="/icons/icon-256x256.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="384x384" href="/icons/icon-384x384.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="512x512" href="/icons/icon-512x512.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="sitemap" type="application/xml" href="/sitemap.xml"/><link rel="canonical" href="https://rocketdocs.netlify.com/404.html" data-baseprotocol="https:" data-basehost="rocketdocs.netlify.com"/><link as="script" rel="preload" href="/webpack-runtime-e7d4f0c418939174f0da.js"/><link as="script" rel="preload" href="/framework-85aff51d15c28c7fbe5f.js"/><link as="script" rel="preload" href="/f0e45107-ff2c7ac7fae000cceb4b.js"/><link as="script" rel="preload" href="/app-dc092efbd8d9d25365f0.js"/><link as="script" rel="preload" href="/545f34e4-7dfe072c8eed183902e6.js"/><link as="script" rel="preload" href="/5e2a4920-cba84c59a4ec3c5b642e.js"/><link as="script" rel="preload" href="/a7629950cb7a18c7593baf47d0acfe798f1cddc4-4c1232454ad5571a0b75.js"/><link as="script" rel="preload" href="/component---src-pages-404-js-04beac219105c3e149b3.js"/><link as="fetch" rel="preload" href="/page-data/404.html/page-data.json" crossorigin="anonymous"/><link as="fetch" rel="preload" href="/page-data/sq/d/1954253342.json" crossorigin="anonymous"/><link as="fetch" rel="preload" href="/page-data/sq/d/2328931024.json" crossorigin="anonymous"/><link as="fetch" rel="preload" href="/page-data/sq/d/2501019404.json" crossorigin="anonymous"/><link as="fetch" rel="preload" href="/page-data/sq/d/973074209.json" crossorigin="anonymous"/><link as="fetch" rel="preload" href="/page-data/app-data.json" crossorigin="anonymous"/></head><body><div id="___gatsby"><style data-emotion-css="6ifimc">*,*::after,*::before{margin:0;padding:0;box-sizing:border-box;}body{font-size:16px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif;background-color:#FFFFFF;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;overflow-y:scroll;}h1{font-size:32px;color:#3D3D4D;font-weight:bold;margin-bottom:24px;}h2{font-size:24px;}h3{font-size:18px;}h4{font-size:16px;}h2,h3,h4,h5,h6{color:#3D3D4D;margin:24px 0 16px 0;font-weight:bold;}p{color:#6C6C80;font-size:16px;line-height:28px;margin-bottom:16px;font-weight:400;}code.inline-code{display:inline-block;vertical-align:middle;line-height:1;padding:0.2em;background-color:#44475a;color:rgba(248,248,242);font-size:14px;border-radius:3px;font-feature-settings:'clig' 0,'calt' 0;font-variant:no-common-ligatures no-discretionary-ligatures no-historical-ligatures no-contextual;}h1 code.inline-code,h2 code.inline-code{font-size:calc(100% - 5px);padding:4px;}a{color:#6C6C80;font-weight:bold;-webkit-text-decoration:none;text-decoration:none;}a:hover{-webkit-text-decoration:underline;text-decoration:underline;}blockquote{margin-bottom:16px;width:100%;}blockquote p{padding:1rem;border-radius:5px;background:#F2F2FA;color:#6C6C80;margin:0;}hr{border:0;height:0;border-top:1px solid rgba(0,0,0,0.1);border-bottom:1px solid rgba(255,255,255,0.3);}table{border-collapse:separate;border-spacing:0 4px;margin-top:-4px;margin-bottom:16px;width:100%;}table th,table td{margin:0;color:#6C6C80;background-color:#F2F2FA;border:solid 1px #F2F2FA;border-style:solid none;padding:12px;}table th:first-of-type,table td:first-of-type{border-left-style:solid;border-top-left-radius:5px;border-bottom-left-radius:5px;}table th:last-child,table td:last-child{border-right-style:solid;border-bottom-right-radius:5px;border-top-right-radius:5px;}table tr th{color:#3D3D4D;text-align:left;font-weight:bold;}iframe{margin-bottom:16px;}img{max-width:100%;}ul,ol{color:#6C6C80;padding-left:15px;margin-bottom:16px;}ul li,ol li{line-height:28px;}.gatsby-highlight{font-family:Hack,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-variant:no-common-ligatures no-discretionary-ligatures no-historical-ligatures no-contextual;position:relative;z-index:0;margin:0 0 16px 0;overflow:auto;}.gatsby-highlight .token{font-style:normal !important;}pre[class*='language-'] code{font-family:inherit;}pre[class*='language-']::before{background:#d9d7e0;border-radius:0 0 4px 4px;color:#232129;font-size:12px;font-family:inherit;-webkit-letter-spacing:0.075em;-moz-letter-spacing:0.075em;-ms-letter-spacing:0.075em;letter-spacing:0.075em;line-height:1;padding:0.25rem 0.5rem;position:absolute;left:1rem;text-align:right;text-transform:uppercase;top:0;}pre[class~='language-js']::before,pre[class~='language-javascript']::before{content:'js';background:#f7df1e;}pre[class~='language-jsx']::before{content:'jsx';background:#61dafb;}pre[class~='language-typescript']::before,pre[class~='language-ts']::before{content:'ts';background:#294e80;color:#fff;}pre[class~='language-tsx']::before{content:'tsx';background:#294e80;color:#fff;}pre[class~='language-graphql']::before{content:'GraphQL';background:#e10098;color:#fff;}pre[class~='language-html']::before{content:'html';background:#005a9c;color:#fff;}pre[class~='language-css']::before{content:'css';background:#ff9800;color:#fff;}pre[class~='language-mdx']::before{content:'mdx';background:#f9ac00;color:#fff;}pre[class~='language-shell']::before{content:'shell';}pre[class~='language-sh']::before{content:'sh';}pre[class~='language-bash']::before{content:'bash';}pre[class~='language-yaml']::before,pre[class~='language-yml']::before{content:'yaml';background:#ffa8df;}pre[class~='language-markdown']::before{content:'md';}pre[class~='language-json']::before,pre[class~='language-json5']::before{content:'json';background:linen;}pre[class~='language-diff']::before{content:'diff';background:#e6ffed;}pre[class~='language-text']::before{content:'text';background:#fff;}pre[class~='language-flow']::before{content:'flow';background:#e8bd36;}</style><div style="outline:none" tabindex="-1" id="gatsby-focus-wrapper"><style data-emotion-css="7gspsd">.css-7gspsd::after{content:'';position:fixed;width:100%;height:100%;left:0;right:0;bottom:0;background-color:rgba(0,0,0,0.8);z-index:999;display:none;}</style><div aria-label="Close menu" class="css-7gspsd"></div><style data-emotion-css="1i3ij69">.css-1i3ij69{width:100%;max-width:1400px;margin:0 auto;padding:0 24px;display:grid;grid-template-columns:280px calc(100% - 320px);grid-auto-flow:row;grid-gap:40px;}@media (max-width:780px){.css-1i3ij69{padding:24px;grid-template-columns:100%;}}</style><div class="css-1i3ij69 eees1d50"><style data-emotion-css="efco39">.css-efco39{width:100%;overflow-y:auto;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;position:-webkit-sticky;position:sticky;top:0;padding-top:36px;-webkit-transition:-webkit-transform 0.5s;-webkit-transition:transform 0.5s;transition:transform 0.5s;height:calc(100vh - 1px);}.css-efco39 nav{width:100%;padding-top:24px;-webkit-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start;-webkit-flex:1;-ms-flex:1;flex:1;}@media (max-width:780px){.css-efco39{max-width:75%;min-width:auto;z-index:1001;position:fixed;top:0;bottom:0;left:0;padding-top:32px;background:#FFFFFF;-webkit-transform:translate3d( -100%,0,0 );-ms-transform:translate3d( -100%,0,0 );transform:translate3d( -100%,0,0 );}}</style><aside class="css-efco39 e1wh78ri0"><style data-emotion-css="2yrou">.css-2yrou{width:100%;}.css-2yrou a{width:100%;padding-left:30px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}</style><div class="css-2yrou e1wh78ri1"><a aria-label="Go to home page" href="/"><img src="/static/logo-f730a0b8e533f2d4da7bd901d2b7ab80.png" alt="Logo" width="90px" height="80px"/></a></div><nav><style data-emotion-css="mbmci8">.css-mbmci8{list-style:none;width:100%;padding-left:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}</style><ul class="css-mbmci8 e1wh78ri2"><style data-emotion-css="1wldk6c">.css-1wldk6c{font-size:15px;width:100%;-webkit-transition:all 200ms ease-in-out;transition:all 200ms ease-in-out;padding:0 20px;cursor:pointer;}.css-1wldk6c a,.css-1wldk6c span{display:block;font-size:15px;color:#6C6C80;background-color:#FFFFFF;padding:4px 10px;margin:4px 0;border-radius:4px;font-weight:normal;-webkit-text-decoration:none;text-decoration:none;width:100%;height:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;cursor:pointer;margin:0 auto;-webkit-transition:all 0.2s ease;transition:all 0.2s ease;}.css-1wldk6c a svg,.css-1wldk6c span svg{width:20px;height:20px;margin-right:10px;}.css-1wldk6c a:not(.active-link):hover,.css-1wldk6c span:not(.active-link):hover{color:#8257E6;}.css-1wldk6c a.active-link,.css-1wldk6c span.active-link{color:#8257E6;background-color:#F2F2FA;}@media (max-width:780px){.css-1wldk6c a.active-link,.css-1wldk6c span.active-link{background:#F2F2FA;}}</style><li class="css-1wldk6c e1wh78ri4"><a href="/">Introduction</a></li><li class="css-1wldk6c e1wh78ri4"><a href="/usage/arch">Architecture</a></li><li class="css-1wldk6c e1wh78ri4"><a href="https://github.com/apache/incubator-liminal/blob/master/README.md" rel="noopener noreferrer">Getting started<svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" style="width:16px;height:16px;margin-left:10px" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1="10" y1="14" x2="21" y2="3"></line></svg></a></li><style data-emotion-css="mximbs">.css-mximbs{padding-left:30px;width:100%;text-transform:uppercase;font-size:14px;font-weight:bold;margin-top:20px;color:#3D3D4D;-webkit-letter-spacing:0.142em;-moz-letter-spacing:0.142em;-ms-letter-spacing:0.142em;letter-spacing:0.142em;}</style><li class="css-mximbs e1wh78ri3">Community</li><style data-emotion-css="157nhwy">.css-157nhwy{list-style:none;width:100%;padding-left:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;margin:5px 0 0 0;}</style><ul class="css-157nhwy e1wh78ri5"><li class="css-1wldk6c e1wh78ri4"><a href="https://github.com/apache/incubator-liminal" rel="noopener noreferrer">Github<svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" style="width:16px;height:16px;margin-left:10px" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1="10" y1="14" x2="21" y2="3"></line></svg></a></li><li class="css-1wldk6c e1wh78ri4"><a href="https://lists.apache.org/list.html?dev@liminal.apache.org" rel="noopener noreferrer">Dev-Mailing-List<svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" style="width:16px;height:16px;margin-left:10px" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1="10" y1="14" x2="21" y2="3"></line></svg></a></li></ul></ul></nav></aside><style data-emotion-css="19vacph">.css-19vacph{height:100%;padding-top:36px;width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;position:relative;}@media (max-width:1200px){.css-19vacph{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}}@media (max-width:780px){.css-19vacph{padding-top:0;}}</style><main class="css-19vacph eees1d51"><style data-emotion-css="9q3p0l">.css-9q3p0l{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:40px;margin-bottom:24px;}.css-9q3p0l h2{margin:0;border:none;padding:0;font-size:18px;}@media (max-width:359px){.css-9q3p0l h2{font-size:14px;}}.css-9q3p0l button{border:none;background:none;cursor:pointer;margin-right:16px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}@media (min-width:780px){.css-9q3p0l{display:none;}}</style><header class="css-9q3p0l esnpb7p0"><button aria-label="Open sidebar" type="button"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 512 512" size="23" aria-hidden="true" height="23" width="23" xmlns="http://www.w3.org/2000/svg"><path d="M32 96v64h448V96H32zm0 128v64h448v-64H32zm0 128v64h448v-64H32z"></path></svg></button><h2></h2></header><style data-emotion-css="enx1eb">.css-enx1eb{display:none;}@media (max-width:1200px){.css-enx1eb{display:block;}}</style><h1 class="css-enx1eb">Page not found!</h1><style data-emotion-css="1ehkd4h">.css-1ehkd4h{width:100%;max-width:calc(75% - 64px);padding-right:64px;}@media (max-width:1200px){.css-1ehkd4h{max-width:100%;padding-right:0;-webkit-order:3;-ms-flex-order:3;order:3;}}</style><div class="css-1ehkd4h eees1d52"><style data-emotion-css="1n3b8my">@media (max-width:1200px){.css-1n3b8my{display:none;}}</style><h1 class="css-1n3b8my">Page not found!</h1><p>You just hit a route that doesn&#x27;t exist... the sadness.</p><p>If you&#x27;d like to go back to homepage, <a href="/">click here</a>.</p></div><style data-emotion-css="15t48j3">.css-15t48j3{position:-webkit-sticky;position:sticky;top:0;-webkit-order:2;-ms-flex-order:2;order:2;padding-top:72px;max-height:calc(100vh - 72px);overflow-y:auto;width:100%;max-width:200px;}@media (max-width:1200px){.css-15t48j3{position:relative;top:auto;-webkit-order:0;-ms-flex-order:0;order:0;max-width:100%;margin-left:0;padding-top:0;}}</style><div class="css-15t48j3 e10o0eax0"></div></main></div></div><div id="gatsby-announcer" style="position:absolute;top:0;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0" aria-live="assertive" aria-atomic="true"></div></div><script id="gatsby-script-loader">/*<![CDATA[*/window.pagePath="/404.html";/*]]>*/</script><script id="gatsby-chunk-mapping">/*<![CDATA[*/window.___chunkMapping={"polyfill":["/polyfill-46800a246443c64ac6e0.js"],"app":["/app-dc092efbd8d9d25365f0.js"],"component---cache-caches-gatsby-plugin-offline-app-shell-js":["/component---cache-caches-gatsby-plugin-offline-app-shell-js-5a1ee105f05b3144b807.js"],"component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-docs-query-js":["/component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-docs-query-js-45096b7ad4a0af4f2241.js"],"component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js":["/component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js-c50cb61fe2c65deeaa10.js"],"component---src-pages-404-js":["/component---src-pages-404-js-04beac219105c3e149b3.js"]};/*]]>*/</script><script src="/polyfill-46800a246443c64ac6e0.js" nomodule=""></script><script src="/component---src-pages-404-js-04beac219105c3e149b3.js" async=""></script><script src="/a7629950cb7a18c7593baf47d0acfe798f1cddc4-4c1232454ad5571a0b75.js" async=""></script><script src="/5e2a4920-cba84c59a4ec3c5b642e.js" async=""></script><script src="/545f34e4-7dfe072c8eed183902e6.js" async=""></script><script src="/app-dc092efbd8d9d25365f0.js" async=""></script><script src="/f0e45107-ff2c7ac7fae000cceb4b.js" async=""></script><script src="/framework-85aff51d15c28c7fbe5f.js" async=""></script><script src="/webpack-runtime-e7d4f0c418939174f0da.js" async=""></script></body></html>
\ No newline at end of file
+  </script><title data-react-helmet="true">404: Not found | </title><meta data-react-helmet="true" name="description" content="Apache Limial official site"/><meta data-react-helmet="true" name="image" content="http://liminal.apache.com/logo.png"/><meta data-react-helmet="true" http-equiv="x-ua-compatible" content="IE=edge,chrome=1"/><meta data-react-helmet="true" name="MobileOptimized" content="320"/><meta data-react-helmet="true" name="HandheldFriendly" content="True"/><meta data-react-helmet="true" name="google" content="notranslate"/><meta data-react-helmet="true" name="referrer" content="no-referrer-when-downgrade"/><meta data-react-helmet="true" property="og:url" content="http://liminal.apache.com"/><meta data-react-helmet="true" property="og:type" content="website"/><meta data-react-helmet="true" property="og:title" content="404: Not found | "/><meta data-react-helmet="true" property="og:description" content="Apache Limial official site"/><meta data-react-helmet="true" property="og:locale" content="en"/><meta data-react-helmet="true" property="og:site_name" content=""/><meta data-react-helmet="true" property="og:image" content="http://liminal.apache.com/logo.png"/><meta data-react-helmet="true" property="og:image:secure_url" content="http://liminal.apache.com/logo.png"/><meta data-react-helmet="true" property="og:image:alt" content="Banner"/><meta data-react-helmet="true" property="og:image:type" content="image/png"/><meta data-react-helmet="true" property="og:image:width" content="1200"/><meta data-react-helmet="true" property="og:image:height" content="630"/><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"/><meta data-react-helmet="true" name="twitter:title" content="404: Not found | "/><meta data-react-helmet="true" name="twitter:site" content="@lior.schachter"/><meta data-react-helmet="true" name="twitter:creator" content="@lior.schachter"/><meta data-react-helmet="true" name="twitter:image" content="http://liminal.apache.com/logo.png"/><meta data-react-helmet="true" name="twitter:image:src" content="http://liminal.apache.com/logo.png"/><meta data-react-helmet="true" name="twitter:image:alt" content="Banner"/><meta data-react-helmet="true" name="twitter:image:width" content="1200"/><meta data-react-helmet="true" name="twitter:image:height" content="630"/><script data-react-helmet="true" type="application/ld+json">[{"@context":"http://schema.org","@type":"WebSite","url":"http://liminal.apache.com","name":"404: Not found","alternateName":"Apache Liminal"}]</script><link rel="icon" href="/favicon-32x32.png?v=f730a0b8e533f2d4da7bd901d2b7ab80" type="image/png"/><link rel="manifest" href="/manifest.webmanifest"/><link rel="apple-touch-icon" sizes="48x48" href="/icons/icon-48x48.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="72x72" href="/icons/icon-72x72.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="96x96" href="/icons/icon-96x96.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="144x144" href="/icons/icon-144x144.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="192x192" href="/icons/icon-192x192.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="256x256" href="/icons/icon-256x256.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="384x384" href="/icons/icon-384x384.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="512x512" href="/icons/icon-512x512.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="sitemap" type="application/xml" href="/sitemap.xml"/><link rel="canonical" href="https://rocketdocs.netlify.com/404.html" data-baseprotocol="https:" data-basehost="rocketdocs.netlify.com"/><link as="script" rel="preload" href="/webpack-runtime-20f9c665c2949ed076fe.js"/><link as="script" rel="preload" href="/framework-85aff51d15c28c7fbe5f.js"/><link as="script" rel="preload" href="/f0e45107-ff2c7ac7fae000cceb4b.js"/><link as="script" rel="preload" href="/app-dc092efbd8d9d25365f0.js"/><link as="script" rel="preload" href="/545f34e4-7dfe072c8eed183902e6.js"/><link as="script" rel="preload" href="/5e2a4920-cba84c59a4ec3c5b642e.js"/><link as="script" rel="preload" href="/a7629950cb7a18c7593baf47d0acfe798f1cddc4-4c1232454ad5571a0b75.js"/><link as="script" rel="preload" href="/component---src-pages-404-js-04beac219105c3e149b3.js"/><link as="fetch" rel="preload" href="/page-data/404.html/page-data.json" crossorigin="anonymous"/><link as="fetch" rel="preload" href="/page-data/sq/d/1954253342.json" crossorigin="anonymous"/><link as="fetch" rel="preload" href="/page-data/sq/d/2328931024.json" crossorigin="anonymous"/><link as="fetch" rel="preload" href="/page-data/sq/d/2501019404.json" crossorigin="anonymous"/><link as="fetch" rel="preload" href="/page-data/sq/d/973074209.json" crossorigin="anonymous"/><link as="fetch" rel="preload" href="/page-data/app-data.json" crossorigin="anonymous"/></head><body><div id="___gatsby"><style data-emotion-css="6ifimc">*,*::after,*::before{margin:0;padding:0;box-sizing:border-box;}body{font-size:16px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif;background-color:#FFFFFF;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;overflow-y:scroll;}h1{font-size:32px;color:#3D3D4D;font-weight:bold;margin-bottom:24px;}h2{font-size:24px;}h3{font-size:18px;}h4{font-size:16px;}h2,h3,h4,h5,h6{color:#3D3D4D;margin:24px 0 16px 0;font-weight:bold;}p{color:#6C6C80;font-size:16px;line-height:28px;margin-bottom:16px;font-weight:400;}code.inline-code{display:inline-block;vertical-align:middle;line-height:1;padding:0.2em;background-color:#44475a;color:rgba(248,248,242);font-size:14px;border-radius:3px;font-feature-settings:'clig' 0,'calt' 0;font-variant:no-common-ligatures no-discretionary-ligatures no-historical-ligatures no-contextual;}h1 code.inline-code,h2 code.inline-code{font-size:calc(100% - 5px);padding:4px;}a{color:#6C6C80;font-weight:bold;-webkit-text-decoration:none;text-decoration:none;}a:hover{-webkit-text-decoration:underline;text-decoration:underline;}blockquote{margin-bottom:16px;width:100%;}blockquote p{padding:1rem;border-radius:5px;background:#F2F2FA;color:#6C6C80;margin:0;}hr{border:0;height:0;border-top:1px solid rgba(0,0,0,0.1);border-bottom:1px solid rgba(255,255,255,0.3);}table{border-collapse:separate;border-spacing:0 4px;margin-top:-4px;margin-bottom:16px;width:100%;}table th,table td{margin:0;color:#6C6C80;background-color:#F2F2FA;border:solid 1px #F2F2FA;border-style:solid none;padding:12px;}table th:first-of-type,table td:first-of-type{border-left-style:solid;border-top-left-radius:5px;border-bottom-left-radius:5px;}table th:last-child,table td:last-child{border-right-style:solid;border-bottom-right-radius:5px;border-top-right-radius:5px;}table tr th{color:#3D3D4D;text-align:left;font-weight:bold;}iframe{margin-bottom:16px;}img{max-width:100%;}ul,ol{color:#6C6C80;padding-left:15px;margin-bottom:16px;}ul li,ol li{line-height:28px;}.gatsby-highlight{font-family:Hack,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-variant:no-common-ligatures no-discretionary-ligatures no-historical-ligatures no-contextual;position:relative;z-index:0;margin:0 0 16px 0;overflow:auto;}.gatsby-highlight .token{font-style:normal !important;}pre[class*='language-'] code{font-family:inherit;}pre[class*='language-']::before{background:#d9d7e0;border-radius:0 0 4px 4px;color:#232129;font-size:12px;font-family:inherit;-webkit-letter-spacing:0.075em;-moz-letter-spacing:0.075em;-ms-letter-spacing:0.075em;letter-spacing:0.075em;line-height:1;padding:0.25rem 0.5rem;position:absolute;left:1rem;text-align:right;text-transform:uppercase;top:0;}pre[class~='language-js']::before,pre[class~='language-javascript']::before{content:'js';background:#f7df1e;}pre[class~='language-jsx']::before{content:'jsx';background:#61dafb;}pre[class~='language-typescript']::before,pre[class~='language-ts']::before{content:'ts';background:#294e80;color:#fff;}pre[class~='language-tsx']::before{content:'tsx';background:#294e80;color:#fff;}pre[class~='language-graphql']::before{content:'GraphQL';background:#e10098;color:#fff;}pre[class~='language-html']::before{content:'html';background:#005a9c;color:#fff;}pre[class~='language-css']::before{content:'css';background:#ff9800;color:#fff;}pre[class~='language-mdx']::before{content:'mdx';background:#f9ac00;color:#fff;}pre[class~='language-shell']::before{content:'shell';}pre[class~='language-sh']::before{content:'sh';}pre[class~='language-bash']::before{content:'bash';}pre[class~='language-yaml']::before,pre[class~='language-yml']::before{content:'yaml';background:#ffa8df;}pre[class~='language-markdown']::before{content:'md';}pre[class~='language-json']::before,pre[class~='language-json5']::before{content:'json';background:linen;}pre[class~='language-diff']::before{content:'diff';background:#e6ffed;}pre[class~='language-text']::before{content:'text';background:#fff;}pre[class~='language-flow']::before{content:'flow';background:#e8bd36;}</style><div style="outline:none" tabindex="-1" id="gatsby-focus-wrapper"><style data-emotion-css="7gspsd">.css-7gspsd::after{content:'';position:fixed;width:100%;height:100%;left:0;right:0;bottom:0;background-color:rgba(0,0,0,0.8);z-index:999;display:none;}</style><div aria-label="Close menu" class="css-7gspsd"></div><style data-emotion-css="1i3ij69">.css-1i3ij69{width:100%;max-width:1400px;margin:0 auto;padding:0 24px;display:grid;grid-template-columns:280px calc(100% - 320px);grid-auto-flow:row;grid-gap:40px;}@media (max-width:780px){.css-1i3ij69{padding:24px;grid-template-columns:100%;}}</style><div class="css-1i3ij69 eees1d50"><style data-emotion-css="efco39">.css-efco39{width:100%;overflow-y:auto;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;position:-webkit-sticky;position:sticky;top:0;padding-top:36px;-webkit-transition:-webkit-transform 0.5s;-webkit-transition:transform 0.5s;transition:transform 0.5s;height:calc(100vh - 1px);}.css-efco39 nav{width:100%;padding-top:24px;-webkit-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start;-webkit-flex:1;-ms-flex:1;flex:1;}@media (max-width:780px){.css-efco39{max-width:75%;min-width:auto;z-index:1001;position:fixed;top:0;bottom:0;left:0;padding-top:32px;background:#FFFFFF;-webkit-transform:translate3d( -100%,0,0 );-ms-transform:translate3d( -100%,0,0 );transform:translate3d( -100%,0,0 );}}</style><aside class="css-efco39 e1wh78ri0"><style data-emotion-css="2yrou">.css-2yrou{width:100%;}.css-2yrou a{width:100%;padding-left:30px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}</style><div class="css-2yrou e1wh78ri1"><a aria-label="Go to home page" href="/"><img src="/static/logo-f730a0b8e533f2d4da7bd901d2b7ab80.png" alt="Logo" width="90px" height="80px"/></a></div><nav><style data-emotion-css="mbmci8">.css-mbmci8{list-style:none;width:100%;padding-left:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}</style><ul class="css-mbmci8 e1wh78ri2"><style data-emotion-css="1wldk6c">.css-1wldk6c{font-size:15px;width:100%;-webkit-transition:all 200ms ease-in-out;transition:all 200ms ease-in-out;padding:0 20px;cursor:pointer;}.css-1wldk6c a,.css-1wldk6c span{display:block;font-size:15px;color:#6C6C80;background-color:#FFFFFF;padding:4px 10px;margin:4px 0;border-radius:4px;font-weight:normal;-webkit-text-decoration:none;text-decoration:none;width:100%;height:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;cursor:pointer;margin:0 auto;-webkit-transition:all 0.2s ease;transition:all 0.2s ease;}.css-1wldk6c a svg,.css-1wldk6c span svg{width:20px;height:20px;margin-right:10px;}.css-1wldk6c a:not(.active-link):hover,.css-1wldk6c span:not(.active-link):hover{color:#8257E6;}.css-1wldk6c a.active-link,.css-1wldk6c span.active-link{color:#8257E6;background-color:#F2F2FA;}@media (max-width:780px){.css-1wldk6c a.active-link,.css-1wldk6c span.active-link{background:#F2F2FA;}}</style><li class="css-1wldk6c e1wh78ri4"><a href="/">Introduction</a></li><li class="css-1wldk6c e1wh78ri4"><a href="https://github.com/apache/incubator-liminal/blob/master/README.md" rel="noopener noreferrer">Getting started<svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" style="width:16px;height:16px;margin-left:10px" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1="10" y1="14" x2="21" y2="3"></line></svg></a></li><li class="css-1wldk6c e1wh78ri4"><a href="/usage/arch">Architecture</a></li><style data-emotion-css="mximbs">.css-mximbs{padding-left:30px;width:100%;text-transform:uppercase;font-size:14px;font-weight:bold;margin-top:20px;color:#3D3D4D;-webkit-letter-spacing:0.142em;-moz-letter-spacing:0.142em;-ms-letter-spacing:0.142em;letter-spacing:0.142em;}</style><li class="css-mximbs e1wh78ri3">Community</li><style data-emotion-css="157nhwy">.css-157nhwy{list-style:none;width:100%;padding-left:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;margin:5px 0 0 0;}</style><ul class="css-157nhwy e1wh78ri5"><li class="css-1wldk6c e1wh78ri4"><a href="https://github.com/apache/incubator-liminal" rel="noopener noreferrer">Github<svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" style="width:16px;height:16px;margin-left:10px" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1="10" y1="14" x2="21" y2="3"></line></svg></a></li><li class="css-1wldk6c e1wh78ri4"><a href="https://lists.apache.org/list.html?dev@liminal.apache.org" rel="noopener noreferrer">Dev-Mailing-List<svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" style="width:16px;height:16px;margin-left:10px" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1="10" y1="14" x2="21" y2="3"></line></svg></a></li></ul></ul></nav></aside><style data-emotion-css="19vacph">.css-19vacph{height:100%;padding-top:36px;width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;position:relative;}@media (max-width:1200px){.css-19vacph{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}}@media (max-width:780px){.css-19vacph{padding-top:0;}}</style><main class="css-19vacph eees1d51"><style data-emotion-css="9q3p0l">.css-9q3p0l{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:40px;margin-bottom:24px;}.css-9q3p0l h2{margin:0;border:none;padding:0;font-size:18px;}@media (max-width:359px){.css-9q3p0l h2{font-size:14px;}}.css-9q3p0l button{border:none;background:none;cursor:pointer;margin-right:16px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}@media (min-width:780px){.css-9q3p0l{display:none;}}</style><header class="css-9q3p0l esnpb7p0"><button aria-label="Open sidebar" type="button"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 512 512" size="23" aria-hidden="true" height="23" width="23" xmlns="http://www.w3.org/2000/svg"><path d="M32 96v64h448V96H32zm0 128v64h448v-64H32zm0 128v64h448v-64H32z"></path></svg></button><h2></h2></header><style data-emotion-css="enx1eb">.css-enx1eb{display:none;}@media (max-width:1200px){.css-enx1eb{display:block;}}</style><h1 class="css-enx1eb">Page not found!</h1><style data-emotion-css="1ehkd4h">.css-1ehkd4h{width:100%;max-width:calc(75% - 64px);padding-right:64px;}@media (max-width:1200px){.css-1ehkd4h{max-width:100%;padding-right:0;-webkit-order:3;-ms-flex-order:3;order:3;}}</style><div class="css-1ehkd4h eees1d52"><style data-emotion-css="1n3b8my">@media (max-width:1200px){.css-1n3b8my{display:none;}}</style><h1 class="css-1n3b8my">Page not found!</h1><p>You just hit a route that doesn&#x27;t exist... the sadness.</p><p>If you&#x27;d like to go back to homepage, <a href="/">click here</a>.</p></div><style data-emotion-css="15t48j3">.css-15t48j3{position:-webkit-sticky;position:sticky;top:0;-webkit-order:2;-ms-flex-order:2;order:2;padding-top:72px;max-height:calc(100vh - 72px);overflow-y:auto;width:100%;max-width:200px;}@media (max-width:1200px){.css-15t48j3{position:relative;top:auto;-webkit-order:0;-ms-flex-order:0;order:0;max-width:100%;margin-left:0;padding-top:0;}}</style><div class="css-15t48j3 e10o0eax0"></div></main></div></div><div id="gatsby-announcer" style="position:absolute;top:0;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0" aria-live="assertive" aria-atomic="true"></div></div><script id="gatsby-script-loader">/*<![CDATA[*/window.pagePath="/404.html";/*]]>*/</script><script id="gatsby-chunk-mapping">/*<![CDATA[*/window.___chunkMapping={"polyfill":["/polyfill-46800a246443c64ac6e0.js"],"app":["/app-dc092efbd8d9d25365f0.js"],"component---cache-caches-gatsby-plugin-offline-app-shell-js":["/component---cache-caches-gatsby-plugin-offline-app-shell-js-5a1ee105f05b3144b807.js"],"component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-docs-query-js":["/component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-docs-query-js-45096b7ad4a0af4f2241.js"],"component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js":["/component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js-bac143fcc98b6926a57f.js"],"component---src-pages-404-js":["/component---src-pages-404-js-04beac219105c3e149b3.js"]};/*]]>*/</script><script src="/polyfill-46800a246443c64ac6e0.js" nomodule=""></script><script src="/component---src-pages-404-js-04beac219105c3e149b3.js" async=""></script><script src="/a7629950cb7a18c7593baf47d0acfe798f1cddc4-4c1232454ad5571a0b75.js" async=""></script><script src="/5e2a4920-cba84c59a4ec3c5b642e.js" async=""></script><script src="/545f34e4-7dfe072c8eed183902e6.js" async=""></script><script src="/app-dc092efbd8d9d25365f0.js" async=""></script><script src="/f0e45107-ff2c7ac7fae000cceb4b.js" async=""></script><script src="/framework-85aff51d15c28c7fbe5f.js" async=""></script><script src="/webpack-runtime-20f9c665c2949ed076fe.js" async=""></script></body></html>
\ No newline at end of file
diff --git a/404/index.html b/404/index.html
index 23ea57b..25d71b5 100644
--- a/404/index.html
+++ b/404/index.html
@@ -48,4 +48,4 @@
         }
       }
     })
-  </script><title data-react-helmet="true">404: Not found | </title><meta data-react-helmet="true" name="description" content="Apache Limial official site"/><meta data-react-helmet="true" name="image" content="http://liminal.apache.com/logo.png"/><meta data-react-helmet="true" http-equiv="x-ua-compatible" content="IE=edge,chrome=1"/><meta data-react-helmet="true" name="MobileOptimized" content="320"/><meta data-react-helmet="true" name="HandheldFriendly" content="True"/><meta data-react-helmet="true" name="google" content="notranslate"/><meta data-react-helmet="true" name="referrer" content="no-referrer-when-downgrade"/><meta data-react-helmet="true" property="og:url" content="http://liminal.apache.com"/><meta data-react-helmet="true" property="og:type" content="website"/><meta data-react-helmet="true" property="og:title" content="404: Not found | "/><meta data-react-helmet="true" property="og:description" content="Apache Limial official site"/><meta data-react-helmet="true" property="og:locale" content="en"/><meta data-react-helmet="true" property="og:site_name" content=""/><meta data-react-helmet="true" property="og:image" content="http://liminal.apache.com/logo.png"/><meta data-react-helmet="true" property="og:image:secure_url" content="http://liminal.apache.com/logo.png"/><meta data-react-helmet="true" property="og:image:alt" content="Banner"/><meta data-react-helmet="true" property="og:image:type" content="image/png"/><meta data-react-helmet="true" property="og:image:width" content="1200"/><meta data-react-helmet="true" property="og:image:height" content="630"/><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"/><meta data-react-helmet="true" name="twitter:title" content="404: Not found | "/><meta data-react-helmet="true" name="twitter:site" content="@lior.schachter"/><meta data-react-helmet="true" name="twitter:creator" content="@lior.schachter"/><meta data-react-helmet="true" name="twitter:image" content="http://liminal.apache.com/logo.png"/><meta data-react-helmet="true" name="twitter:image:src" content="http://liminal.apache.com/logo.png"/><meta data-react-helmet="true" name="twitter:image:alt" content="Banner"/><meta data-react-helmet="true" name="twitter:image:width" content="1200"/><meta data-react-helmet="true" name="twitter:image:height" content="630"/><script data-react-helmet="true" type="application/ld+json">[{"@context":"http://schema.org","@type":"WebSite","url":"http://liminal.apache.com","name":"404: Not found","alternateName":"Apache Liminal"}]</script><link rel="icon" href="/favicon-32x32.png?v=f730a0b8e533f2d4da7bd901d2b7ab80" type="image/png"/><link rel="manifest" href="/manifest.webmanifest"/><link rel="apple-touch-icon" sizes="48x48" href="/icons/icon-48x48.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="72x72" href="/icons/icon-72x72.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="96x96" href="/icons/icon-96x96.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="144x144" href="/icons/icon-144x144.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="192x192" href="/icons/icon-192x192.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="256x256" href="/icons/icon-256x256.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="384x384" href="/icons/icon-384x384.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="512x512" href="/icons/icon-512x512.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="sitemap" type="application/xml" href="/sitemap.xml"/><link rel="canonical" href="https://rocketdocs.netlify.com/404" data-baseprotocol="https:" data-basehost="rocketdocs.netlify.com"/><link as="script" rel="preload" href="/webpack-runtime-e7d4f0c418939174f0da.js"/><link as="script" rel="preload" href="/framework-85aff51d15c28c7fbe5f.js"/><link as="script" rel="preload" href="/f0e45107-ff2c7ac7fae000cceb4b.js"/><link as="script" rel="preload" href="/app-dc092efbd8d9d25365f0.js"/><link as="script" rel="preload" href="/545f34e4-7dfe072c8eed183902e6.js"/><link as="script" rel="preload" href="/5e2a4920-cba84c59a4ec3c5b642e.js"/><link as="script" rel="preload" href="/a7629950cb7a18c7593baf47d0acfe798f1cddc4-4c1232454ad5571a0b75.js"/><link as="script" rel="preload" href="/component---src-pages-404-js-04beac219105c3e149b3.js"/><link as="fetch" rel="preload" href="/page-data/404/page-data.json" crossorigin="anonymous"/><link as="fetch" rel="preload" href="/page-data/sq/d/1954253342.json" crossorigin="anonymous"/><link as="fetch" rel="preload" href="/page-data/sq/d/2328931024.json" crossorigin="anonymous"/><link as="fetch" rel="preload" href="/page-data/sq/d/2501019404.json" crossorigin="anonymous"/><link as="fetch" rel="preload" href="/page-data/sq/d/973074209.json" crossorigin="anonymous"/><link as="fetch" rel="preload" href="/page-data/app-data.json" crossorigin="anonymous"/></head><body><div id="___gatsby"><style data-emotion-css="6ifimc">*,*::after,*::before{margin:0;padding:0;box-sizing:border-box;}body{font-size:16px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif;background-color:#FFFFFF;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;overflow-y:scroll;}h1{font-size:32px;color:#3D3D4D;font-weight:bold;margin-bottom:24px;}h2{font-size:24px;}h3{font-size:18px;}h4{font-size:16px;}h2,h3,h4,h5,h6{color:#3D3D4D;margin:24px 0 16px 0;font-weight:bold;}p{color:#6C6C80;font-size:16px;line-height:28px;margin-bottom:16px;font-weight:400;}code.inline-code{display:inline-block;vertical-align:middle;line-height:1;padding:0.2em;background-color:#44475a;color:rgba(248,248,242);font-size:14px;border-radius:3px;font-feature-settings:'clig' 0,'calt' 0;font-variant:no-common-ligatures no-discretionary-ligatures no-historical-ligatures no-contextual;}h1 code.inline-code,h2 code.inline-code{font-size:calc(100% - 5px);padding:4px;}a{color:#6C6C80;font-weight:bold;-webkit-text-decoration:none;text-decoration:none;}a:hover{-webkit-text-decoration:underline;text-decoration:underline;}blockquote{margin-bottom:16px;width:100%;}blockquote p{padding:1rem;border-radius:5px;background:#F2F2FA;color:#6C6C80;margin:0;}hr{border:0;height:0;border-top:1px solid rgba(0,0,0,0.1);border-bottom:1px solid rgba(255,255,255,0.3);}table{border-collapse:separate;border-spacing:0 4px;margin-top:-4px;margin-bottom:16px;width:100%;}table th,table td{margin:0;color:#6C6C80;background-color:#F2F2FA;border:solid 1px #F2F2FA;border-style:solid none;padding:12px;}table th:first-of-type,table td:first-of-type{border-left-style:solid;border-top-left-radius:5px;border-bottom-left-radius:5px;}table th:last-child,table td:last-child{border-right-style:solid;border-bottom-right-radius:5px;border-top-right-radius:5px;}table tr th{color:#3D3D4D;text-align:left;font-weight:bold;}iframe{margin-bottom:16px;}img{max-width:100%;}ul,ol{color:#6C6C80;padding-left:15px;margin-bottom:16px;}ul li,ol li{line-height:28px;}.gatsby-highlight{font-family:Hack,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-variant:no-common-ligatures no-discretionary-ligatures no-historical-ligatures no-contextual;position:relative;z-index:0;margin:0 0 16px 0;overflow:auto;}.gatsby-highlight .token{font-style:normal !important;}pre[class*='language-'] code{font-family:inherit;}pre[class*='language-']::before{background:#d9d7e0;border-radius:0 0 4px 4px;color:#232129;font-size:12px;font-family:inherit;-webkit-letter-spacing:0.075em;-moz-letter-spacing:0.075em;-ms-letter-spacing:0.075em;letter-spacing:0.075em;line-height:1;padding:0.25rem 0.5rem;position:absolute;left:1rem;text-align:right;text-transform:uppercase;top:0;}pre[class~='language-js']::before,pre[class~='language-javascript']::before{content:'js';background:#f7df1e;}pre[class~='language-jsx']::before{content:'jsx';background:#61dafb;}pre[class~='language-typescript']::before,pre[class~='language-ts']::before{content:'ts';background:#294e80;color:#fff;}pre[class~='language-tsx']::before{content:'tsx';background:#294e80;color:#fff;}pre[class~='language-graphql']::before{content:'GraphQL';background:#e10098;color:#fff;}pre[class~='language-html']::before{content:'html';background:#005a9c;color:#fff;}pre[class~='language-css']::before{content:'css';background:#ff9800;color:#fff;}pre[class~='language-mdx']::before{content:'mdx';background:#f9ac00;color:#fff;}pre[class~='language-shell']::before{content:'shell';}pre[class~='language-sh']::before{content:'sh';}pre[class~='language-bash']::before{content:'bash';}pre[class~='language-yaml']::before,pre[class~='language-yml']::before{content:'yaml';background:#ffa8df;}pre[class~='language-markdown']::before{content:'md';}pre[class~='language-json']::before,pre[class~='language-json5']::before{content:'json';background:linen;}pre[class~='language-diff']::before{content:'diff';background:#e6ffed;}pre[class~='language-text']::before{content:'text';background:#fff;}pre[class~='language-flow']::before{content:'flow';background:#e8bd36;}</style><div style="outline:none" tabindex="-1" id="gatsby-focus-wrapper"><style data-emotion-css="7gspsd">.css-7gspsd::after{content:'';position:fixed;width:100%;height:100%;left:0;right:0;bottom:0;background-color:rgba(0,0,0,0.8);z-index:999;display:none;}</style><div aria-label="Close menu" class="css-7gspsd"></div><style data-emotion-css="1i3ij69">.css-1i3ij69{width:100%;max-width:1400px;margin:0 auto;padding:0 24px;display:grid;grid-template-columns:280px calc(100% - 320px);grid-auto-flow:row;grid-gap:40px;}@media (max-width:780px){.css-1i3ij69{padding:24px;grid-template-columns:100%;}}</style><div class="css-1i3ij69 eees1d50"><style data-emotion-css="efco39">.css-efco39{width:100%;overflow-y:auto;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;position:-webkit-sticky;position:sticky;top:0;padding-top:36px;-webkit-transition:-webkit-transform 0.5s;-webkit-transition:transform 0.5s;transition:transform 0.5s;height:calc(100vh - 1px);}.css-efco39 nav{width:100%;padding-top:24px;-webkit-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start;-webkit-flex:1;-ms-flex:1;flex:1;}@media (max-width:780px){.css-efco39{max-width:75%;min-width:auto;z-index:1001;position:fixed;top:0;bottom:0;left:0;padding-top:32px;background:#FFFFFF;-webkit-transform:translate3d( -100%,0,0 );-ms-transform:translate3d( -100%,0,0 );transform:translate3d( -100%,0,0 );}}</style><aside class="css-efco39 e1wh78ri0"><style data-emotion-css="2yrou">.css-2yrou{width:100%;}.css-2yrou a{width:100%;padding-left:30px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}</style><div class="css-2yrou e1wh78ri1"><a aria-label="Go to home page" href="/"><img src="/static/logo-f730a0b8e533f2d4da7bd901d2b7ab80.png" alt="Logo" width="90px" height="80px"/></a></div><nav><style data-emotion-css="mbmci8">.css-mbmci8{list-style:none;width:100%;padding-left:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}</style><ul class="css-mbmci8 e1wh78ri2"><style data-emotion-css="1wldk6c">.css-1wldk6c{font-size:15px;width:100%;-webkit-transition:all 200ms ease-in-out;transition:all 200ms ease-in-out;padding:0 20px;cursor:pointer;}.css-1wldk6c a,.css-1wldk6c span{display:block;font-size:15px;color:#6C6C80;background-color:#FFFFFF;padding:4px 10px;margin:4px 0;border-radius:4px;font-weight:normal;-webkit-text-decoration:none;text-decoration:none;width:100%;height:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;cursor:pointer;margin:0 auto;-webkit-transition:all 0.2s ease;transition:all 0.2s ease;}.css-1wldk6c a svg,.css-1wldk6c span svg{width:20px;height:20px;margin-right:10px;}.css-1wldk6c a:not(.active-link):hover,.css-1wldk6c span:not(.active-link):hover{color:#8257E6;}.css-1wldk6c a.active-link,.css-1wldk6c span.active-link{color:#8257E6;background-color:#F2F2FA;}@media (max-width:780px){.css-1wldk6c a.active-link,.css-1wldk6c span.active-link{background:#F2F2FA;}}</style><li class="css-1wldk6c e1wh78ri4"><a href="/">Introduction</a></li><li class="css-1wldk6c e1wh78ri4"><a href="/usage/arch">Architecture</a></li><li class="css-1wldk6c e1wh78ri4"><a href="https://github.com/apache/incubator-liminal/blob/master/README.md" rel="noopener noreferrer">Getting started<svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" style="width:16px;height:16px;margin-left:10px" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1="10" y1="14" x2="21" y2="3"></line></svg></a></li><style data-emotion-css="mximbs">.css-mximbs{padding-left:30px;width:100%;text-transform:uppercase;font-size:14px;font-weight:bold;margin-top:20px;color:#3D3D4D;-webkit-letter-spacing:0.142em;-moz-letter-spacing:0.142em;-ms-letter-spacing:0.142em;letter-spacing:0.142em;}</style><li class="css-mximbs e1wh78ri3">Community</li><style data-emotion-css="157nhwy">.css-157nhwy{list-style:none;width:100%;padding-left:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;margin:5px 0 0 0;}</style><ul class="css-157nhwy e1wh78ri5"><li class="css-1wldk6c e1wh78ri4"><a href="https://github.com/apache/incubator-liminal" rel="noopener noreferrer">Github<svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" style="width:16px;height:16px;margin-left:10px" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1="10" y1="14" x2="21" y2="3"></line></svg></a></li><li class="css-1wldk6c e1wh78ri4"><a href="https://lists.apache.org/list.html?dev@liminal.apache.org" rel="noopener noreferrer">Dev-Mailing-List<svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" style="width:16px;height:16px;margin-left:10px" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1="10" y1="14" x2="21" y2="3"></line></svg></a></li></ul></ul></nav></aside><style data-emotion-css="19vacph">.css-19vacph{height:100%;padding-top:36px;width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;position:relative;}@media (max-width:1200px){.css-19vacph{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}}@media (max-width:780px){.css-19vacph{padding-top:0;}}</style><main class="css-19vacph eees1d51"><style data-emotion-css="9q3p0l">.css-9q3p0l{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:40px;margin-bottom:24px;}.css-9q3p0l h2{margin:0;border:none;padding:0;font-size:18px;}@media (max-width:359px){.css-9q3p0l h2{font-size:14px;}}.css-9q3p0l button{border:none;background:none;cursor:pointer;margin-right:16px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}@media (min-width:780px){.css-9q3p0l{display:none;}}</style><header class="css-9q3p0l esnpb7p0"><button aria-label="Open sidebar" type="button"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 512 512" size="23" aria-hidden="true" height="23" width="23" xmlns="http://www.w3.org/2000/svg"><path d="M32 96v64h448V96H32zm0 128v64h448v-64H32zm0 128v64h448v-64H32z"></path></svg></button><h2></h2></header><style data-emotion-css="enx1eb">.css-enx1eb{display:none;}@media (max-width:1200px){.css-enx1eb{display:block;}}</style><h1 class="css-enx1eb">Page not found!</h1><style data-emotion-css="1ehkd4h">.css-1ehkd4h{width:100%;max-width:calc(75% - 64px);padding-right:64px;}@media (max-width:1200px){.css-1ehkd4h{max-width:100%;padding-right:0;-webkit-order:3;-ms-flex-order:3;order:3;}}</style><div class="css-1ehkd4h eees1d52"><style data-emotion-css="1n3b8my">@media (max-width:1200px){.css-1n3b8my{display:none;}}</style><h1 class="css-1n3b8my">Page not found!</h1><p>You just hit a route that doesn&#x27;t exist... the sadness.</p><p>If you&#x27;d like to go back to homepage, <a href="/">click here</a>.</p></div><style data-emotion-css="15t48j3">.css-15t48j3{position:-webkit-sticky;position:sticky;top:0;-webkit-order:2;-ms-flex-order:2;order:2;padding-top:72px;max-height:calc(100vh - 72px);overflow-y:auto;width:100%;max-width:200px;}@media (max-width:1200px){.css-15t48j3{position:relative;top:auto;-webkit-order:0;-ms-flex-order:0;order:0;max-width:100%;margin-left:0;padding-top:0;}}</style><div class="css-15t48j3 e10o0eax0"></div></main></div></div><div id="gatsby-announcer" style="position:absolute;top:0;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0" aria-live="assertive" aria-atomic="true"></div></div><script id="gatsby-script-loader">/*<![CDATA[*/window.pagePath="/404";/*]]>*/</script><script id="gatsby-chunk-mapping">/*<![CDATA[*/window.___chunkMapping={"polyfill":["/polyfill-46800a246443c64ac6e0.js"],"app":["/app-dc092efbd8d9d25365f0.js"],"component---cache-caches-gatsby-plugin-offline-app-shell-js":["/component---cache-caches-gatsby-plugin-offline-app-shell-js-5a1ee105f05b3144b807.js"],"component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-docs-query-js":["/component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-docs-query-js-45096b7ad4a0af4f2241.js"],"component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js":["/component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js-c50cb61fe2c65deeaa10.js"],"component---src-pages-404-js":["/component---src-pages-404-js-04beac219105c3e149b3.js"]};/*]]>*/</script><script src="/polyfill-46800a246443c64ac6e0.js" nomodule=""></script><script src="/component---src-pages-404-js-04beac219105c3e149b3.js" async=""></script><script src="/a7629950cb7a18c7593baf47d0acfe798f1cddc4-4c1232454ad5571a0b75.js" async=""></script><script src="/5e2a4920-cba84c59a4ec3c5b642e.js" async=""></script><script src="/545f34e4-7dfe072c8eed183902e6.js" async=""></script><script src="/app-dc092efbd8d9d25365f0.js" async=""></script><script src="/f0e45107-ff2c7ac7fae000cceb4b.js" async=""></script><script src="/framework-85aff51d15c28c7fbe5f.js" async=""></script><script src="/webpack-runtime-e7d4f0c418939174f0da.js" async=""></script></body></html>
\ No newline at end of file
+  </script><title data-react-helmet="true">404: Not found | </title><meta data-react-helmet="true" name="description" content="Apache Limial official site"/><meta data-react-helmet="true" name="image" content="http://liminal.apache.com/logo.png"/><meta data-react-helmet="true" http-equiv="x-ua-compatible" content="IE=edge,chrome=1"/><meta data-react-helmet="true" name="MobileOptimized" content="320"/><meta data-react-helmet="true" name="HandheldFriendly" content="True"/><meta data-react-helmet="true" name="google" content="notranslate"/><meta data-react-helmet="true" name="referrer" content="no-referrer-when-downgrade"/><meta data-react-helmet="true" property="og:url" content="http://liminal.apache.com"/><meta data-react-helmet="true" property="og:type" content="website"/><meta data-react-helmet="true" property="og:title" content="404: Not found | "/><meta data-react-helmet="true" property="og:description" content="Apache Limial official site"/><meta data-react-helmet="true" property="og:locale" content="en"/><meta data-react-helmet="true" property="og:site_name" content=""/><meta data-react-helmet="true" property="og:image" content="http://liminal.apache.com/logo.png"/><meta data-react-helmet="true" property="og:image:secure_url" content="http://liminal.apache.com/logo.png"/><meta data-react-helmet="true" property="og:image:alt" content="Banner"/><meta data-react-helmet="true" property="og:image:type" content="image/png"/><meta data-react-helmet="true" property="og:image:width" content="1200"/><meta data-react-helmet="true" property="og:image:height" content="630"/><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"/><meta data-react-helmet="true" name="twitter:title" content="404: Not found | "/><meta data-react-helmet="true" name="twitter:site" content="@lior.schachter"/><meta data-react-helmet="true" name="twitter:creator" content="@lior.schachter"/><meta data-react-helmet="true" name="twitter:image" content="http://liminal.apache.com/logo.png"/><meta data-react-helmet="true" name="twitter:image:src" content="http://liminal.apache.com/logo.png"/><meta data-react-helmet="true" name="twitter:image:alt" content="Banner"/><meta data-react-helmet="true" name="twitter:image:width" content="1200"/><meta data-react-helmet="true" name="twitter:image:height" content="630"/><script data-react-helmet="true" type="application/ld+json">[{"@context":"http://schema.org","@type":"WebSite","url":"http://liminal.apache.com","name":"404: Not found","alternateName":"Apache Liminal"}]</script><link rel="icon" href="/favicon-32x32.png?v=f730a0b8e533f2d4da7bd901d2b7ab80" type="image/png"/><link rel="manifest" href="/manifest.webmanifest"/><link rel="apple-touch-icon" sizes="48x48" href="/icons/icon-48x48.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="72x72" href="/icons/icon-72x72.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="96x96" href="/icons/icon-96x96.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="144x144" href="/icons/icon-144x144.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="192x192" href="/icons/icon-192x192.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="256x256" href="/icons/icon-256x256.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="384x384" href="/icons/icon-384x384.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="512x512" href="/icons/icon-512x512.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="sitemap" type="application/xml" href="/sitemap.xml"/><link rel="canonical" href="https://rocketdocs.netlify.com/404" data-baseprotocol="https:" data-basehost="rocketdocs.netlify.com"/><link as="script" rel="preload" href="/webpack-runtime-20f9c665c2949ed076fe.js"/><link as="script" rel="preload" href="/framework-85aff51d15c28c7fbe5f.js"/><link as="script" rel="preload" href="/f0e45107-ff2c7ac7fae000cceb4b.js"/><link as="script" rel="preload" href="/app-dc092efbd8d9d25365f0.js"/><link as="script" rel="preload" href="/545f34e4-7dfe072c8eed183902e6.js"/><link as="script" rel="preload" href="/5e2a4920-cba84c59a4ec3c5b642e.js"/><link as="script" rel="preload" href="/a7629950cb7a18c7593baf47d0acfe798f1cddc4-4c1232454ad5571a0b75.js"/><link as="script" rel="preload" href="/component---src-pages-404-js-04beac219105c3e149b3.js"/><link as="fetch" rel="preload" href="/page-data/404/page-data.json" crossorigin="anonymous"/><link as="fetch" rel="preload" href="/page-data/sq/d/1954253342.json" crossorigin="anonymous"/><link as="fetch" rel="preload" href="/page-data/sq/d/2328931024.json" crossorigin="anonymous"/><link as="fetch" rel="preload" href="/page-data/sq/d/2501019404.json" crossorigin="anonymous"/><link as="fetch" rel="preload" href="/page-data/sq/d/973074209.json" crossorigin="anonymous"/><link as="fetch" rel="preload" href="/page-data/app-data.json" crossorigin="anonymous"/></head><body><div id="___gatsby"><style data-emotion-css="6ifimc">*,*::after,*::before{margin:0;padding:0;box-sizing:border-box;}body{font-size:16px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif;background-color:#FFFFFF;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;overflow-y:scroll;}h1{font-size:32px;color:#3D3D4D;font-weight:bold;margin-bottom:24px;}h2{font-size:24px;}h3{font-size:18px;}h4{font-size:16px;}h2,h3,h4,h5,h6{color:#3D3D4D;margin:24px 0 16px 0;font-weight:bold;}p{color:#6C6C80;font-size:16px;line-height:28px;margin-bottom:16px;font-weight:400;}code.inline-code{display:inline-block;vertical-align:middle;line-height:1;padding:0.2em;background-color:#44475a;color:rgba(248,248,242);font-size:14px;border-radius:3px;font-feature-settings:'clig' 0,'calt' 0;font-variant:no-common-ligatures no-discretionary-ligatures no-historical-ligatures no-contextual;}h1 code.inline-code,h2 code.inline-code{font-size:calc(100% - 5px);padding:4px;}a{color:#6C6C80;font-weight:bold;-webkit-text-decoration:none;text-decoration:none;}a:hover{-webkit-text-decoration:underline;text-decoration:underline;}blockquote{margin-bottom:16px;width:100%;}blockquote p{padding:1rem;border-radius:5px;background:#F2F2FA;color:#6C6C80;margin:0;}hr{border:0;height:0;border-top:1px solid rgba(0,0,0,0.1);border-bottom:1px solid rgba(255,255,255,0.3);}table{border-collapse:separate;border-spacing:0 4px;margin-top:-4px;margin-bottom:16px;width:100%;}table th,table td{margin:0;color:#6C6C80;background-color:#F2F2FA;border:solid 1px #F2F2FA;border-style:solid none;padding:12px;}table th:first-of-type,table td:first-of-type{border-left-style:solid;border-top-left-radius:5px;border-bottom-left-radius:5px;}table th:last-child,table td:last-child{border-right-style:solid;border-bottom-right-radius:5px;border-top-right-radius:5px;}table tr th{color:#3D3D4D;text-align:left;font-weight:bold;}iframe{margin-bottom:16px;}img{max-width:100%;}ul,ol{color:#6C6C80;padding-left:15px;margin-bottom:16px;}ul li,ol li{line-height:28px;}.gatsby-highlight{font-family:Hack,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-variant:no-common-ligatures no-discretionary-ligatures no-historical-ligatures no-contextual;position:relative;z-index:0;margin:0 0 16px 0;overflow:auto;}.gatsby-highlight .token{font-style:normal !important;}pre[class*='language-'] code{font-family:inherit;}pre[class*='language-']::before{background:#d9d7e0;border-radius:0 0 4px 4px;color:#232129;font-size:12px;font-family:inherit;-webkit-letter-spacing:0.075em;-moz-letter-spacing:0.075em;-ms-letter-spacing:0.075em;letter-spacing:0.075em;line-height:1;padding:0.25rem 0.5rem;position:absolute;left:1rem;text-align:right;text-transform:uppercase;top:0;}pre[class~='language-js']::before,pre[class~='language-javascript']::before{content:'js';background:#f7df1e;}pre[class~='language-jsx']::before{content:'jsx';background:#61dafb;}pre[class~='language-typescript']::before,pre[class~='language-ts']::before{content:'ts';background:#294e80;color:#fff;}pre[class~='language-tsx']::before{content:'tsx';background:#294e80;color:#fff;}pre[class~='language-graphql']::before{content:'GraphQL';background:#e10098;color:#fff;}pre[class~='language-html']::before{content:'html';background:#005a9c;color:#fff;}pre[class~='language-css']::before{content:'css';background:#ff9800;color:#fff;}pre[class~='language-mdx']::before{content:'mdx';background:#f9ac00;color:#fff;}pre[class~='language-shell']::before{content:'shell';}pre[class~='language-sh']::before{content:'sh';}pre[class~='language-bash']::before{content:'bash';}pre[class~='language-yaml']::before,pre[class~='language-yml']::before{content:'yaml';background:#ffa8df;}pre[class~='language-markdown']::before{content:'md';}pre[class~='language-json']::before,pre[class~='language-json5']::before{content:'json';background:linen;}pre[class~='language-diff']::before{content:'diff';background:#e6ffed;}pre[class~='language-text']::before{content:'text';background:#fff;}pre[class~='language-flow']::before{content:'flow';background:#e8bd36;}</style><div style="outline:none" tabindex="-1" id="gatsby-focus-wrapper"><style data-emotion-css="7gspsd">.css-7gspsd::after{content:'';position:fixed;width:100%;height:100%;left:0;right:0;bottom:0;background-color:rgba(0,0,0,0.8);z-index:999;display:none;}</style><div aria-label="Close menu" class="css-7gspsd"></div><style data-emotion-css="1i3ij69">.css-1i3ij69{width:100%;max-width:1400px;margin:0 auto;padding:0 24px;display:grid;grid-template-columns:280px calc(100% - 320px);grid-auto-flow:row;grid-gap:40px;}@media (max-width:780px){.css-1i3ij69{padding:24px;grid-template-columns:100%;}}</style><div class="css-1i3ij69 eees1d50"><style data-emotion-css="efco39">.css-efco39{width:100%;overflow-y:auto;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;position:-webkit-sticky;position:sticky;top:0;padding-top:36px;-webkit-transition:-webkit-transform 0.5s;-webkit-transition:transform 0.5s;transition:transform 0.5s;height:calc(100vh - 1px);}.css-efco39 nav{width:100%;padding-top:24px;-webkit-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start;-webkit-flex:1;-ms-flex:1;flex:1;}@media (max-width:780px){.css-efco39{max-width:75%;min-width:auto;z-index:1001;position:fixed;top:0;bottom:0;left:0;padding-top:32px;background:#FFFFFF;-webkit-transform:translate3d( -100%,0,0 );-ms-transform:translate3d( -100%,0,0 );transform:translate3d( -100%,0,0 );}}</style><aside class="css-efco39 e1wh78ri0"><style data-emotion-css="2yrou">.css-2yrou{width:100%;}.css-2yrou a{width:100%;padding-left:30px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}</style><div class="css-2yrou e1wh78ri1"><a aria-label="Go to home page" href="/"><img src="/static/logo-f730a0b8e533f2d4da7bd901d2b7ab80.png" alt="Logo" width="90px" height="80px"/></a></div><nav><style data-emotion-css="mbmci8">.css-mbmci8{list-style:none;width:100%;padding-left:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}</style><ul class="css-mbmci8 e1wh78ri2"><style data-emotion-css="1wldk6c">.css-1wldk6c{font-size:15px;width:100%;-webkit-transition:all 200ms ease-in-out;transition:all 200ms ease-in-out;padding:0 20px;cursor:pointer;}.css-1wldk6c a,.css-1wldk6c span{display:block;font-size:15px;color:#6C6C80;background-color:#FFFFFF;padding:4px 10px;margin:4px 0;border-radius:4px;font-weight:normal;-webkit-text-decoration:none;text-decoration:none;width:100%;height:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;cursor:pointer;margin:0 auto;-webkit-transition:all 0.2s ease;transition:all 0.2s ease;}.css-1wldk6c a svg,.css-1wldk6c span svg{width:20px;height:20px;margin-right:10px;}.css-1wldk6c a:not(.active-link):hover,.css-1wldk6c span:not(.active-link):hover{color:#8257E6;}.css-1wldk6c a.active-link,.css-1wldk6c span.active-link{color:#8257E6;background-color:#F2F2FA;}@media (max-width:780px){.css-1wldk6c a.active-link,.css-1wldk6c span.active-link{background:#F2F2FA;}}</style><li class="css-1wldk6c e1wh78ri4"><a href="/">Introduction</a></li><li class="css-1wldk6c e1wh78ri4"><a href="https://github.com/apache/incubator-liminal/blob/master/README.md" rel="noopener noreferrer">Getting started<svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" style="width:16px;height:16px;margin-left:10px" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1="10" y1="14" x2="21" y2="3"></line></svg></a></li><li class="css-1wldk6c e1wh78ri4"><a href="/usage/arch">Architecture</a></li><style data-emotion-css="mximbs">.css-mximbs{padding-left:30px;width:100%;text-transform:uppercase;font-size:14px;font-weight:bold;margin-top:20px;color:#3D3D4D;-webkit-letter-spacing:0.142em;-moz-letter-spacing:0.142em;-ms-letter-spacing:0.142em;letter-spacing:0.142em;}</style><li class="css-mximbs e1wh78ri3">Community</li><style data-emotion-css="157nhwy">.css-157nhwy{list-style:none;width:100%;padding-left:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;margin:5px 0 0 0;}</style><ul class="css-157nhwy e1wh78ri5"><li class="css-1wldk6c e1wh78ri4"><a href="https://github.com/apache/incubator-liminal" rel="noopener noreferrer">Github<svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" style="width:16px;height:16px;margin-left:10px" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1="10" y1="14" x2="21" y2="3"></line></svg></a></li><li class="css-1wldk6c e1wh78ri4"><a href="https://lists.apache.org/list.html?dev@liminal.apache.org" rel="noopener noreferrer">Dev-Mailing-List<svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" style="width:16px;height:16px;margin-left:10px" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1="10" y1="14" x2="21" y2="3"></line></svg></a></li></ul></ul></nav></aside><style data-emotion-css="19vacph">.css-19vacph{height:100%;padding-top:36px;width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;position:relative;}@media (max-width:1200px){.css-19vacph{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}}@media (max-width:780px){.css-19vacph{padding-top:0;}}</style><main class="css-19vacph eees1d51"><style data-emotion-css="9q3p0l">.css-9q3p0l{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:40px;margin-bottom:24px;}.css-9q3p0l h2{margin:0;border:none;padding:0;font-size:18px;}@media (max-width:359px){.css-9q3p0l h2{font-size:14px;}}.css-9q3p0l button{border:none;background:none;cursor:pointer;margin-right:16px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}@media (min-width:780px){.css-9q3p0l{display:none;}}</style><header class="css-9q3p0l esnpb7p0"><button aria-label="Open sidebar" type="button"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 512 512" size="23" aria-hidden="true" height="23" width="23" xmlns="http://www.w3.org/2000/svg"><path d="M32 96v64h448V96H32zm0 128v64h448v-64H32zm0 128v64h448v-64H32z"></path></svg></button><h2></h2></header><style data-emotion-css="enx1eb">.css-enx1eb{display:none;}@media (max-width:1200px){.css-enx1eb{display:block;}}</style><h1 class="css-enx1eb">Page not found!</h1><style data-emotion-css="1ehkd4h">.css-1ehkd4h{width:100%;max-width:calc(75% - 64px);padding-right:64px;}@media (max-width:1200px){.css-1ehkd4h{max-width:100%;padding-right:0;-webkit-order:3;-ms-flex-order:3;order:3;}}</style><div class="css-1ehkd4h eees1d52"><style data-emotion-css="1n3b8my">@media (max-width:1200px){.css-1n3b8my{display:none;}}</style><h1 class="css-1n3b8my">Page not found!</h1><p>You just hit a route that doesn&#x27;t exist... the sadness.</p><p>If you&#x27;d like to go back to homepage, <a href="/">click here</a>.</p></div><style data-emotion-css="15t48j3">.css-15t48j3{position:-webkit-sticky;position:sticky;top:0;-webkit-order:2;-ms-flex-order:2;order:2;padding-top:72px;max-height:calc(100vh - 72px);overflow-y:auto;width:100%;max-width:200px;}@media (max-width:1200px){.css-15t48j3{position:relative;top:auto;-webkit-order:0;-ms-flex-order:0;order:0;max-width:100%;margin-left:0;padding-top:0;}}</style><div class="css-15t48j3 e10o0eax0"></div></main></div></div><div id="gatsby-announcer" style="position:absolute;top:0;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0" aria-live="assertive" aria-atomic="true"></div></div><script id="gatsby-script-loader">/*<![CDATA[*/window.pagePath="/404";/*]]>*/</script><script id="gatsby-chunk-mapping">/*<![CDATA[*/window.___chunkMapping={"polyfill":["/polyfill-46800a246443c64ac6e0.js"],"app":["/app-dc092efbd8d9d25365f0.js"],"component---cache-caches-gatsby-plugin-offline-app-shell-js":["/component---cache-caches-gatsby-plugin-offline-app-shell-js-5a1ee105f05b3144b807.js"],"component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-docs-query-js":["/component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-docs-query-js-45096b7ad4a0af4f2241.js"],"component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js":["/component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js-bac143fcc98b6926a57f.js"],"component---src-pages-404-js":["/component---src-pages-404-js-04beac219105c3e149b3.js"]};/*]]>*/</script><script src="/polyfill-46800a246443c64ac6e0.js" nomodule=""></script><script src="/component---src-pages-404-js-04beac219105c3e149b3.js" async=""></script><script src="/a7629950cb7a18c7593baf47d0acfe798f1cddc4-4c1232454ad5571a0b75.js" async=""></script><script src="/5e2a4920-cba84c59a4ec3c5b642e.js" async=""></script><script src="/545f34e4-7dfe072c8eed183902e6.js" async=""></script><script src="/app-dc092efbd8d9d25365f0.js" async=""></script><script src="/f0e45107-ff2c7ac7fae000cceb4b.js" async=""></script><script src="/framework-85aff51d15c28c7fbe5f.js" async=""></script><script src="/webpack-runtime-20f9c665c2949ed076fe.js" async=""></script></body></html>
\ No newline at end of file
diff --git a/chunk-map.json b/chunk-map.json
index 805de60..5a4a1f3 100644
--- a/chunk-map.json
+++ b/chunk-map.json
@@ -1 +1 @@
-{"polyfill":["/polyfill-46800a246443c64ac6e0.js"],"app":["/app-dc092efbd8d9d25365f0.js"],"component---cache-caches-gatsby-plugin-offline-app-shell-js":["/component---cache-caches-gatsby-plugin-offline-app-shell-js-5a1ee105f05b3144b807.js"],"component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-docs-query-js":["/component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-docs-query-js-45096b7ad4a0af4f2241.js"],"component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js":["/component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js-c50cb61fe2c65deeaa10.js"],"component---src-pages-404-js":["/component---src-pages-404-js-04beac219105c3e149b3.js"]}
\ No newline at end of file
+{"polyfill":["/polyfill-46800a246443c64ac6e0.js"],"app":["/app-dc092efbd8d9d25365f0.js"],"component---cache-caches-gatsby-plugin-offline-app-shell-js":["/component---cache-caches-gatsby-plugin-offline-app-shell-js-5a1ee105f05b3144b807.js"],"component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-docs-query-js":["/component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-docs-query-js-45096b7ad4a0af4f2241.js"],"component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js":["/component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js-bac143fcc98b6926a57f.js"],"component---src-pages-404-js":["/component---src-pages-404-js-04beac219105c3e149b3.js"]}
\ No newline at end of file
diff --git a/component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js-bac143fcc98b6926a57f.js b/component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js-bac143fcc98b6926a57f.js
new file mode 100644
index 0000000..2d71748
--- /dev/null
+++ b/component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js-bac143fcc98b6926a57f.js
@@ -0,0 +1,2 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{xQMu:function(t,e,n){"use strict";n.r(e);n("q1tI");var l=n("wx14"),i=n("zLVn"),c=n("7ljp"),a=n("qKvR"),r={_frontmatter:{}};function o(t){var e=t.components,n=Object(i.a)(t,["components"]);return Object(c.mdx)("wrapper",Object(l.a)({},r,n,{components:e,mdxType:"MDXLayout"}),Object(c.mdx)("p",{style:{fontFamily:"calibri",textAlign:"center"}},Object(c.mdx)("a",{href:"https://databricks.com/session_eu20/apache-liminal-incubating-operationalise-the-machine-learning-pipeline",style:{color:"blue",fontFamily:"calibri",textAlign:"center",fontSize:"24px"}},Object(c.mdx)("u",null,"Join our session at the Data & AI Summit Europe!")),Object(c.mdx)("h2",{style:{fontFamily:"calibri",textAlign:"center",color:"#001B3D",fontSize:"36px"}},"Apache Liminal (Incubating)"),Object(c.mdx)("h2",{style:{fontFamily:"calibri",textAlign:"center",color:"#001B3D",fontSize:"30px"}},"The Machine-Learning Orchestration Platform"),Object(c.mdx)("br",null),Object(c.mdx)("i",null,"Liminal's")," goal is to operationalise the machine learning process, allowing data scientists to quickly transition from a successful experiment to an automated pipeline of model training, validation, deployment and inference in production.",Object(c.mdx)("br",null),Object(c.mdx)("br",null)),Object(c.mdx)("br",null),Object(c.mdx)("br",null),Object(c.mdx)("p",{style:{textAlign:"center"}},Object(c.mdx)("img",{src:"./liminal_03.png",alt:"Liminal"})),Object(c.mdx)("br",null),Object(c.mdx)("p",{style:{fontFamily:"calibri",textAlign:"center"}},Object(c.mdx)("br",null)),Object(c.mdx)("h2",{style:{textAlign:"center",fontFamily:"calibri",color:"#6e6262",fontSize:"30px"}},"Why ",Object(c.mdx)("i",null,"Liminal")," ?"),Object(c.mdx)("p",{style:{textAlign:"center",fontSize:"14px",fontFamily:"calibri"}},Object(c.mdx)("img",{src:"./keep.png",alt:"Liminal",width:"150px",height:"150px"}),Object(c.mdx)("br",null),Object(c.mdx)("p",null,Object(c.mdx)("strong",{parentName:"p"},"KEEP")," your ",Object(c.mdx)("em",{parentName:"p"},"Existing")," tech-stack."),Object(c.mdx)("img",{src:"./focus.png",alt:"Liminal",width:"150px",height:"150px"}),Object(c.mdx)("br",null),Object(c.mdx)("p",null,Object(c.mdx)("strong",{parentName:"p"},"Let")," Data-scientists ",Object(c.mdx)("strong",{parentName:"p"},"FOCUS")," in ML/AI."),Object(c.mdx)("img",{src:"./scale.png",alt:"Liminal",width:"150px",height:"150px"}),Object(c.mdx)("br",null),Object(c.mdx)("p",null,Object(c.mdx)("strong",{parentName:"p"},"SCALE")," your workloads to ",Object(c.mdx)("strong",{parentName:"p"},"MEET")," production faster.")),Object(c.mdx)("br",null),Object(c.mdx)("br",null),Object(c.mdx)("p",{style:{fontFamily:"calibri",textAlign:"center",color:"#001B3D",fontSize:"24px"}},Object(c.mdx)("a",{href:"https://github.com/apache/incubator-liminal/blob/master/README.md",style:{color:"#001B3D"}},Object(c.mdx)("u",null,"Get started now!"))),Object(c.mdx)("br",null),Object(c.mdx)("br",null),Object(c.mdx)("p",{style:{textAlign:"center",fontSize:"10px"}},Object(c.mdx)("img",{src:"./logo.png",align:"middle",alt:"Logo",width:"45px",height:"45px"}),Object(c.mdx)("br",null),"Copyright © 2020 The Apache Software Foundation."))}o.isMDXComponent=!0;var m=n("tnhK"),b=n("dcqB");function x(){return Object(a.d)(m.a,null,Object(a.d)(b.a,null),Object(a.d)(o,null))}e.default=function(){return Object(a.d)(x,null)}}}]);
+//# sourceMappingURL=component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js-bac143fcc98b6926a57f.js.map
\ No newline at end of file
diff --git a/component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js-bac143fcc98b6926a57f.js.map b/component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js-bac143fcc98b6926a57f.js.map
new file mode 100644
index 0000000..ac612c0
--- /dev/null
+++ b/component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js-bac143fcc98b6926a57f.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["webpack:///./src/@rocketseat/gatsby-theme-docs/text/index.mdx","webpack:///./node_modules/@rocketseat/gatsby-theme-docs/src/components/Homepage.js","webpack:///./node_modules/@rocketseat/gatsby-theme-docs-core/src/templates/homepage-query.js","webpack:///./node_modules/@rocketseat/gatsby-theme-docs/src/@rocketseat/gatsby-theme-docs-core/components/Homepage.js"],"names":["layoutProps","_frontmatter","MDXContent","components","props","mdxType","style","href","src","alt","width","height","parentName","align","isMDXComponent","Home","Layout","SEO","HomepageComponent"],"mappings":"gKAMMA,EAAc,CAClBC,aAF0B,IAKb,SAASC,EAAT,GAGZ,IAFDC,EAEC,EAFDA,WACGC,EACF,8BACD,OAAO,cALS,UAKT,eAAeJ,EAAiBI,EAAhC,CAAuCD,WAAYA,EAAYE,QAAQ,cAC5E,mBAAGC,MAAO,CACR,WAAc,UACd,UAAa,WAEb,mBAAGC,KAAK,6GAA6GD,MAAO,CAC1H,MAAS,OACT,WAAc,UACd,UAAa,SACb,SAAY,SACX,4EACH,oBAAIA,MAAO,CACT,WAAc,UACd,UAAa,SACb,MAAS,UACT,SAAY,SAJd,+BAMA,oBAAIA,MAAO,CACT,WAAc,UACd,UAAa,SACb,MAAS,UACT,SAAY,SAJd,+CAMA,yBACA,oCAvBF,uOAwBE,yBACA,0BAEF,yBACA,yBACA,mBAAGA,MAAO,CACR,UAAa,WAEb,qBAAKE,IAAI,mBAAmBC,IAAI,aAElC,yBACA,mBAAGH,MAAO,CACR,WAAc,UACd,UAAa,WAEb,0BAEF,oBAAIA,MAAO,CACT,UAAa,SACb,WAAc,UACd,MAAS,UACT,SAAY,SAJd,OAKO,kCALP,MAMA,mBAAGA,MAAO,CACR,UAAa,SACb,SAAY,OACZ,WAAc,YAEd,qBAAKE,IAAI,aAAaC,IAAI,UAAUC,MAAM,QAAQC,OAAO,UAAU,yBACnE,uBAAG,wBAAQC,WAAW,KAAnB,QAAH,SAAqD,oBAAIA,WAAW,KAAf,YAArD,gBACA,qBAAKJ,IAAI,cAAcC,IAAI,UAAUC,MAAM,QAAQC,OAAO,UAAU,yBACpE,uBAAG,wBAAQC,WAAW,KAAnB,OAAH,oBAA+D,wBAAQA,WAAW,KAAnB,SAA/D,cACA,qBAAKJ,IAAI,cAAcC,IAAI,UAAUC,MAAM,QAAQC,OAAO,UAAU,yBACpE,uBAAG,wBAAQC,WAAW,KAAnB,SAAH,sBAAmE,wBAAQA,WAAW,KAAnB,QAAnE,wBAEF,yBACA,yBACA,mBAAGN,MAAO,CACR,WAAc,UACd,UAAa,SACb,MAAS,UACT,SAAY,SAEZ,mBAAGC,KAAK,oEAAoED,MAAO,CACjF,MAAS,YACR,6CAEL,yBACA,yBACA,mBAAGA,MAAO,CACR,UAAa,SACb,SAAY,SAEZ,qBAAKE,IAAI,aAAaK,MAAM,SAASJ,IAAI,OAAOC,MAAM,OAAOC,OAAO,SACpE,yBALF,qDAYJT,EAAWY,gBAAiB,E,4BC9Fb,SAASC,IACtB,OACE,YAACC,EAAA,EAAD,KACE,YAACC,EAAA,EAAD,MACA,YAAC,EAAD,OCRSC,UCEA,WACb,OAAO,YAACH,EAAD","file":"component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js-bac143fcc98b6926a57f.js","sourcesContent":["import * as React from 'react'\n  /* @jsx mdx */\nimport { mdx } from '@mdx-js/react';\n/* @jsx mdx */\n\nexport const _frontmatter = {};\nconst layoutProps = {\n  _frontmatter\n};\nconst MDXLayout = \"wrapper\";\nexport default function MDXContent({\n  components,\n  ...props\n}) {\n  return <MDXLayout {...layoutProps} {...props} components={components} mdxType=\"MDXLayout\">\n    <p style={{\n      \"fontFamily\": \"calibri\",\n      \"textAlign\": \"center\"\n    }}>\n      <a href=\"https://databricks.com/session_eu20/apache-liminal-incubating-operationalise-the-machine-learning-pipeline\" style={{\n        \"color\": \"blue\",\n        \"fontFamily\": \"calibri\",\n        \"textAlign\": \"center\",\n        \"fontSize\": \"24px\"\n      }}><u>Join our session at the Data & AI Summit Europe!</u></a>\n      <h2 style={{\n        \"fontFamily\": \"calibri\",\n        \"textAlign\": \"center\",\n        \"color\": \"#001B3D\",\n        \"fontSize\": \"36px\"\n      }}>Apache Liminal (Incubating)</h2>\n      <h2 style={{\n        \"fontFamily\": \"calibri\",\n        \"textAlign\": \"center\",\n        \"color\": \"#001B3D\",\n        \"fontSize\": \"30px\"\n      }}>The Machine-Learning Orchestration Platform</h2>\n      <br />\n      <i>Liminal's</i> goal is to operationalise the machine learning process, allowing data scientists to quickly transition from a successful experiment to an automated pipeline of model training, validation, deployment and inference in production.\n      <br />\n      <br />\n    </p>\n    <br />\n    <br />\n    <p style={{\n      \"textAlign\": \"center\"\n    }}>\n      <img src=\"./liminal_03.png\" alt=\"Liminal\" />\n    </p>\n    <br />\n    <p style={{\n      \"fontFamily\": \"calibri\",\n      \"textAlign\": \"center\"\n    }}>\n      <br />\n    </p>\n    <h2 style={{\n      \"textAlign\": \"center\",\n      \"fontFamily\": \"calibri\",\n      \"color\": \"#6e6262\",\n      \"fontSize\": \"30px\"\n    }}>Why <i>Liminal</i> ?</h2>\n    <p style={{\n      \"textAlign\": \"center\",\n      \"fontSize\": \"14px\",\n      \"fontFamily\": \"calibri\"\n    }}>\n      <img src=\"./keep.png\" alt=\"Liminal\" width=\"150px\" height=\"150px\" /><br />\n      <p><strong parentName=\"p\">{`KEEP`}</strong>{` your `}<em parentName=\"p\">{`Existing`}</em>{` tech-stack.`}</p>\n      <img src=\"./focus.png\" alt=\"Liminal\" width=\"150px\" height=\"150px\" /><br />\n      <p><strong parentName=\"p\">{`Let`}</strong>{` Data-scientists `}<strong parentName=\"p\">{`FOCUS`}</strong>{` in ML/AI.`}</p>\n      <img src=\"./scale.png\" alt=\"Liminal\" width=\"150px\" height=\"150px\" /><br />\n      <p><strong parentName=\"p\">{`SCALE`}</strong>{` your workloads to `}<strong parentName=\"p\">{`MEET`}</strong>{` production faster.`}</p>\n    </p>\n    <br />\n    <br />\n    <p style={{\n      \"fontFamily\": \"calibri\",\n      \"textAlign\": \"center\",\n      \"color\": \"#001B3D\",\n      \"fontSize\": \"24px\"\n    }}>\n      <a href=\"https://github.com/apache/incubator-liminal/blob/master/README.md\" style={{\n        \"color\": \"#001B3D\"\n      }}><u>Get started now!</u></a>\n    </p>\n    <br />\n    <br />\n    <p style={{\n      \"textAlign\": \"center\",\n      \"fontSize\": \"10px\"\n    }}>\n      <img src=\"./logo.png\" align=\"middle\" alt=\"Logo\" width=\"45px\" height=\"45px\" />\n      <br />\nCopyright © 2020 The Apache Software Foundation.\n    </p>\n\n    </MDXLayout>;\n}\n;\nMDXContent.isMDXComponent = true;\n      ","import React from 'react';\nimport Index from '../text/index.mdx';\n\nimport Layout from './Layout';\nimport SEO from './SEO';\n\nexport default function Home() {\n  return (\n    <Layout>\n      <SEO />\n      <Index />\n    </Layout>\n  );\n}\n","import HomepageComponent from '../components/Homepage';\n\nexport default HomepageComponent;\n","/* eslint-disable react/prop-types */\nimport React from 'react';\nimport Home from '../../../components/Homepage';\n\nexport default function Homepage() {\n  return <Home />;\n}\n"],"sourceRoot":""}
\ No newline at end of file
diff --git a/component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js-c50cb61fe2c65deeaa10.js b/component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js-c50cb61fe2c65deeaa10.js
deleted file mode 100644
index b82dc38..0000000
--- a/component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js-c50cb61fe2c65deeaa10.js
+++ /dev/null
@@ -1,2 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{xQMu:function(t,e,n){"use strict";n.r(e);n("q1tI");var l=n("wx14"),i=n("zLVn"),c=n("7ljp"),a=n("qKvR"),m={_frontmatter:{}};function r(t){var e=t.components,n=Object(i.a)(t,["components"]);return Object(c.mdx)("wrapper",Object(l.a)({},m,n,{components:e,mdxType:"MDXLayout"}),Object(c.mdx)("h1",{style:{fontFamily:"calibri",textAlign:"center",color:"#6e6262"}},"Apache Liminal (Incubating)"),Object(c.mdx)("p",{style:{fontFamily:"calibri",textAlign:"center"}},Object(c.mdx)("i",null,"Liminal")," is an end-to-end platform for data engineers & scientists, allowing them to build, train and deploy machine learning models in a robust and agile way.",Object(c.mdx)("br",null),Object(c.mdx)("br",null),Object(c.mdx)("i",null,"Liminal's")," goal is to operationalise the machine learning process, allowing data scientists to quickly transition from a successful experiment to an automated pipeline of model training, validation, deployment and inference in production."),Object(c.mdx)("br",null),Object(c.mdx)("br",null),Object(c.mdx)("p",{style:{textAlign:"center"}},Object(c.mdx)("img",{src:"./liminal-flow.png",alt:"Liminal"})),Object(c.mdx)("br",null),Object(c.mdx)("h2",{style:{textAlign:"center",fontFamily:"calibri",color:"#6e6262",fontSize:"30px"}},"Why ",Object(c.mdx)("i",null,"Liminal")," ?"),Object(c.mdx)("p",{style:{textAlign:"center",fontSize:"14px",fontFamily:"calibri"}},Object(c.mdx)("img",{src:"./keep.png",alt:"Liminal",width:"150px",height:"150px"}),Object(c.mdx)("br",null),Object(c.mdx)("p",null,Object(c.mdx)("strong",{parentName:"p"},"KEEP")," your ",Object(c.mdx)("em",{parentName:"p"},"Existing")," tech-stack."),Object(c.mdx)("img",{src:"./focus.png",alt:"Liminal",width:"150px",height:"150px"}),Object(c.mdx)("br",null),Object(c.mdx)("p",null,Object(c.mdx)("strong",{parentName:"p"},"Let")," Data-scientists ",Object(c.mdx)("strong",{parentName:"p"},"FOCUS")," in ML/AI."),Object(c.mdx)("img",{src:"./scale.png",alt:"Liminal",width:"150px",height:"150px"}),Object(c.mdx)("br",null),Object(c.mdx)("p",null,Object(c.mdx)("strong",{parentName:"p"},"SCALE")," your workloads to ",Object(c.mdx)("strong",{parentName:"p"},"MEET")," production faster.")),Object(c.mdx)("br",null),Object(c.mdx)("br",null),Object(c.mdx)("br",null),Object(c.mdx)("br",null),Object(c.mdx)("p",{style:{textAlign:"center",fontSize:"10px"}},Object(c.mdx)("img",{src:"./logo.png",align:"middle",alt:"Logo",width:"45px",height:"45px"}),Object(c.mdx)("br",null),"Copyright © 2020 The Apache Software Foundation."))}r.isMDXComponent=!0;var o=n("tnhK"),d=n("dcqB");function b(){return Object(a.d)(o.a,null,Object(a.d)(d.a,null),Object(a.d)(r,null))}e.default=function(){return Object(a.d)(b,null)}}}]);
-//# sourceMappingURL=component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js-c50cb61fe2c65deeaa10.js.map
\ No newline at end of file
diff --git a/component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js-c50cb61fe2c65deeaa10.js.map b/component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js-c50cb61fe2c65deeaa10.js.map
deleted file mode 100644
index 8275461..0000000
--- a/component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js-c50cb61fe2c65deeaa10.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["webpack:///./src/@rocketseat/gatsby-theme-docs/text/index.mdx","webpack:///./node_modules/@rocketseat/gatsby-theme-docs/src/components/Homepage.js","webpack:///./node_modules/@rocketseat/gatsby-theme-docs-core/src/templates/homepage-query.js","webpack:///./node_modules/@rocketseat/gatsby-theme-docs/src/@rocketseat/gatsby-theme-docs-core/components/Homepage.js"],"names":["layoutProps","_frontmatter","MDXContent","components","props","mdxType","style","src","alt","width","height","parentName","align","isMDXComponent","Home","Layout","SEO","HomepageComponent"],"mappings":"gKAMMA,EAAc,CAClBC,aAF0B,IAKb,SAASC,EAAT,GAGZ,IAFDC,EAEC,EAFDA,WACGC,EACF,8BACD,OAAO,cALS,UAKT,eAAeJ,EAAiBI,EAAhC,CAAuCD,WAAYA,EAAYE,QAAQ,cAC5E,oBAAIC,MAAO,CACT,WAAc,UACd,UAAa,SACb,MAAS,YAHX,+BAKA,mBAAGA,MAAO,CACR,WAAc,UACd,UAAa,WAEb,kCAJF,0JAKE,yBACA,yBACA,oCAPF,wOASA,yBACA,yBACA,mBAAGA,MAAO,CACR,UAAa,WAEb,qBAAKC,IAAI,qBAAqBC,IAAI,aAEpC,yBACA,oBAAIF,MAAO,CACT,UAAa,SACb,WAAc,UACd,MAAS,UACT,SAAY,SAJd,OAKO,kCALP,MAMA,mBAAGA,MAAO,CACR,UAAa,SACb,SAAY,OACZ,WAAc,YAEd,qBAAKC,IAAI,aAAaC,IAAI,UAAUC,MAAM,QAAQC,OAAO,UAAU,yBACnE,uBAAG,wBAAQC,WAAW,KAAnB,QAAH,SAAqD,oBAAIA,WAAW,KAAf,YAArD,gBACA,qBAAKJ,IAAI,cAAcC,IAAI,UAAUC,MAAM,QAAQC,OAAO,UAAU,yBACpE,uBAAG,wBAAQC,WAAW,KAAnB,OAAH,oBAA+D,wBAAQA,WAAW,KAAnB,SAA/D,cACA,qBAAKJ,IAAI,cAAcC,IAAI,UAAUC,MAAM,QAAQC,OAAO,UAAU,yBACpE,uBAAG,wBAAQC,WAAW,KAAnB,SAAH,sBAAmE,wBAAQA,WAAW,KAAnB,QAAnE,wBAEF,yBACA,yBACA,yBACA,yBACA,mBAAGL,MAAO,CACR,UAAa,SACb,SAAY,SAEZ,qBAAKC,IAAI,aAAaK,MAAM,SAASJ,IAAI,OAAOC,MAAM,OAAOC,OAAO,SACpE,yBALF,qDAYJR,EAAWW,gBAAiB,E,4BCjEb,SAASC,IACtB,OACE,YAACC,EAAA,EAAD,KACE,YAACC,EAAA,EAAD,MACA,YAAC,EAAD,OCRSC,UCEA,WACb,OAAO,YAACH,EAAD","file":"component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js-c50cb61fe2c65deeaa10.js","sourcesContent":["import * as React from 'react'\n  /* @jsx mdx */\nimport { mdx } from '@mdx-js/react';\n/* @jsx mdx */\n\nexport const _frontmatter = {};\nconst layoutProps = {\n  _frontmatter\n};\nconst MDXLayout = \"wrapper\";\nexport default function MDXContent({\n  components,\n  ...props\n}) {\n  return <MDXLayout {...layoutProps} {...props} components={components} mdxType=\"MDXLayout\">\n    <h1 style={{\n      \"fontFamily\": \"calibri\",\n      \"textAlign\": \"center\",\n      \"color\": \"#6e6262\"\n    }}>Apache Liminal (Incubating)</h1>\n    <p style={{\n      \"fontFamily\": \"calibri\",\n      \"textAlign\": \"center\"\n    }}>\n      <i>Liminal</i> is an end-to-end platform for data engineers & scientists, allowing them to build, train and deploy machine learning models in a robust and agile way.\n      <br />\n      <br />\n      <i>Liminal's</i> goal is to operationalise the machine learning process, allowing data scientists to quickly transition from a successful experiment to an automated pipeline of model training, validation, deployment and inference in production.\n    </p>\n    <br />\n    <br />\n    <p style={{\n      \"textAlign\": \"center\"\n    }}>\n      <img src=\"./liminal-flow.png\" alt=\"Liminal\" />\n    </p>\n    <br />\n    <h2 style={{\n      \"textAlign\": \"center\",\n      \"fontFamily\": \"calibri\",\n      \"color\": \"#6e6262\",\n      \"fontSize\": \"30px\"\n    }}>Why <i>Liminal</i> ?</h2>\n    <p style={{\n      \"textAlign\": \"center\",\n      \"fontSize\": \"14px\",\n      \"fontFamily\": \"calibri\"\n    }}>\n      <img src=\"./keep.png\" alt=\"Liminal\" width=\"150px\" height=\"150px\" /><br />\n      <p><strong parentName=\"p\">{`KEEP`}</strong>{` your `}<em parentName=\"p\">{`Existing`}</em>{` tech-stack.`}</p>\n      <img src=\"./focus.png\" alt=\"Liminal\" width=\"150px\" height=\"150px\" /><br />\n      <p><strong parentName=\"p\">{`Let`}</strong>{` Data-scientists `}<strong parentName=\"p\">{`FOCUS`}</strong>{` in ML/AI.`}</p>\n      <img src=\"./scale.png\" alt=\"Liminal\" width=\"150px\" height=\"150px\" /><br />\n      <p><strong parentName=\"p\">{`SCALE`}</strong>{` your workloads to `}<strong parentName=\"p\">{`MEET`}</strong>{` production faster.`}</p>\n    </p>\n    <br />\n    <br />\n    <br />\n    <br />\n    <p style={{\n      \"textAlign\": \"center\",\n      \"fontSize\": \"10px\"\n    }}>\n      <img src=\"./logo.png\" align=\"middle\" alt=\"Logo\" width=\"45px\" height=\"45px\" />\n      <br />\nCopyright © 2020 The Apache Software Foundation.\n    </p>\n\n    </MDXLayout>;\n}\n;\nMDXContent.isMDXComponent = true;\n      ","import React from 'react';\nimport Index from '../text/index.mdx';\n\nimport Layout from './Layout';\nimport SEO from './SEO';\n\nexport default function Home() {\n  return (\n    <Layout>\n      <SEO />\n      <Index />\n    </Layout>\n  );\n}\n","import HomepageComponent from '../components/Homepage';\n\nexport default HomepageComponent;\n","/* eslint-disable react/prop-types */\nimport React from 'react';\nimport Home from '../../../components/Homepage';\n\nexport default function Homepage() {\n  return <Home />;\n}\n"],"sourceRoot":""}
\ No newline at end of file
diff --git a/index.html b/index.html
index 977375e..9fbac69 100644
--- a/index.html
+++ b/index.html
@@ -48,4 +48,4 @@
         }
       }
     })
-  </script><title data-react-helmet="true">Liminal</title><meta data-react-helmet="true" name="description" content="Apache Limial official site"/><meta data-react-helmet="true" name="image" content="http://liminal.apache.com/logo.png"/><meta data-react-helmet="true" http-equiv="x-ua-compatible" content="IE=edge,chrome=1"/><meta data-react-helmet="true" name="MobileOptimized" content="320"/><meta data-react-helmet="true" name="HandheldFriendly" content="True"/><meta data-react-helmet="true" name="google" content="notranslate"/><meta data-react-helmet="true" name="referrer" content="no-referrer-when-downgrade"/><meta data-react-helmet="true" property="og:url" content="http://liminal.apache.com"/><meta data-react-helmet="true" property="og:type" content="website"/><meta data-react-helmet="true" property="og:title" content="Liminal"/><meta data-react-helmet="true" property="og:description" content="Apache Limial official site"/><meta data-react-helmet="true" property="og:locale" content="en"/><meta data-react-helmet="true" property="og:site_name" content=""/><meta data-react-helmet="true" property="og:image" content="http://liminal.apache.com/logo.png"/><meta data-react-helmet="true" property="og:image:secure_url" content="http://liminal.apache.com/logo.png"/><meta data-react-helmet="true" property="og:image:alt" content="Banner"/><meta data-react-helmet="true" property="og:image:type" content="image/png"/><meta data-react-helmet="true" property="og:image:width" content="1200"/><meta data-react-helmet="true" property="og:image:height" content="630"/><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"/><meta data-react-helmet="true" name="twitter:title" content="Liminal"/><meta data-react-helmet="true" name="twitter:site" content="@lior.schachter"/><meta data-react-helmet="true" name="twitter:creator" content="@lior.schachter"/><meta data-react-helmet="true" name="twitter:image" content="http://liminal.apache.com/logo.png"/><meta data-react-helmet="true" name="twitter:image:src" content="http://liminal.apache.com/logo.png"/><meta data-react-helmet="true" name="twitter:image:alt" content="Banner"/><meta data-react-helmet="true" name="twitter:image:width" content="1200"/><meta data-react-helmet="true" name="twitter:image:height" content="630"/><script data-react-helmet="true" type="application/ld+json">[{"@context":"http://schema.org","@type":"WebSite","url":"http://liminal.apache.com","name":"","alternateName":"Apache Liminal"}]</script><link rel="icon" href="/favicon-32x32.png?v=f730a0b8e533f2d4da7bd901d2b7ab80" type="image/png"/><link rel="manifest" href="/manifest.webmanifest"/><link rel="apple-touch-icon" sizes="48x48" href="/icons/icon-48x48.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="72x72" href="/icons/icon-72x72.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="96x96" href="/icons/icon-96x96.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="144x144" href="/icons/icon-144x144.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="192x192" href="/icons/icon-192x192.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="256x256" href="/icons/icon-256x256.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="384x384" href="/icons/icon-384x384.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="512x512" href="/icons/icon-512x512.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="sitemap" type="application/xml" href="/sitemap.xml"/><link rel="canonical" href="https://rocketdocs.netlify.com/" data-baseprotocol="https:" data-basehost="rocketdocs.netlify.com"/><link as="script" rel="preload" href="/webpack-runtime-e7d4f0c418939174f0da.js"/><link as="script" rel="preload" href="/framework-85aff51d15c28c7fbe5f.js"/><link as="script" rel="preload" href="/f0e45107-ff2c7ac7fae000cceb4b.js"/><link as="script" rel="preload" href="/app-dc092efbd8d9d25365f0.js"/><link as="script" rel="preload" href="/545f34e4-7dfe072c8eed183902e6.js"/><link as="script" rel="preload" href="/5e2a4920-cba84c59a4ec3c5b642e.js"/><link as="script" rel="preload" href="/a7629950cb7a18c7593baf47d0acfe798f1cddc4-4c1232454ad5571a0b75.js"/><link as="script" rel="preload" href="/component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js-c50cb61fe2c65deeaa10.js"/><link as="fetch" rel="preload" href="/page-data/index/page-data.json" crossorigin="anonymous"/><link as="fetch" rel="preload" href="/page-data/sq/d/1954253342.json" crossorigin="anonymous"/><link as="fetch" rel="preload" href="/page-data/sq/d/2328931024.json" crossorigin="anonymous"/><link as="fetch" rel="preload" href="/page-data/sq/d/2501019404.json" crossorigin="anonymous"/><link as="fetch" rel="preload" href="/page-data/sq/d/973074209.json" crossorigin="anonymous"/><link as="fetch" rel="preload" href="/page-data/app-data.json" crossorigin="anonymous"/></head><body><div id="___gatsby"><style data-emotion-css="6ifimc">*,*::after,*::before{margin:0;padding:0;box-sizing:border-box;}body{font-size:16px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif;background-color:#FFFFFF;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;overflow-y:scroll;}h1{font-size:32px;color:#3D3D4D;font-weight:bold;margin-bottom:24px;}h2{font-size:24px;}h3{font-size:18px;}h4{font-size:16px;}h2,h3,h4,h5,h6{color:#3D3D4D;margin:24px 0 16px 0;font-weight:bold;}p{color:#6C6C80;font-size:16px;line-height:28px;margin-bottom:16px;font-weight:400;}code.inline-code{display:inline-block;vertical-align:middle;line-height:1;padding:0.2em;background-color:#44475a;color:rgba(248,248,242);font-size:14px;border-radius:3px;font-feature-settings:'clig' 0,'calt' 0;font-variant:no-common-ligatures no-discretionary-ligatures no-historical-ligatures no-contextual;}h1 code.inline-code,h2 code.inline-code{font-size:calc(100% - 5px);padding:4px;}a{color:#6C6C80;font-weight:bold;-webkit-text-decoration:none;text-decoration:none;}a:hover{-webkit-text-decoration:underline;text-decoration:underline;}blockquote{margin-bottom:16px;width:100%;}blockquote p{padding:1rem;border-radius:5px;background:#F2F2FA;color:#6C6C80;margin:0;}hr{border:0;height:0;border-top:1px solid rgba(0,0,0,0.1);border-bottom:1px solid rgba(255,255,255,0.3);}table{border-collapse:separate;border-spacing:0 4px;margin-top:-4px;margin-bottom:16px;width:100%;}table th,table td{margin:0;color:#6C6C80;background-color:#F2F2FA;border:solid 1px #F2F2FA;border-style:solid none;padding:12px;}table th:first-of-type,table td:first-of-type{border-left-style:solid;border-top-left-radius:5px;border-bottom-left-radius:5px;}table th:last-child,table td:last-child{border-right-style:solid;border-bottom-right-radius:5px;border-top-right-radius:5px;}table tr th{color:#3D3D4D;text-align:left;font-weight:bold;}iframe{margin-bottom:16px;}img{max-width:100%;}ul,ol{color:#6C6C80;padding-left:15px;margin-bottom:16px;}ul li,ol li{line-height:28px;}.gatsby-highlight{font-family:Hack,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-variant:no-common-ligatures no-discretionary-ligatures no-historical-ligatures no-contextual;position:relative;z-index:0;margin:0 0 16px 0;overflow:auto;}.gatsby-highlight .token{font-style:normal !important;}pre[class*='language-'] code{font-family:inherit;}pre[class*='language-']::before{background:#d9d7e0;border-radius:0 0 4px 4px;color:#232129;font-size:12px;font-family:inherit;-webkit-letter-spacing:0.075em;-moz-letter-spacing:0.075em;-ms-letter-spacing:0.075em;letter-spacing:0.075em;line-height:1;padding:0.25rem 0.5rem;position:absolute;left:1rem;text-align:right;text-transform:uppercase;top:0;}pre[class~='language-js']::before,pre[class~='language-javascript']::before{content:'js';background:#f7df1e;}pre[class~='language-jsx']::before{content:'jsx';background:#61dafb;}pre[class~='language-typescript']::before,pre[class~='language-ts']::before{content:'ts';background:#294e80;color:#fff;}pre[class~='language-tsx']::before{content:'tsx';background:#294e80;color:#fff;}pre[class~='language-graphql']::before{content:'GraphQL';background:#e10098;color:#fff;}pre[class~='language-html']::before{content:'html';background:#005a9c;color:#fff;}pre[class~='language-css']::before{content:'css';background:#ff9800;color:#fff;}pre[class~='language-mdx']::before{content:'mdx';background:#f9ac00;color:#fff;}pre[class~='language-shell']::before{content:'shell';}pre[class~='language-sh']::before{content:'sh';}pre[class~='language-bash']::before{content:'bash';}pre[class~='language-yaml']::before,pre[class~='language-yml']::before{content:'yaml';background:#ffa8df;}pre[class~='language-markdown']::before{content:'md';}pre[class~='language-json']::before,pre[class~='language-json5']::before{content:'json';background:linen;}pre[class~='language-diff']::before{content:'diff';background:#e6ffed;}pre[class~='language-text']::before{content:'text';background:#fff;}pre[class~='language-flow']::before{content:'flow';background:#e8bd36;}</style><div style="outline:none" tabindex="-1" id="gatsby-focus-wrapper"><style data-emotion-css="7gspsd">.css-7gspsd::after{content:'';position:fixed;width:100%;height:100%;left:0;right:0;bottom:0;background-color:rgba(0,0,0,0.8);z-index:999;display:none;}</style><div aria-label="Close menu" class="css-7gspsd"></div><style data-emotion-css="1i3ij69">.css-1i3ij69{width:100%;max-width:1400px;margin:0 auto;padding:0 24px;display:grid;grid-template-columns:280px calc(100% - 320px);grid-auto-flow:row;grid-gap:40px;}@media (max-width:780px){.css-1i3ij69{padding:24px;grid-template-columns:100%;}}</style><div class="css-1i3ij69 eees1d50"><style data-emotion-css="efco39">.css-efco39{width:100%;overflow-y:auto;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;position:-webkit-sticky;position:sticky;top:0;padding-top:36px;-webkit-transition:-webkit-transform 0.5s;-webkit-transition:transform 0.5s;transition:transform 0.5s;height:calc(100vh - 1px);}.css-efco39 nav{width:100%;padding-top:24px;-webkit-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start;-webkit-flex:1;-ms-flex:1;flex:1;}@media (max-width:780px){.css-efco39{max-width:75%;min-width:auto;z-index:1001;position:fixed;top:0;bottom:0;left:0;padding-top:32px;background:#FFFFFF;-webkit-transform:translate3d( -100%,0,0 );-ms-transform:translate3d( -100%,0,0 );transform:translate3d( -100%,0,0 );}}</style><aside class="css-efco39 e1wh78ri0"><style data-emotion-css="2yrou">.css-2yrou{width:100%;}.css-2yrou a{width:100%;padding-left:30px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}</style><div class="css-2yrou e1wh78ri1"><a aria-current="page" aria-label="Go to home page" class="" href="/"><img src="/static/logo-f730a0b8e533f2d4da7bd901d2b7ab80.png" alt="Logo" width="90px" height="80px"/></a></div><nav><style data-emotion-css="mbmci8">.css-mbmci8{list-style:none;width:100%;padding-left:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}</style><ul class="css-mbmci8 e1wh78ri2"><style data-emotion-css="1wldk6c">.css-1wldk6c{font-size:15px;width:100%;-webkit-transition:all 200ms ease-in-out;transition:all 200ms ease-in-out;padding:0 20px;cursor:pointer;}.css-1wldk6c a,.css-1wldk6c span{display:block;font-size:15px;color:#6C6C80;background-color:#FFFFFF;padding:4px 10px;margin:4px 0;border-radius:4px;font-weight:normal;-webkit-text-decoration:none;text-decoration:none;width:100%;height:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;cursor:pointer;margin:0 auto;-webkit-transition:all 0.2s ease;transition:all 0.2s ease;}.css-1wldk6c a svg,.css-1wldk6c span svg{width:20px;height:20px;margin-right:10px;}.css-1wldk6c a:not(.active-link):hover,.css-1wldk6c span:not(.active-link):hover{color:#8257E6;}.css-1wldk6c a.active-link,.css-1wldk6c span.active-link{color:#8257E6;background-color:#F2F2FA;}@media (max-width:780px){.css-1wldk6c a.active-link,.css-1wldk6c span.active-link{background:#F2F2FA;}}</style><li class="css-1wldk6c e1wh78ri4"><a aria-current="page" class="active-link" href="/">Introduction</a></li><li class="css-1wldk6c e1wh78ri4"><a href="/usage/arch">Architecture</a></li><li class="css-1wldk6c e1wh78ri4"><a href="https://github.com/apache/incubator-liminal/blob/master/README.md" rel="noopener noreferrer">Getting started<svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" style="width:16px;height:16px;margin-left:10px" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1="10" y1="14" x2="21" y2="3"></line></svg></a></li><style data-emotion-css="mximbs">.css-mximbs{padding-left:30px;width:100%;text-transform:uppercase;font-size:14px;font-weight:bold;margin-top:20px;color:#3D3D4D;-webkit-letter-spacing:0.142em;-moz-letter-spacing:0.142em;-ms-letter-spacing:0.142em;letter-spacing:0.142em;}</style><li class="css-mximbs e1wh78ri3">Community</li><style data-emotion-css="157nhwy">.css-157nhwy{list-style:none;width:100%;padding-left:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;margin:5px 0 0 0;}</style><ul class="css-157nhwy e1wh78ri5"><li class="css-1wldk6c e1wh78ri4"><a href="https://github.com/apache/incubator-liminal" rel="noopener noreferrer">Github<svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" style="width:16px;height:16px;margin-left:10px" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1="10" y1="14" x2="21" y2="3"></line></svg></a></li><li class="css-1wldk6c e1wh78ri4"><a href="https://lists.apache.org/list.html?dev@liminal.apache.org" rel="noopener noreferrer">Dev-Mailing-List<svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" style="width:16px;height:16px;margin-left:10px" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1="10" y1="14" x2="21" y2="3"></line></svg></a></li></ul></ul></nav></aside><style data-emotion-css="19vacph">.css-19vacph{height:100%;padding-top:36px;width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;position:relative;}@media (max-width:1200px){.css-19vacph{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}}@media (max-width:780px){.css-19vacph{padding-top:0;}}</style><main class="css-19vacph eees1d51"><style data-emotion-css="9q3p0l">.css-9q3p0l{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:40px;margin-bottom:24px;}.css-9q3p0l h2{margin:0;border:none;padding:0;font-size:18px;}@media (max-width:359px){.css-9q3p0l h2{font-size:14px;}}.css-9q3p0l button{border:none;background:none;cursor:pointer;margin-right:16px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}@media (min-width:780px){.css-9q3p0l{display:none;}}</style><header class="css-9q3p0l esnpb7p0"><button aria-label="Open sidebar" type="button"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 512 512" size="23" aria-hidden="true" height="23" width="23" xmlns="http://www.w3.org/2000/svg"><path d="M32 96v64h448V96H32zm0 128v64h448v-64H32zm0 128v64h448v-64H32z"></path></svg></button><h2></h2></header><style data-emotion-css="1ehkd4h">.css-1ehkd4h{width:100%;max-width:calc(75% - 64px);padding-right:64px;}@media (max-width:1200px){.css-1ehkd4h{max-width:100%;padding-right:0;-webkit-order:3;-ms-flex-order:3;order:3;}}</style><div class="css-1ehkd4h eees1d52"><h1 style="font-family:calibri;text-align:center;color:#6e6262">Apache Liminal (Incubating)</h1><p style="font-family:calibri;text-align:center"><i>Liminal</i> is an end-to-end platform for data engineers &amp; scientists, allowing them to build, train and deploy machine learning models in a robust and agile way.<br/><br/><i>Liminal&#x27;s</i> goal is to operationalise the machine learning process, allowing data scientists to quickly transition from a successful experiment to an automated pipeline of model training, validation, deployment and inference in production.</p><br/><br/><p style="text-align:center"><img src="./liminal-flow.png" alt="Liminal"/></p><br/><h2 style="text-align:center;font-family:calibri;color:#6e6262;font-size:30px">Why <i>Liminal</i> ?</h2><p style="text-align:center;font-size:14px;font-family:calibri"><img src="./keep.png" alt="Liminal" width="150px" height="150px"/><br/><p><strong>KEEP</strong> your <em>Existing</em> tech-stack.</p><img src="./focus.png" alt="Liminal" width="150px" height="150px"/><br/><p><strong>Let</strong> Data-scientists <strong>FOCUS</strong> in ML/AI.</p><img src="./scale.png" alt="Liminal" width="150px" height="150px"/><br/><p><strong>SCALE</strong> your workloads to <strong>MEET</strong> production faster.</p></p><br/><br/><br/><br/><p style="text-align:center;font-size:10px"><img src="./logo.png" align="middle" alt="Logo" width="45px" height="45px"/><br/>Copyright © 2020 The Apache Software Foundation.</p></div><style data-emotion-css="15t48j3">.css-15t48j3{position:-webkit-sticky;position:sticky;top:0;-webkit-order:2;-ms-flex-order:2;order:2;padding-top:72px;max-height:calc(100vh - 72px);overflow-y:auto;width:100%;max-width:200px;}@media (max-width:1200px){.css-15t48j3{position:relative;top:auto;-webkit-order:0;-ms-flex-order:0;order:0;max-width:100%;margin-left:0;padding-top:0;}}</style><div class="css-15t48j3 e10o0eax0"></div></main></div></div><div id="gatsby-announcer" style="position:absolute;top:0;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0" aria-live="assertive" aria-atomic="true"></div></div><script id="gatsby-script-loader">/*<![CDATA[*/window.pagePath="/";/*]]>*/</script><script id="gatsby-chunk-mapping">/*<![CDATA[*/window.___chunkMapping={"polyfill":["/polyfill-46800a246443c64ac6e0.js"],"app":["/app-dc092efbd8d9d25365f0.js"],"component---cache-caches-gatsby-plugin-offline-app-shell-js":["/component---cache-caches-gatsby-plugin-offline-app-shell-js-5a1ee105f05b3144b807.js"],"component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-docs-query-js":["/component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-docs-query-js-45096b7ad4a0af4f2241.js"],"component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js":["/component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js-c50cb61fe2c65deeaa10.js"],"component---src-pages-404-js":["/component---src-pages-404-js-04beac219105c3e149b3.js"]};/*]]>*/</script><script src="/polyfill-46800a246443c64ac6e0.js" nomodule=""></script><script src="/component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js-c50cb61fe2c65deeaa10.js" async=""></script><script src="/a7629950cb7a18c7593baf47d0acfe798f1cddc4-4c1232454ad5571a0b75.js" async=""></script><script src="/5e2a4920-cba84c59a4ec3c5b642e.js" async=""></script><script src="/545f34e4-7dfe072c8eed183902e6.js" async=""></script><script src="/app-dc092efbd8d9d25365f0.js" async=""></script><script src="/f0e45107-ff2c7ac7fae000cceb4b.js" async=""></script><script src="/framework-85aff51d15c28c7fbe5f.js" async=""></script><script src="/webpack-runtime-e7d4f0c418939174f0da.js" async=""></script></body></html>
\ No newline at end of file
+  </script><title data-react-helmet="true">Liminal</title><meta data-react-helmet="true" name="description" content="Apache Limial official site"/><meta data-react-helmet="true" name="image" content="http://liminal.apache.com/logo.png"/><meta data-react-helmet="true" http-equiv="x-ua-compatible" content="IE=edge,chrome=1"/><meta data-react-helmet="true" name="MobileOptimized" content="320"/><meta data-react-helmet="true" name="HandheldFriendly" content="True"/><meta data-react-helmet="true" name="google" content="notranslate"/><meta data-react-helmet="true" name="referrer" content="no-referrer-when-downgrade"/><meta data-react-helmet="true" property="og:url" content="http://liminal.apache.com"/><meta data-react-helmet="true" property="og:type" content="website"/><meta data-react-helmet="true" property="og:title" content="Liminal"/><meta data-react-helmet="true" property="og:description" content="Apache Limial official site"/><meta data-react-helmet="true" property="og:locale" content="en"/><meta data-react-helmet="true" property="og:site_name" content=""/><meta data-react-helmet="true" property="og:image" content="http://liminal.apache.com/logo.png"/><meta data-react-helmet="true" property="og:image:secure_url" content="http://liminal.apache.com/logo.png"/><meta data-react-helmet="true" property="og:image:alt" content="Banner"/><meta data-react-helmet="true" property="og:image:type" content="image/png"/><meta data-react-helmet="true" property="og:image:width" content="1200"/><meta data-react-helmet="true" property="og:image:height" content="630"/><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"/><meta data-react-helmet="true" name="twitter:title" content="Liminal"/><meta data-react-helmet="true" name="twitter:site" content="@lior.schachter"/><meta data-react-helmet="true" name="twitter:creator" content="@lior.schachter"/><meta data-react-helmet="true" name="twitter:image" content="http://liminal.apache.com/logo.png"/><meta data-react-helmet="true" name="twitter:image:src" content="http://liminal.apache.com/logo.png"/><meta data-react-helmet="true" name="twitter:image:alt" content="Banner"/><meta data-react-helmet="true" name="twitter:image:width" content="1200"/><meta data-react-helmet="true" name="twitter:image:height" content="630"/><script data-react-helmet="true" type="application/ld+json">[{"@context":"http://schema.org","@type":"WebSite","url":"http://liminal.apache.com","name":"","alternateName":"Apache Liminal"}]</script><link rel="icon" href="/favicon-32x32.png?v=f730a0b8e533f2d4da7bd901d2b7ab80" type="image/png"/><link rel="manifest" href="/manifest.webmanifest"/><link rel="apple-touch-icon" sizes="48x48" href="/icons/icon-48x48.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="72x72" href="/icons/icon-72x72.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="96x96" href="/icons/icon-96x96.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="144x144" href="/icons/icon-144x144.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="192x192" href="/icons/icon-192x192.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="256x256" href="/icons/icon-256x256.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="384x384" href="/icons/icon-384x384.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="512x512" href="/icons/icon-512x512.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="sitemap" type="application/xml" href="/sitemap.xml"/><link rel="canonical" href="https://rocketdocs.netlify.com/" data-baseprotocol="https:" data-basehost="rocketdocs.netlify.com"/><link as="script" rel="preload" href="/webpack-runtime-20f9c665c2949ed076fe.js"/><link as="script" rel="preload" href="/framework-85aff51d15c28c7fbe5f.js"/><link as="script" rel="preload" href="/f0e45107-ff2c7ac7fae000cceb4b.js"/><link as="script" rel="preload" href="/app-dc092efbd8d9d25365f0.js"/><link as="script" rel="preload" href="/545f34e4-7dfe072c8eed183902e6.js"/><link as="script" rel="preload" href="/5e2a4920-cba84c59a4ec3c5b642e.js"/><link as="script" rel="preload" href="/a7629950cb7a18c7593baf47d0acfe798f1cddc4-4c1232454ad5571a0b75.js"/><link as="script" rel="preload" href="/component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js-bac143fcc98b6926a57f.js"/><link as="fetch" rel="preload" href="/page-data/index/page-data.json" crossorigin="anonymous"/><link as="fetch" rel="preload" href="/page-data/sq/d/1954253342.json" crossorigin="anonymous"/><link as="fetch" rel="preload" href="/page-data/sq/d/2328931024.json" crossorigin="anonymous"/><link as="fetch" rel="preload" href="/page-data/sq/d/2501019404.json" crossorigin="anonymous"/><link as="fetch" rel="preload" href="/page-data/sq/d/973074209.json" crossorigin="anonymous"/><link as="fetch" rel="preload" href="/page-data/app-data.json" crossorigin="anonymous"/></head><body><div id="___gatsby"><style data-emotion-css="6ifimc">*,*::after,*::before{margin:0;padding:0;box-sizing:border-box;}body{font-size:16px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif;background-color:#FFFFFF;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;overflow-y:scroll;}h1{font-size:32px;color:#3D3D4D;font-weight:bold;margin-bottom:24px;}h2{font-size:24px;}h3{font-size:18px;}h4{font-size:16px;}h2,h3,h4,h5,h6{color:#3D3D4D;margin:24px 0 16px 0;font-weight:bold;}p{color:#6C6C80;font-size:16px;line-height:28px;margin-bottom:16px;font-weight:400;}code.inline-code{display:inline-block;vertical-align:middle;line-height:1;padding:0.2em;background-color:#44475a;color:rgba(248,248,242);font-size:14px;border-radius:3px;font-feature-settings:'clig' 0,'calt' 0;font-variant:no-common-ligatures no-discretionary-ligatures no-historical-ligatures no-contextual;}h1 code.inline-code,h2 code.inline-code{font-size:calc(100% - 5px);padding:4px;}a{color:#6C6C80;font-weight:bold;-webkit-text-decoration:none;text-decoration:none;}a:hover{-webkit-text-decoration:underline;text-decoration:underline;}blockquote{margin-bottom:16px;width:100%;}blockquote p{padding:1rem;border-radius:5px;background:#F2F2FA;color:#6C6C80;margin:0;}hr{border:0;height:0;border-top:1px solid rgba(0,0,0,0.1);border-bottom:1px solid rgba(255,255,255,0.3);}table{border-collapse:separate;border-spacing:0 4px;margin-top:-4px;margin-bottom:16px;width:100%;}table th,table td{margin:0;color:#6C6C80;background-color:#F2F2FA;border:solid 1px #F2F2FA;border-style:solid none;padding:12px;}table th:first-of-type,table td:first-of-type{border-left-style:solid;border-top-left-radius:5px;border-bottom-left-radius:5px;}table th:last-child,table td:last-child{border-right-style:solid;border-bottom-right-radius:5px;border-top-right-radius:5px;}table tr th{color:#3D3D4D;text-align:left;font-weight:bold;}iframe{margin-bottom:16px;}img{max-width:100%;}ul,ol{color:#6C6C80;padding-left:15px;margin-bottom:16px;}ul li,ol li{line-height:28px;}.gatsby-highlight{font-family:Hack,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-variant:no-common-ligatures no-discretionary-ligatures no-historical-ligatures no-contextual;position:relative;z-index:0;margin:0 0 16px 0;overflow:auto;}.gatsby-highlight .token{font-style:normal !important;}pre[class*='language-'] code{font-family:inherit;}pre[class*='language-']::before{background:#d9d7e0;border-radius:0 0 4px 4px;color:#232129;font-size:12px;font-family:inherit;-webkit-letter-spacing:0.075em;-moz-letter-spacing:0.075em;-ms-letter-spacing:0.075em;letter-spacing:0.075em;line-height:1;padding:0.25rem 0.5rem;position:absolute;left:1rem;text-align:right;text-transform:uppercase;top:0;}pre[class~='language-js']::before,pre[class~='language-javascript']::before{content:'js';background:#f7df1e;}pre[class~='language-jsx']::before{content:'jsx';background:#61dafb;}pre[class~='language-typescript']::before,pre[class~='language-ts']::before{content:'ts';background:#294e80;color:#fff;}pre[class~='language-tsx']::before{content:'tsx';background:#294e80;color:#fff;}pre[class~='language-graphql']::before{content:'GraphQL';background:#e10098;color:#fff;}pre[class~='language-html']::before{content:'html';background:#005a9c;color:#fff;}pre[class~='language-css']::before{content:'css';background:#ff9800;color:#fff;}pre[class~='language-mdx']::before{content:'mdx';background:#f9ac00;color:#fff;}pre[class~='language-shell']::before{content:'shell';}pre[class~='language-sh']::before{content:'sh';}pre[class~='language-bash']::before{content:'bash';}pre[class~='language-yaml']::before,pre[class~='language-yml']::before{content:'yaml';background:#ffa8df;}pre[class~='language-markdown']::before{content:'md';}pre[class~='language-json']::before,pre[class~='language-json5']::before{content:'json';background:linen;}pre[class~='language-diff']::before{content:'diff';background:#e6ffed;}pre[class~='language-text']::before{content:'text';background:#fff;}pre[class~='language-flow']::before{content:'flow';background:#e8bd36;}</style><div style="outline:none" tabindex="-1" id="gatsby-focus-wrapper"><style data-emotion-css="7gspsd">.css-7gspsd::after{content:'';position:fixed;width:100%;height:100%;left:0;right:0;bottom:0;background-color:rgba(0,0,0,0.8);z-index:999;display:none;}</style><div aria-label="Close menu" class="css-7gspsd"></div><style data-emotion-css="1i3ij69">.css-1i3ij69{width:100%;max-width:1400px;margin:0 auto;padding:0 24px;display:grid;grid-template-columns:280px calc(100% - 320px);grid-auto-flow:row;grid-gap:40px;}@media (max-width:780px){.css-1i3ij69{padding:24px;grid-template-columns:100%;}}</style><div class="css-1i3ij69 eees1d50"><style data-emotion-css="efco39">.css-efco39{width:100%;overflow-y:auto;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;position:-webkit-sticky;position:sticky;top:0;padding-top:36px;-webkit-transition:-webkit-transform 0.5s;-webkit-transition:transform 0.5s;transition:transform 0.5s;height:calc(100vh - 1px);}.css-efco39 nav{width:100%;padding-top:24px;-webkit-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start;-webkit-flex:1;-ms-flex:1;flex:1;}@media (max-width:780px){.css-efco39{max-width:75%;min-width:auto;z-index:1001;position:fixed;top:0;bottom:0;left:0;padding-top:32px;background:#FFFFFF;-webkit-transform:translate3d( -100%,0,0 );-ms-transform:translate3d( -100%,0,0 );transform:translate3d( -100%,0,0 );}}</style><aside class="css-efco39 e1wh78ri0"><style data-emotion-css="2yrou">.css-2yrou{width:100%;}.css-2yrou a{width:100%;padding-left:30px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}</style><div class="css-2yrou e1wh78ri1"><a aria-current="page" aria-label="Go to home page" class="" href="/"><img src="/static/logo-f730a0b8e533f2d4da7bd901d2b7ab80.png" alt="Logo" width="90px" height="80px"/></a></div><nav><style data-emotion-css="mbmci8">.css-mbmci8{list-style:none;width:100%;padding-left:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}</style><ul class="css-mbmci8 e1wh78ri2"><style data-emotion-css="1wldk6c">.css-1wldk6c{font-size:15px;width:100%;-webkit-transition:all 200ms ease-in-out;transition:all 200ms ease-in-out;padding:0 20px;cursor:pointer;}.css-1wldk6c a,.css-1wldk6c span{display:block;font-size:15px;color:#6C6C80;background-color:#FFFFFF;padding:4px 10px;margin:4px 0;border-radius:4px;font-weight:normal;-webkit-text-decoration:none;text-decoration:none;width:100%;height:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;cursor:pointer;margin:0 auto;-webkit-transition:all 0.2s ease;transition:all 0.2s ease;}.css-1wldk6c a svg,.css-1wldk6c span svg{width:20px;height:20px;margin-right:10px;}.css-1wldk6c a:not(.active-link):hover,.css-1wldk6c span:not(.active-link):hover{color:#8257E6;}.css-1wldk6c a.active-link,.css-1wldk6c span.active-link{color:#8257E6;background-color:#F2F2FA;}@media (max-width:780px){.css-1wldk6c a.active-link,.css-1wldk6c span.active-link{background:#F2F2FA;}}</style><li class="css-1wldk6c e1wh78ri4"><a aria-current="page" class="active-link" href="/">Introduction</a></li><li class="css-1wldk6c e1wh78ri4"><a href="https://github.com/apache/incubator-liminal/blob/master/README.md" rel="noopener noreferrer">Getting started<svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" style="width:16px;height:16px;margin-left:10px" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1="10" y1="14" x2="21" y2="3"></line></svg></a></li><li class="css-1wldk6c e1wh78ri4"><a href="/usage/arch">Architecture</a></li><style data-emotion-css="mximbs">.css-mximbs{padding-left:30px;width:100%;text-transform:uppercase;font-size:14px;font-weight:bold;margin-top:20px;color:#3D3D4D;-webkit-letter-spacing:0.142em;-moz-letter-spacing:0.142em;-ms-letter-spacing:0.142em;letter-spacing:0.142em;}</style><li class="css-mximbs e1wh78ri3">Community</li><style data-emotion-css="157nhwy">.css-157nhwy{list-style:none;width:100%;padding-left:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;margin:5px 0 0 0;}</style><ul class="css-157nhwy e1wh78ri5"><li class="css-1wldk6c e1wh78ri4"><a href="https://github.com/apache/incubator-liminal" rel="noopener noreferrer">Github<svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" style="width:16px;height:16px;margin-left:10px" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1="10" y1="14" x2="21" y2="3"></line></svg></a></li><li class="css-1wldk6c e1wh78ri4"><a href="https://lists.apache.org/list.html?dev@liminal.apache.org" rel="noopener noreferrer">Dev-Mailing-List<svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" style="width:16px;height:16px;margin-left:10px" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1="10" y1="14" x2="21" y2="3"></line></svg></a></li></ul></ul></nav></aside><style data-emotion-css="19vacph">.css-19vacph{height:100%;padding-top:36px;width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;position:relative;}@media (max-width:1200px){.css-19vacph{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}}@media (max-width:780px){.css-19vacph{padding-top:0;}}</style><main class="css-19vacph eees1d51"><style data-emotion-css="9q3p0l">.css-9q3p0l{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:40px;margin-bottom:24px;}.css-9q3p0l h2{margin:0;border:none;padding:0;font-size:18px;}@media (max-width:359px){.css-9q3p0l h2{font-size:14px;}}.css-9q3p0l button{border:none;background:none;cursor:pointer;margin-right:16px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}@media (min-width:780px){.css-9q3p0l{display:none;}}</style><header class="css-9q3p0l esnpb7p0"><button aria-label="Open sidebar" type="button"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 512 512" size="23" aria-hidden="true" height="23" width="23" xmlns="http://www.w3.org/2000/svg"><path d="M32 96v64h448V96H32zm0 128v64h448v-64H32zm0 128v64h448v-64H32z"></path></svg></button><h2></h2></header><style data-emotion-css="1ehkd4h">.css-1ehkd4h{width:100%;max-width:calc(75% - 64px);padding-right:64px;}@media (max-width:1200px){.css-1ehkd4h{max-width:100%;padding-right:0;-webkit-order:3;-ms-flex-order:3;order:3;}}</style><div class="css-1ehkd4h eees1d52"><p style="font-family:calibri;text-align:center"><a href="https://databricks.com/session_eu20/apache-liminal-incubating-operationalise-the-machine-learning-pipeline" style="color:blue;font-family:calibri;text-align:center;font-size:24px"><u>Join our session at the Data &amp; AI Summit Europe!</u></a><h2 style="font-family:calibri;text-align:center;color:#001B3D;font-size:36px">Apache Liminal (Incubating)</h2><h2 style="font-family:calibri;text-align:center;color:#001B3D;font-size:30px">The Machine-Learning Orchestration Platform</h2><br/><i>Liminal&#x27;s</i> goal is to operationalise the machine learning process, allowing data scientists to quickly transition from a successful experiment to an automated pipeline of model training, validation, deployment and inference in production.<br/><br/></p><br/><br/><p style="text-align:center"><img src="./liminal_03.png" alt="Liminal"/></p><br/><p style="font-family:calibri;text-align:center"><br/></p><h2 style="text-align:center;font-family:calibri;color:#6e6262;font-size:30px">Why <i>Liminal</i> ?</h2><p style="text-align:center;font-size:14px;font-family:calibri"><img src="./keep.png" alt="Liminal" width="150px" height="150px"/><br/><p><strong>KEEP</strong> your <em>Existing</em> tech-stack.</p><img src="./focus.png" alt="Liminal" width="150px" height="150px"/><br/><p><strong>Let</strong> Data-scientists <strong>FOCUS</strong> in ML/AI.</p><img src="./scale.png" alt="Liminal" width="150px" height="150px"/><br/><p><strong>SCALE</strong> your workloads to <strong>MEET</strong> production faster.</p></p><br/><br/><p style="font-family:calibri;text-align:center;color:#001B3D;font-size:24px"><a href="https://github.com/apache/incubator-liminal/blob/master/README.md" style="color:#001B3D"><u>Get started now!</u></a></p><br/><br/><p style="text-align:center;font-size:10px"><img src="./logo.png" align="middle" alt="Logo" width="45px" height="45px"/><br/>Copyright © 2020 The Apache Software Foundation.</p></div><style data-emotion-css="15t48j3">.css-15t48j3{position:-webkit-sticky;position:sticky;top:0;-webkit-order:2;-ms-flex-order:2;order:2;padding-top:72px;max-height:calc(100vh - 72px);overflow-y:auto;width:100%;max-width:200px;}@media (max-width:1200px){.css-15t48j3{position:relative;top:auto;-webkit-order:0;-ms-flex-order:0;order:0;max-width:100%;margin-left:0;padding-top:0;}}</style><div class="css-15t48j3 e10o0eax0"></div></main></div></div><div id="gatsby-announcer" style="position:absolute;top:0;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0" aria-live="assertive" aria-atomic="true"></div></div><script id="gatsby-script-loader">/*<![CDATA[*/window.pagePath="/";/*]]>*/</script><script id="gatsby-chunk-mapping">/*<![CDATA[*/window.___chunkMapping={"polyfill":["/polyfill-46800a246443c64ac6e0.js"],"app":["/app-dc092efbd8d9d25365f0.js"],"component---cache-caches-gatsby-plugin-offline-app-shell-js":["/component---cache-caches-gatsby-plugin-offline-app-shell-js-5a1ee105f05b3144b807.js"],"component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-docs-query-js":["/component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-docs-query-js-45096b7ad4a0af4f2241.js"],"component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js":["/component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js-bac143fcc98b6926a57f.js"],"component---src-pages-404-js":["/component---src-pages-404-js-04beac219105c3e149b3.js"]};/*]]>*/</script><script src="/polyfill-46800a246443c64ac6e0.js" nomodule=""></script><script src="/component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js-bac143fcc98b6926a57f.js" async=""></script><script src="/a7629950cb7a18c7593baf47d0acfe798f1cddc4-4c1232454ad5571a0b75.js" async=""></script><script src="/5e2a4920-cba84c59a4ec3c5b642e.js" async=""></script><script src="/545f34e4-7dfe072c8eed183902e6.js" async=""></script><script src="/app-dc092efbd8d9d25365f0.js" async=""></script><script src="/f0e45107-ff2c7ac7fae000cceb4b.js" async=""></script><script src="/framework-85aff51d15c28c7fbe5f.js" async=""></script><script src="/webpack-runtime-20f9c665c2949ed076fe.js" async=""></script></body></html>
\ No newline at end of file
diff --git a/liminal-flow-old.png b/liminal-flow-old.png
deleted file mode 100644
index 5cfee09..0000000
--- a/liminal-flow-old.png
+++ /dev/null
Binary files differ
diff --git a/liminal-flow-old2.png b/liminal-flow-old2.png
deleted file mode 100644
index 988a6bf..0000000
--- a/liminal-flow-old2.png
+++ /dev/null
Binary files differ
diff --git a/liminal_03.png b/liminal_03.png
new file mode 100644
index 0000000..7580d51
--- /dev/null
+++ b/liminal_03.png
Binary files differ
diff --git a/offline-plugin-app-shell-fallback/index.html b/offline-plugin-app-shell-fallback/index.html
index 7b2afb5..5734192 100644
--- a/offline-plugin-app-shell-fallback/index.html
+++ b/offline-plugin-app-shell-fallback/index.html
@@ -48,4 +48,4 @@
         }
       }
     })
-  </script><title data-react-helmet="true"></title><link rel="icon" href="/favicon-32x32.png?v=f730a0b8e533f2d4da7bd901d2b7ab80" type="image/png"/><link rel="manifest" href="/manifest.webmanifest"/><link rel="apple-touch-icon" sizes="48x48" href="/icons/icon-48x48.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="72x72" href="/icons/icon-72x72.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="96x96" href="/icons/icon-96x96.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="144x144" href="/icons/icon-144x144.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="192x192" href="/icons/icon-192x192.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="256x256" href="/icons/icon-256x256.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="384x384" href="/icons/icon-384x384.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="512x512" href="/icons/icon-512x512.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="sitemap" type="application/xml" href="/sitemap.xml"/><link rel="canonical" href="https://rocketdocs.netlify.com/offline-plugin-app-shell-fallback" data-baseprotocol="https:" data-basehost="rocketdocs.netlify.com"/><link as="script" rel="preload" href="/webpack-runtime-e7d4f0c418939174f0da.js"/><link as="script" rel="preload" href="/framework-85aff51d15c28c7fbe5f.js"/><link as="script" rel="preload" href="/f0e45107-ff2c7ac7fae000cceb4b.js"/><link as="script" rel="preload" href="/app-dc092efbd8d9d25365f0.js"/><link as="script" rel="preload" href="/component---cache-caches-gatsby-plugin-offline-app-shell-js-5a1ee105f05b3144b807.js"/><link as="fetch" rel="preload" href="/page-data/offline-plugin-app-shell-fallback/page-data.json" crossorigin="anonymous"/><link as="fetch" rel="preload" href="/page-data/app-data.json" crossorigin="anonymous"/></head><body><div id="___gatsby"><style data-emotion-css="6ifimc">*,*::after,*::before{margin:0;padding:0;box-sizing:border-box;}body{font-size:16px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif;background-color:#FFFFFF;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;overflow-y:scroll;}h1{font-size:32px;color:#3D3D4D;font-weight:bold;margin-bottom:24px;}h2{font-size:24px;}h3{font-size:18px;}h4{font-size:16px;}h2,h3,h4,h5,h6{color:#3D3D4D;margin:24px 0 16px 0;font-weight:bold;}p{color:#6C6C80;font-size:16px;line-height:28px;margin-bottom:16px;font-weight:400;}code.inline-code{display:inline-block;vertical-align:middle;line-height:1;padding:0.2em;background-color:#44475a;color:rgba(248,248,242);font-size:14px;border-radius:3px;font-feature-settings:'clig' 0,'calt' 0;font-variant:no-common-ligatures no-discretionary-ligatures no-historical-ligatures no-contextual;}h1 code.inline-code,h2 code.inline-code{font-size:calc(100% - 5px);padding:4px;}a{color:#6C6C80;font-weight:bold;-webkit-text-decoration:none;text-decoration:none;}a:hover{-webkit-text-decoration:underline;text-decoration:underline;}blockquote{margin-bottom:16px;width:100%;}blockquote p{padding:1rem;border-radius:5px;background:#F2F2FA;color:#6C6C80;margin:0;}hr{border:0;height:0;border-top:1px solid rgba(0,0,0,0.1);border-bottom:1px solid rgba(255,255,255,0.3);}table{border-collapse:separate;border-spacing:0 4px;margin-top:-4px;margin-bottom:16px;width:100%;}table th,table td{margin:0;color:#6C6C80;background-color:#F2F2FA;border:solid 1px #F2F2FA;border-style:solid none;padding:12px;}table th:first-of-type,table td:first-of-type{border-left-style:solid;border-top-left-radius:5px;border-bottom-left-radius:5px;}table th:last-child,table td:last-child{border-right-style:solid;border-bottom-right-radius:5px;border-top-right-radius:5px;}table tr th{color:#3D3D4D;text-align:left;font-weight:bold;}iframe{margin-bottom:16px;}img{max-width:100%;}ul,ol{color:#6C6C80;padding-left:15px;margin-bottom:16px;}ul li,ol li{line-height:28px;}.gatsby-highlight{font-family:Hack,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-variant:no-common-ligatures no-discretionary-ligatures no-historical-ligatures no-contextual;position:relative;z-index:0;margin:0 0 16px 0;overflow:auto;}.gatsby-highlight .token{font-style:normal !important;}pre[class*='language-'] code{font-family:inherit;}pre[class*='language-']::before{background:#d9d7e0;border-radius:0 0 4px 4px;color:#232129;font-size:12px;font-family:inherit;-webkit-letter-spacing:0.075em;-moz-letter-spacing:0.075em;-ms-letter-spacing:0.075em;letter-spacing:0.075em;line-height:1;padding:0.25rem 0.5rem;position:absolute;left:1rem;text-align:right;text-transform:uppercase;top:0;}pre[class~='language-js']::before,pre[class~='language-javascript']::before{content:'js';background:#f7df1e;}pre[class~='language-jsx']::before{content:'jsx';background:#61dafb;}pre[class~='language-typescript']::before,pre[class~='language-ts']::before{content:'ts';background:#294e80;color:#fff;}pre[class~='language-tsx']::before{content:'tsx';background:#294e80;color:#fff;}pre[class~='language-graphql']::before{content:'GraphQL';background:#e10098;color:#fff;}pre[class~='language-html']::before{content:'html';background:#005a9c;color:#fff;}pre[class~='language-css']::before{content:'css';background:#ff9800;color:#fff;}pre[class~='language-mdx']::before{content:'mdx';background:#f9ac00;color:#fff;}pre[class~='language-shell']::before{content:'shell';}pre[class~='language-sh']::before{content:'sh';}pre[class~='language-bash']::before{content:'bash';}pre[class~='language-yaml']::before,pre[class~='language-yml']::before{content:'yaml';background:#ffa8df;}pre[class~='language-markdown']::before{content:'md';}pre[class~='language-json']::before,pre[class~='language-json5']::before{content:'json';background:linen;}pre[class~='language-diff']::before{content:'diff';background:#e6ffed;}pre[class~='language-text']::before{content:'text';background:#fff;}pre[class~='language-flow']::before{content:'flow';background:#e8bd36;}</style><div style="outline:none" tabindex="-1" id="gatsby-focus-wrapper"></div><div id="gatsby-announcer" style="position:absolute;top:0;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0" aria-live="assertive" aria-atomic="true"></div></div><script id="gatsby-script-loader">/*<![CDATA[*/window.pagePath="/offline-plugin-app-shell-fallback";/*]]>*/</script><script id="gatsby-chunk-mapping">/*<![CDATA[*/window.___chunkMapping={"polyfill":["/polyfill-46800a246443c64ac6e0.js"],"app":["/app-dc092efbd8d9d25365f0.js"],"component---cache-caches-gatsby-plugin-offline-app-shell-js":["/component---cache-caches-gatsby-plugin-offline-app-shell-js-5a1ee105f05b3144b807.js"],"component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-docs-query-js":["/component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-docs-query-js-45096b7ad4a0af4f2241.js"],"component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js":["/component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js-c50cb61fe2c65deeaa10.js"],"component---src-pages-404-js":["/component---src-pages-404-js-04beac219105c3e149b3.js"]};/*]]>*/</script><script src="/polyfill-46800a246443c64ac6e0.js" nomodule=""></script><script src="/component---cache-caches-gatsby-plugin-offline-app-shell-js-5a1ee105f05b3144b807.js" async=""></script><script src="/app-dc092efbd8d9d25365f0.js" async=""></script><script src="/f0e45107-ff2c7ac7fae000cceb4b.js" async=""></script><script src="/framework-85aff51d15c28c7fbe5f.js" async=""></script><script src="/webpack-runtime-e7d4f0c418939174f0da.js" async=""></script></body></html>
\ No newline at end of file
+  </script><title data-react-helmet="true"></title><link rel="icon" href="/favicon-32x32.png?v=f730a0b8e533f2d4da7bd901d2b7ab80" type="image/png"/><link rel="manifest" href="/manifest.webmanifest"/><link rel="apple-touch-icon" sizes="48x48" href="/icons/icon-48x48.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="72x72" href="/icons/icon-72x72.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="96x96" href="/icons/icon-96x96.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="144x144" href="/icons/icon-144x144.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="192x192" href="/icons/icon-192x192.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="256x256" href="/icons/icon-256x256.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="384x384" href="/icons/icon-384x384.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="512x512" href="/icons/icon-512x512.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="sitemap" type="application/xml" href="/sitemap.xml"/><link rel="canonical" href="https://rocketdocs.netlify.com/offline-plugin-app-shell-fallback" data-baseprotocol="https:" data-basehost="rocketdocs.netlify.com"/><link as="script" rel="preload" href="/webpack-runtime-20f9c665c2949ed076fe.js"/><link as="script" rel="preload" href="/framework-85aff51d15c28c7fbe5f.js"/><link as="script" rel="preload" href="/f0e45107-ff2c7ac7fae000cceb4b.js"/><link as="script" rel="preload" href="/app-dc092efbd8d9d25365f0.js"/><link as="script" rel="preload" href="/component---cache-caches-gatsby-plugin-offline-app-shell-js-5a1ee105f05b3144b807.js"/><link as="fetch" rel="preload" href="/page-data/offline-plugin-app-shell-fallback/page-data.json" crossorigin="anonymous"/><link as="fetch" rel="preload" href="/page-data/app-data.json" crossorigin="anonymous"/></head><body><div id="___gatsby"><style data-emotion-css="6ifimc">*,*::after,*::before{margin:0;padding:0;box-sizing:border-box;}body{font-size:16px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif;background-color:#FFFFFF;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;overflow-y:scroll;}h1{font-size:32px;color:#3D3D4D;font-weight:bold;margin-bottom:24px;}h2{font-size:24px;}h3{font-size:18px;}h4{font-size:16px;}h2,h3,h4,h5,h6{color:#3D3D4D;margin:24px 0 16px 0;font-weight:bold;}p{color:#6C6C80;font-size:16px;line-height:28px;margin-bottom:16px;font-weight:400;}code.inline-code{display:inline-block;vertical-align:middle;line-height:1;padding:0.2em;background-color:#44475a;color:rgba(248,248,242);font-size:14px;border-radius:3px;font-feature-settings:'clig' 0,'calt' 0;font-variant:no-common-ligatures no-discretionary-ligatures no-historical-ligatures no-contextual;}h1 code.inline-code,h2 code.inline-code{font-size:calc(100% - 5px);padding:4px;}a{color:#6C6C80;font-weight:bold;-webkit-text-decoration:none;text-decoration:none;}a:hover{-webkit-text-decoration:underline;text-decoration:underline;}blockquote{margin-bottom:16px;width:100%;}blockquote p{padding:1rem;border-radius:5px;background:#F2F2FA;color:#6C6C80;margin:0;}hr{border:0;height:0;border-top:1px solid rgba(0,0,0,0.1);border-bottom:1px solid rgba(255,255,255,0.3);}table{border-collapse:separate;border-spacing:0 4px;margin-top:-4px;margin-bottom:16px;width:100%;}table th,table td{margin:0;color:#6C6C80;background-color:#F2F2FA;border:solid 1px #F2F2FA;border-style:solid none;padding:12px;}table th:first-of-type,table td:first-of-type{border-left-style:solid;border-top-left-radius:5px;border-bottom-left-radius:5px;}table th:last-child,table td:last-child{border-right-style:solid;border-bottom-right-radius:5px;border-top-right-radius:5px;}table tr th{color:#3D3D4D;text-align:left;font-weight:bold;}iframe{margin-bottom:16px;}img{max-width:100%;}ul,ol{color:#6C6C80;padding-left:15px;margin-bottom:16px;}ul li,ol li{line-height:28px;}.gatsby-highlight{font-family:Hack,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-variant:no-common-ligatures no-discretionary-ligatures no-historical-ligatures no-contextual;position:relative;z-index:0;margin:0 0 16px 0;overflow:auto;}.gatsby-highlight .token{font-style:normal !important;}pre[class*='language-'] code{font-family:inherit;}pre[class*='language-']::before{background:#d9d7e0;border-radius:0 0 4px 4px;color:#232129;font-size:12px;font-family:inherit;-webkit-letter-spacing:0.075em;-moz-letter-spacing:0.075em;-ms-letter-spacing:0.075em;letter-spacing:0.075em;line-height:1;padding:0.25rem 0.5rem;position:absolute;left:1rem;text-align:right;text-transform:uppercase;top:0;}pre[class~='language-js']::before,pre[class~='language-javascript']::before{content:'js';background:#f7df1e;}pre[class~='language-jsx']::before{content:'jsx';background:#61dafb;}pre[class~='language-typescript']::before,pre[class~='language-ts']::before{content:'ts';background:#294e80;color:#fff;}pre[class~='language-tsx']::before{content:'tsx';background:#294e80;color:#fff;}pre[class~='language-graphql']::before{content:'GraphQL';background:#e10098;color:#fff;}pre[class~='language-html']::before{content:'html';background:#005a9c;color:#fff;}pre[class~='language-css']::before{content:'css';background:#ff9800;color:#fff;}pre[class~='language-mdx']::before{content:'mdx';background:#f9ac00;color:#fff;}pre[class~='language-shell']::before{content:'shell';}pre[class~='language-sh']::before{content:'sh';}pre[class~='language-bash']::before{content:'bash';}pre[class~='language-yaml']::before,pre[class~='language-yml']::before{content:'yaml';background:#ffa8df;}pre[class~='language-markdown']::before{content:'md';}pre[class~='language-json']::before,pre[class~='language-json5']::before{content:'json';background:linen;}pre[class~='language-diff']::before{content:'diff';background:#e6ffed;}pre[class~='language-text']::before{content:'text';background:#fff;}pre[class~='language-flow']::before{content:'flow';background:#e8bd36;}</style><div style="outline:none" tabindex="-1" id="gatsby-focus-wrapper"></div><div id="gatsby-announcer" style="position:absolute;top:0;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0" aria-live="assertive" aria-atomic="true"></div></div><script id="gatsby-script-loader">/*<![CDATA[*/window.pagePath="/offline-plugin-app-shell-fallback";/*]]>*/</script><script id="gatsby-chunk-mapping">/*<![CDATA[*/window.___chunkMapping={"polyfill":["/polyfill-46800a246443c64ac6e0.js"],"app":["/app-dc092efbd8d9d25365f0.js"],"component---cache-caches-gatsby-plugin-offline-app-shell-js":["/component---cache-caches-gatsby-plugin-offline-app-shell-js-5a1ee105f05b3144b807.js"],"component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-docs-query-js":["/component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-docs-query-js-45096b7ad4a0af4f2241.js"],"component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js":["/component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js-bac143fcc98b6926a57f.js"],"component---src-pages-404-js":["/component---src-pages-404-js-04beac219105c3e149b3.js"]};/*]]>*/</script><script src="/polyfill-46800a246443c64ac6e0.js" nomodule=""></script><script src="/component---cache-caches-gatsby-plugin-offline-app-shell-js-5a1ee105f05b3144b807.js" async=""></script><script src="/app-dc092efbd8d9d25365f0.js" async=""></script><script src="/f0e45107-ff2c7ac7fae000cceb4b.js" async=""></script><script src="/framework-85aff51d15c28c7fbe5f.js" async=""></script><script src="/webpack-runtime-20f9c665c2949ed076fe.js" async=""></script></body></html>
\ No newline at end of file
diff --git a/page-data/app-data.json b/page-data/app-data.json
index 7999798..f8420a1 100644
--- a/page-data/app-data.json
+++ b/page-data/app-data.json
@@ -1 +1 @@
-{"webpackCompilationHash":"78576176e81e45c44ba8"}
+{"webpackCompilationHash":"a1f2f8373018c74831ca"}
diff --git a/page-data/sq/d/1954253342.json b/page-data/sq/d/1954253342.json
index a7bc88d..a1645d2 100644
--- a/page-data/sq/d/1954253342.json
+++ b/page-data/sq/d/1954253342.json
@@ -1 +1 @@
-{"data":{"allSidebarItems":{"edges":[{"node":{"label":"Introduction","link":"/","items":null,"id":"9e40bfb6-f88b-53f0-ba7d-f7a6ebcdfc66"}},{"node":{"label":"Architecture","link":"/usage/arch","items":null,"id":"1584c548-f611-520b-952c-de6c75875cd7"}},{"node":{"label":"Getting started","link":"https://github.com/apache/incubator-liminal/blob/master/README.md","items":null,"id":"a7aca87c-eb45-5b93-812e-06d8c1efc114"}},{"node":{"label":"Community","link":null,"items":[{"label":"Github","link":"https://github.com/apache/incubator-liminal"},{"label":"Dev-Mailing-List","link":"https://lists.apache.org/list.html?dev@liminal.apache.org"}],"id":"65122705-e35d-55d3-bd77-51cac348c763"}}]},"site":{"siteMetadata":{"basePath":"/"}}}}
\ No newline at end of file
+{"data":{"allSidebarItems":{"edges":[{"node":{"label":"Introduction","link":"/","items":null,"id":"9e40bfb6-f88b-53f0-ba7d-f7a6ebcdfc66"}},{"node":{"label":"Getting started","link":"https://github.com/apache/incubator-liminal/blob/master/README.md","items":null,"id":"1584c548-f611-520b-952c-de6c75875cd7"}},{"node":{"label":"Architecture","link":"/usage/arch","items":null,"id":"a7aca87c-eb45-5b93-812e-06d8c1efc114"}},{"node":{"label":"Community","link":null,"items":[{"label":"Github","link":"https://github.com/apache/incubator-liminal"},{"label":"Dev-Mailing-List","link":"https://lists.apache.org/list.html?dev@liminal.apache.org"}],"id":"65122705-e35d-55d3-bd77-51cac348c763"}}]},"site":{"siteMetadata":{"basePath":"/"}}}}
\ No newline at end of file
diff --git a/page-data/usage/arch/page-data.json b/page-data/usage/arch/page-data.json
index 11b022c..72b68b9 100644
--- a/page-data/usage/arch/page-data.json
+++ b/page-data/usage/arch/page-data.json
@@ -1 +1 @@
-{"componentChunkName":"component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-docs-query-js","path":"/usage/arch","result":{"data":{"mdx":{"id":"d39a0258-850a-56ad-9f56-cdcb9c9df9c4","excerpt":"Motivation The challenges involved in operationalizing machine learning models are one of the main reasons why many machine learning projects never make it to…","fields":{"slug":"/usage/arch/"},"frontmatter":{"title":"","description":null,"image":null,"disableTableOfContents":null},"body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsx mdx */\nvar _frontmatter = {};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, [\"components\"]);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"h2\", {\n    \"id\": \"motivation\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", _extends({\n    parentName: \"h2\"\n  }, {\n    \"href\": \"#motivation\",\n    \"aria-label\": \"motivation permalink\",\n    \"className\": \"anchor before\"\n  }), mdx(\"svg\", _extends({\n    parentName: \"a\"\n  }, {\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }), mdx(\"path\", _extends({\n    parentName: \"svg\"\n  }, {\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  })))), \"Motivation\"), mdx(\"p\", null, \"The challenges involved in operationalizing machine learning models are one of the main reasons why many machine learning projects never make it to production. The process involves automating and orchestrating multiple steps which run on heterogeneous infrastructure - different compute environments, data processing platforms, ML frameworks, notebooks, containers and monitoring tools. There are no mature standards for this workflow, and most organizations do not have the experience to build it in-house. In the best case, dev-ds-devops teams form in order to accomplish this task together; in many cases, it's the data scientists who try to deal with this themselves without the knowledge or the inclination to become infrastructure experts. As a result, many projects never make it through the cycle. Those who do suffer from a very long lead time from a successful experiment to an operational, refreshable, deployed and monitored model in production.\"), mdx(\"p\", null, \"Apache Liminal was created to enable scalability in ML efforts and after a thorough review of available solutions and frameworks, which did not meet our main KPIs. Few Commercial & Open-source solutions have started to emerge in the last few years, however, they are limited to specific parts of the workflow, such as Databricks MLFlow or tied to a specific environment (e.g. SageMaker on AWS) or a specific tech stack (e.g. KubeFlow).\"), mdx(\"h2\", {\n    \"id\": \"liminal-workflows\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", _extends({\n    parentName: \"h2\"\n  }, {\n    \"href\": \"#liminal-workflows\",\n    \"aria-label\": \"liminal workflows permalink\",\n    \"className\": \"anchor before\"\n  }), mdx(\"svg\", _extends({\n    parentName: \"a\"\n  }, {\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }), mdx(\"path\", _extends({\n    parentName: \"svg\"\n  }, {\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  })))), \"Liminal Workflows\"), mdx(\"p\", null, \"Apache Liminal provides declarative building blocks which define the workflow, orchestrate the underlying infrastructure and takes care of non functional concerns; thus enabling focus in business logic / algorithm code. Liminal approach is to wrap existing frameworks and libraries with a DSL (Domain-Specific-Language), which is used by data engineers & scientists to express ML/AI workflows using the right abstractions; from model training to real time inference in production.\"), mdx(\"p\", null, \"The architecture enables and promotes adoption of specific components in existing (non-Liminal) frameworks, as well as seamless integration with other open source projects. The following diagram depicts these main components and where Apache Liminal comes in:\"), mdx(Liminal01, {\n    mdxType: \"Liminal01\"\n  }), mdx(\"p\", null, \"A classical data scientist workflow includes some base phases: Train, Deploy and Consume.\"), mdx(\"p\", null, mdx(\"em\", {\n    parentName: \"p\"\n  }, \"The Train phase includes the following tasks:\")), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Fetch - get the data needed to build a model - usually using SQL\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Clean - make sure the data is useful for building the model\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Prepare - extract features from the data\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Train - build the model and tune it\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Evaluate - test model integrity\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Validate - test model quality\")), mdx(\"p\", null, mdx(\"em\", {\n    parentName: \"p\"\n  }, \"The Deploy phase includes these tasks:\")), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Deploy - make it available for usage in production\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Inference - The actual use of the models created by applications and ETLs, usually through APIs to the batch or real-time inference that usually rely on Model and Feature stores.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Monitor - consistent monitoring of ML models performance and KPIs\")), mdx(\"p\", null, \"Liminal provides its users a declarative composition capabilities to materialize these steps in a robust way, using standard ML/AI frameworks, tools & libraries, e.g. scikit-learn, Pandas, Airfolow, Kubernetes, MLFLow etc. Liminal's plugin architecture provides an easy way to extend and evolve the platform.\"), mdx(Liminal02, {\n    mdxType: \"Liminal02\"\n  }));\n}\n;\nMDXContent.isMDXComponent = true;","headings":[{"depth":2,"value":"Motivation"},{"depth":2,"value":"Liminal Workflows"}]}},"pageContext":{"slug":"/usage/arch/","prev":{"label":"Introduction","link":"/"},"next":{"label":"Getting started","link":"https://github.com/apache/incubator-liminal/blob/master/README.md"}}},"staticQueryHashes":["1954253342","2328931024","2501019404","973074209"]}
\ No newline at end of file
+{"componentChunkName":"component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-docs-query-js","path":"/usage/arch","result":{"data":{"mdx":{"id":"d39a0258-850a-56ad-9f56-cdcb9c9df9c4","excerpt":"Motivation The challenges involved in operationalizing machine learning models are one of the main reasons why many machine learning projects never make it to…","fields":{"slug":"/usage/arch/"},"frontmatter":{"title":"","description":null,"image":null,"disableTableOfContents":null},"body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsx mdx */\nvar _frontmatter = {};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, [\"components\"]);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"h2\", {\n    \"id\": \"motivation\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", _extends({\n    parentName: \"h2\"\n  }, {\n    \"href\": \"#motivation\",\n    \"aria-label\": \"motivation permalink\",\n    \"className\": \"anchor before\"\n  }), mdx(\"svg\", _extends({\n    parentName: \"a\"\n  }, {\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }), mdx(\"path\", _extends({\n    parentName: \"svg\"\n  }, {\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  })))), \"Motivation\"), mdx(\"p\", null, \"The challenges involved in operationalizing machine learning models are one of the main reasons why many machine learning projects never make it to production. The process involves automating and orchestrating multiple steps which run on heterogeneous infrastructure - different compute environments, data processing platforms, ML frameworks, notebooks, containers and monitoring tools. There are no mature standards for this workflow, and most organizations do not have the experience to build it in-house. In the best case, dev-ds-devops teams form in order to accomplish this task together; in many cases, it's the data scientists who try to deal with this themselves without the knowledge or the inclination to become infrastructure experts. As a result, many projects never make it through the cycle. Those who do suffer from a very long lead time from a successful experiment to an operational, refreshable, deployed and monitored model in production.\"), mdx(\"p\", null, \"Apache Liminal was created to enable scalability in ML efforts and after a thorough review of available solutions and frameworks, which did not meet our main KPIs. Few Commercial & Open-source solutions have started to emerge in the last few years, however, they are limited to specific parts of the workflow, such as Databricks MLFlow or tied to a specific environment (e.g. SageMaker on AWS) or a specific tech stack (e.g. KubeFlow).\"), mdx(\"h2\", {\n    \"id\": \"liminal-workflows\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", _extends({\n    parentName: \"h2\"\n  }, {\n    \"href\": \"#liminal-workflows\",\n    \"aria-label\": \"liminal workflows permalink\",\n    \"className\": \"anchor before\"\n  }), mdx(\"svg\", _extends({\n    parentName: \"a\"\n  }, {\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }), mdx(\"path\", _extends({\n    parentName: \"svg\"\n  }, {\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  })))), \"Liminal Workflows\"), mdx(\"p\", null, \"Apache Liminal provides declarative building blocks which define the workflow, orchestrate the underlying infrastructure and takes care of non functional concerns; thus enabling focus in business logic / algorithm code. Liminal approach is to wrap existing frameworks and libraries with a DSL (Domain-Specific-Language), which is used by data engineers & scientists to express ML/AI workflows using the right abstractions; from model training to real time inference in production.\"), mdx(\"p\", null, \"The architecture enables and promotes adoption of specific components in existing (non-Liminal) frameworks, as well as seamless integration with other open source projects. The following diagram depicts these main components and where Apache Liminal comes in:\"), mdx(Liminal01, {\n    mdxType: \"Liminal01\"\n  }), mdx(\"p\", null, \"A classical data scientist workflow includes some base phases: Train, Deploy and Consume.\"), mdx(\"p\", null, mdx(\"em\", {\n    parentName: \"p\"\n  }, \"The Train phase includes the following tasks:\")), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Fetch - get the data needed to build a model - usually using SQL\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Clean - make sure the data is useful for building the model\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Prepare - extract features from the data\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Train - build the model and tune it\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Evaluate - test model integrity\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Validate - test model quality\")), mdx(\"p\", null, mdx(\"em\", {\n    parentName: \"p\"\n  }, \"The Deploy phase includes these tasks:\")), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Deploy - make it available for usage in production\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Inference - The actual use of the models created by applications and ETLs, usually through APIs to the batch or real-time inference that usually rely on Model and Feature stores.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Monitor - consistent monitoring of ML models performance and KPIs\")), mdx(\"p\", null, \"Liminal provides its users a declarative composition capabilities to materialize these steps in a robust way, using standard ML/AI frameworks, tools & libraries, e.g. scikit-learn, Pandas, Airfolow, Kubernetes, MLFLow etc. Liminal's plugin architecture provides an easy way to extend and evolve the platform.\"), mdx(Liminal02, {\n    mdxType: \"Liminal02\"\n  }));\n}\n;\nMDXContent.isMDXComponent = true;","headings":[{"depth":2,"value":"Motivation"},{"depth":2,"value":"Liminal Workflows"}]}},"pageContext":{"slug":"/usage/arch/","prev":{"label":"Getting started","link":"https://github.com/apache/incubator-liminal/blob/master/README.md"},"next":{"label":"Github","link":"https://github.com/apache/incubator-liminal"}}},"staticQueryHashes":["1954253342","2328931024","2501019404","973074209"]}
\ No newline at end of file
diff --git a/sw.js b/sw.js
index c8c7288..7df135c 100644
--- a/sw.js
+++ b/sw.js
@@ -27,7 +27,7 @@
  */
 self.__precacheManifest = [
   {
-    "url": "webpack-runtime-e7d4f0c418939174f0da.js"
+    "url": "webpack-runtime-20f9c665c2949ed076fe.js"
   },
   {
     "url": "framework-85aff51d15c28c7fbe5f.js"
@@ -40,7 +40,7 @@
   },
   {
     "url": "offline-plugin-app-shell-fallback/index.html",
-    "revision": "f327167abee20ecd9eade0bdb7ee77ce"
+    "revision": "306006a9b02c9b7578a28b491345c6d4"
   },
   {
     "url": "component---cache-caches-gatsby-plugin-offline-app-shell-js-5a1ee105f05b3144b807.js"
@@ -51,7 +51,7 @@
   },
   {
     "url": "page-data/app-data.json",
-    "revision": "8a38bfa35e0f55718067df1b1ebc79fd"
+    "revision": "060ed841939fcd1f9aa4c73215b71f58"
   },
   {
     "url": "polyfill-46800a246443c64ac6e0.js"
diff --git a/usage/arch/index.html b/usage/arch/index.html
index 08faf62..753c357 100644
--- a/usage/arch/index.html
+++ b/usage/arch/index.html
@@ -48,4 +48,4 @@
         }
       }
     })
-  </script><title data-react-helmet="true">Liminal</title><meta data-react-helmet="true" name="description" content="Apache Limial official site"/><meta data-react-helmet="true" name="image" content="http://liminal.apache.com/logo.png"/><meta data-react-helmet="true" http-equiv="x-ua-compatible" content="IE=edge,chrome=1"/><meta data-react-helmet="true" name="MobileOptimized" content="320"/><meta data-react-helmet="true" name="HandheldFriendly" content="True"/><meta data-react-helmet="true" name="google" content="notranslate"/><meta data-react-helmet="true" name="referrer" content="no-referrer-when-downgrade"/><meta data-react-helmet="true" property="og:url" content="http://liminal.apache.com/usage/arch/"/><meta data-react-helmet="true" property="og:type" content="website"/><meta data-react-helmet="true" property="og:title" content="Liminal"/><meta data-react-helmet="true" property="og:description" content="Apache Limial official site"/><meta data-react-helmet="true" property="og:locale" content="en"/><meta data-react-helmet="true" property="og:site_name" content=""/><meta data-react-helmet="true" property="og:image" content="http://liminal.apache.com/logo.png"/><meta data-react-helmet="true" property="og:image:secure_url" content="http://liminal.apache.com/logo.png"/><meta data-react-helmet="true" property="og:image:alt" content="Banner"/><meta data-react-helmet="true" property="og:image:type" content="image/png"/><meta data-react-helmet="true" property="og:image:width" content="1200"/><meta data-react-helmet="true" property="og:image:height" content="630"/><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"/><meta data-react-helmet="true" name="twitter:title" content="Liminal"/><meta data-react-helmet="true" name="twitter:site" content="@lior.schachter"/><meta data-react-helmet="true" name="twitter:creator" content="@lior.schachter"/><meta data-react-helmet="true" name="twitter:image" content="http://liminal.apache.com/logo.png"/><meta data-react-helmet="true" name="twitter:image:src" content="http://liminal.apache.com/logo.png"/><meta data-react-helmet="true" name="twitter:image:alt" content="Banner"/><meta data-react-helmet="true" name="twitter:image:width" content="1200"/><meta data-react-helmet="true" name="twitter:image:height" content="630"/><script data-react-helmet="true" type="application/ld+json">[{"@context":"http://schema.org","@type":"WebSite","url":"http://liminal.apache.com/usage/arch/","name":"","alternateName":"Apache Liminal"}]</script><link rel="icon" href="/favicon-32x32.png?v=f730a0b8e533f2d4da7bd901d2b7ab80" type="image/png"/><link rel="manifest" href="/manifest.webmanifest"/><link rel="apple-touch-icon" sizes="48x48" href="/icons/icon-48x48.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="72x72" href="/icons/icon-72x72.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="96x96" href="/icons/icon-96x96.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="144x144" href="/icons/icon-144x144.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="192x192" href="/icons/icon-192x192.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="256x256" href="/icons/icon-256x256.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="384x384" href="/icons/icon-384x384.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="512x512" href="/icons/icon-512x512.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="sitemap" type="application/xml" href="/sitemap.xml"/><link rel="canonical" href="https://rocketdocs.netlify.com/usage/arch" data-baseprotocol="https:" data-basehost="rocketdocs.netlify.com"/><link as="script" rel="preload" href="/webpack-runtime-e7d4f0c418939174f0da.js"/><link as="script" rel="preload" href="/framework-85aff51d15c28c7fbe5f.js"/><link as="script" rel="preload" href="/f0e45107-ff2c7ac7fae000cceb4b.js"/><link as="script" rel="preload" href="/app-dc092efbd8d9d25365f0.js"/><link as="script" rel="preload" href="/545f34e4-7dfe072c8eed183902e6.js"/><link as="script" rel="preload" href="/5e2a4920-cba84c59a4ec3c5b642e.js"/><link as="script" rel="preload" href="/252f366e-c8db8218630b044bf329.js"/><link as="script" rel="preload" href="/a7629950cb7a18c7593baf47d0acfe798f1cddc4-4c1232454ad5571a0b75.js"/><link as="script" rel="preload" href="/component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-docs-query-js-45096b7ad4a0af4f2241.js"/><link as="fetch" rel="preload" href="/page-data/usage/arch/page-data.json" crossorigin="anonymous"/><link as="fetch" rel="preload" href="/page-data/sq/d/1954253342.json" crossorigin="anonymous"/><link as="fetch" rel="preload" href="/page-data/sq/d/2328931024.json" crossorigin="anonymous"/><link as="fetch" rel="preload" href="/page-data/sq/d/2501019404.json" crossorigin="anonymous"/><link as="fetch" rel="preload" href="/page-data/sq/d/973074209.json" crossorigin="anonymous"/><link as="fetch" rel="preload" href="/page-data/app-data.json" crossorigin="anonymous"/></head><body><div id="___gatsby"><style data-emotion-css="6ifimc">*,*::after,*::before{margin:0;padding:0;box-sizing:border-box;}body{font-size:16px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif;background-color:#FFFFFF;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;overflow-y:scroll;}h1{font-size:32px;color:#3D3D4D;font-weight:bold;margin-bottom:24px;}h2{font-size:24px;}h3{font-size:18px;}h4{font-size:16px;}h2,h3,h4,h5,h6{color:#3D3D4D;margin:24px 0 16px 0;font-weight:bold;}p{color:#6C6C80;font-size:16px;line-height:28px;margin-bottom:16px;font-weight:400;}code.inline-code{display:inline-block;vertical-align:middle;line-height:1;padding:0.2em;background-color:#44475a;color:rgba(248,248,242);font-size:14px;border-radius:3px;font-feature-settings:'clig' 0,'calt' 0;font-variant:no-common-ligatures no-discretionary-ligatures no-historical-ligatures no-contextual;}h1 code.inline-code,h2 code.inline-code{font-size:calc(100% - 5px);padding:4px;}a{color:#6C6C80;font-weight:bold;-webkit-text-decoration:none;text-decoration:none;}a:hover{-webkit-text-decoration:underline;text-decoration:underline;}blockquote{margin-bottom:16px;width:100%;}blockquote p{padding:1rem;border-radius:5px;background:#F2F2FA;color:#6C6C80;margin:0;}hr{border:0;height:0;border-top:1px solid rgba(0,0,0,0.1);border-bottom:1px solid rgba(255,255,255,0.3);}table{border-collapse:separate;border-spacing:0 4px;margin-top:-4px;margin-bottom:16px;width:100%;}table th,table td{margin:0;color:#6C6C80;background-color:#F2F2FA;border:solid 1px #F2F2FA;border-style:solid none;padding:12px;}table th:first-of-type,table td:first-of-type{border-left-style:solid;border-top-left-radius:5px;border-bottom-left-radius:5px;}table th:last-child,table td:last-child{border-right-style:solid;border-bottom-right-radius:5px;border-top-right-radius:5px;}table tr th{color:#3D3D4D;text-align:left;font-weight:bold;}iframe{margin-bottom:16px;}img{max-width:100%;}ul,ol{color:#6C6C80;padding-left:15px;margin-bottom:16px;}ul li,ol li{line-height:28px;}.gatsby-highlight{font-family:Hack,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-variant:no-common-ligatures no-discretionary-ligatures no-historical-ligatures no-contextual;position:relative;z-index:0;margin:0 0 16px 0;overflow:auto;}.gatsby-highlight .token{font-style:normal !important;}pre[class*='language-'] code{font-family:inherit;}pre[class*='language-']::before{background:#d9d7e0;border-radius:0 0 4px 4px;color:#232129;font-size:12px;font-family:inherit;-webkit-letter-spacing:0.075em;-moz-letter-spacing:0.075em;-ms-letter-spacing:0.075em;letter-spacing:0.075em;line-height:1;padding:0.25rem 0.5rem;position:absolute;left:1rem;text-align:right;text-transform:uppercase;top:0;}pre[class~='language-js']::before,pre[class~='language-javascript']::before{content:'js';background:#f7df1e;}pre[class~='language-jsx']::before{content:'jsx';background:#61dafb;}pre[class~='language-typescript']::before,pre[class~='language-ts']::before{content:'ts';background:#294e80;color:#fff;}pre[class~='language-tsx']::before{content:'tsx';background:#294e80;color:#fff;}pre[class~='language-graphql']::before{content:'GraphQL';background:#e10098;color:#fff;}pre[class~='language-html']::before{content:'html';background:#005a9c;color:#fff;}pre[class~='language-css']::before{content:'css';background:#ff9800;color:#fff;}pre[class~='language-mdx']::before{content:'mdx';background:#f9ac00;color:#fff;}pre[class~='language-shell']::before{content:'shell';}pre[class~='language-sh']::before{content:'sh';}pre[class~='language-bash']::before{content:'bash';}pre[class~='language-yaml']::before,pre[class~='language-yml']::before{content:'yaml';background:#ffa8df;}pre[class~='language-markdown']::before{content:'md';}pre[class~='language-json']::before,pre[class~='language-json5']::before{content:'json';background:linen;}pre[class~='language-diff']::before{content:'diff';background:#e6ffed;}pre[class~='language-text']::before{content:'text';background:#fff;}pre[class~='language-flow']::before{content:'flow';background:#e8bd36;}</style><div style="outline:none" tabindex="-1" id="gatsby-focus-wrapper"><style data-emotion-css="7gspsd">.css-7gspsd::after{content:'';position:fixed;width:100%;height:100%;left:0;right:0;bottom:0;background-color:rgba(0,0,0,0.8);z-index:999;display:none;}</style><div aria-label="Close menu" class="css-7gspsd"></div><style data-emotion-css="1i3ij69">.css-1i3ij69{width:100%;max-width:1400px;margin:0 auto;padding:0 24px;display:grid;grid-template-columns:280px calc(100% - 320px);grid-auto-flow:row;grid-gap:40px;}@media (max-width:780px){.css-1i3ij69{padding:24px;grid-template-columns:100%;}}</style><div class="css-1i3ij69 eees1d50"><style data-emotion-css="efco39">.css-efco39{width:100%;overflow-y:auto;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;position:-webkit-sticky;position:sticky;top:0;padding-top:36px;-webkit-transition:-webkit-transform 0.5s;-webkit-transition:transform 0.5s;transition:transform 0.5s;height:calc(100vh - 1px);}.css-efco39 nav{width:100%;padding-top:24px;-webkit-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start;-webkit-flex:1;-ms-flex:1;flex:1;}@media (max-width:780px){.css-efco39{max-width:75%;min-width:auto;z-index:1001;position:fixed;top:0;bottom:0;left:0;padding-top:32px;background:#FFFFFF;-webkit-transform:translate3d( -100%,0,0 );-ms-transform:translate3d( -100%,0,0 );transform:translate3d( -100%,0,0 );}}</style><aside class="css-efco39 e1wh78ri0"><style data-emotion-css="2yrou">.css-2yrou{width:100%;}.css-2yrou a{width:100%;padding-left:30px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}</style><div class="css-2yrou e1wh78ri1"><a aria-label="Go to home page" href="/"><img src="/static/logo-f730a0b8e533f2d4da7bd901d2b7ab80.png" alt="Logo" width="90px" height="80px"/></a></div><nav><style data-emotion-css="mbmci8">.css-mbmci8{list-style:none;width:100%;padding-left:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}</style><ul class="css-mbmci8 e1wh78ri2"><style data-emotion-css="1wldk6c">.css-1wldk6c{font-size:15px;width:100%;-webkit-transition:all 200ms ease-in-out;transition:all 200ms ease-in-out;padding:0 20px;cursor:pointer;}.css-1wldk6c a,.css-1wldk6c span{display:block;font-size:15px;color:#6C6C80;background-color:#FFFFFF;padding:4px 10px;margin:4px 0;border-radius:4px;font-weight:normal;-webkit-text-decoration:none;text-decoration:none;width:100%;height:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;cursor:pointer;margin:0 auto;-webkit-transition:all 0.2s ease;transition:all 0.2s ease;}.css-1wldk6c a svg,.css-1wldk6c span svg{width:20px;height:20px;margin-right:10px;}.css-1wldk6c a:not(.active-link):hover,.css-1wldk6c span:not(.active-link):hover{color:#8257E6;}.css-1wldk6c a.active-link,.css-1wldk6c span.active-link{color:#8257E6;background-color:#F2F2FA;}@media (max-width:780px){.css-1wldk6c a.active-link,.css-1wldk6c span.active-link{background:#F2F2FA;}}</style><li class="css-1wldk6c e1wh78ri4"><a href="/">Introduction</a></li><li class="css-1wldk6c e1wh78ri4"><a aria-current="page" class="active-link" href="/usage/arch">Architecture</a></li><li class="css-1wldk6c e1wh78ri4"><a href="https://github.com/apache/incubator-liminal/blob/master/README.md" rel="noopener noreferrer">Getting started<svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" style="width:16px;height:16px;margin-left:10px" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1="10" y1="14" x2="21" y2="3"></line></svg></a></li><style data-emotion-css="mximbs">.css-mximbs{padding-left:30px;width:100%;text-transform:uppercase;font-size:14px;font-weight:bold;margin-top:20px;color:#3D3D4D;-webkit-letter-spacing:0.142em;-moz-letter-spacing:0.142em;-ms-letter-spacing:0.142em;letter-spacing:0.142em;}</style><li class="css-mximbs e1wh78ri3">Community</li><style data-emotion-css="157nhwy">.css-157nhwy{list-style:none;width:100%;padding-left:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;margin:5px 0 0 0;}</style><ul class="css-157nhwy e1wh78ri5"><li class="css-1wldk6c e1wh78ri4"><a href="https://github.com/apache/incubator-liminal" rel="noopener noreferrer">Github<svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" style="width:16px;height:16px;margin-left:10px" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1="10" y1="14" x2="21" y2="3"></line></svg></a></li><li class="css-1wldk6c e1wh78ri4"><a href="https://lists.apache.org/list.html?dev@liminal.apache.org" rel="noopener noreferrer">Dev-Mailing-List<svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" style="width:16px;height:16px;margin-left:10px" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1="10" y1="14" x2="21" y2="3"></line></svg></a></li></ul></ul></nav></aside><style data-emotion-css="19vacph">.css-19vacph{height:100%;padding-top:36px;width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;position:relative;}@media (max-width:1200px){.css-19vacph{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}}@media (max-width:780px){.css-19vacph{padding-top:0;}}</style><main class="css-19vacph eees1d51"><style data-emotion-css="9q3p0l">.css-9q3p0l{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:40px;margin-bottom:24px;}.css-9q3p0l h2{margin:0;border:none;padding:0;font-size:18px;}@media (max-width:359px){.css-9q3p0l h2{font-size:14px;}}.css-9q3p0l button{border:none;background:none;cursor:pointer;margin-right:16px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}@media (min-width:780px){.css-9q3p0l{display:none;}}</style><header class="css-9q3p0l esnpb7p0"><button aria-label="Open sidebar" type="button"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 512 512" size="23" aria-hidden="true" height="23" width="23" xmlns="http://www.w3.org/2000/svg"><path d="M32 96v64h448V96H32zm0 128v64h448v-64H32zm0 128v64h448v-64H32z"></path></svg></button><h2></h2></header><style data-emotion-css="1ehkd4h">.css-1ehkd4h{width:100%;max-width:calc(75% - 64px);padding-right:64px;}@media (max-width:1200px){.css-1ehkd4h{max-width:100%;padding-right:0;-webkit-order:3;-ms-flex-order:3;order:3;}}</style><div class="css-1ehkd4h eees1d52"><h2 id="motivation" style="position:relative"><a href="#motivation" aria-label="motivation permalink" class="anchor before"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Motivation</h2><p>The challenges involved in operationalizing machine learning models are one of the main reasons why many machine learning projects never make it to production. The process involves automating and orchestrating multiple steps which run on heterogeneous infrastructure - different compute environments, data processing platforms, ML frameworks, notebooks, containers and monitoring tools. There are no mature standards for this workflow, and most organizations do not have the experience to build it in-house. In the best case, dev-ds-devops teams form in order to accomplish this task together; in many cases, it&#x27;s the data scientists who try to deal with this themselves without the knowledge or the inclination to become infrastructure experts. As a result, many projects never make it through the cycle. Those who do suffer from a very long lead time from a successful experiment to an operational, refreshable, deployed and monitored model in production.</p><p>Apache Liminal was created to enable scalability in ML efforts and after a thorough review of available solutions and frameworks, which did not meet our main KPIs. Few Commercial &amp; Open-source solutions have started to emerge in the last few years, however, they are limited to specific parts of the workflow, such as Databricks MLFlow or tied to a specific environment (e.g. SageMaker on AWS) or a specific tech stack (e.g. KubeFlow).</p><h2 id="liminal-workflows" style="position:relative"><a href="#liminal-workflows" aria-label="liminal workflows permalink" class="anchor before"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Liminal Workflows</h2><p>Apache Liminal provides declarative building blocks which define the workflow, orchestrate the underlying infrastructure and takes care of non functional concerns; thus enabling focus in business logic / algorithm code. Liminal approach is to wrap existing frameworks and libraries with a DSL (Domain-Specific-Language), which is used by data engineers &amp; scientists to express ML/AI workflows using the right abstractions; from model training to real time inference in production.</p><p>The architecture enables and promotes adoption of specific components in existing (non-Liminal) frameworks, as well as seamless integration with other open source projects. The following diagram depicts these main components and where Apache Liminal comes in:</p><img alt="Liminal" src="/liminal_01.png"/><p>A classical data scientist workflow includes some base phases: Train, Deploy and Consume.</p><p><em>The Train phase includes the following tasks:</em></p><ul><li>Fetch - get the data needed to build a model - usually using SQL</li><li>Clean - make sure the data is useful for building the model</li><li>Prepare - extract features from the data</li><li>Train - build the model and tune it</li><li>Evaluate - test model integrity</li><li>Validate - test model quality</li></ul><p><em>The Deploy phase includes these tasks:</em></p><ul><li>Deploy - make it available for usage in production</li><li>Inference - The actual use of the models created by applications and ETLs, usually through APIs to the batch or real-time inference that usually rely on Model and Feature stores.</li><li>Monitor - consistent monitoring of ML models performance and KPIs</li></ul><p>Liminal provides its users a declarative composition capabilities to materialize these steps in a robust way, using standard ML/AI frameworks, tools &amp; libraries, e.g. scikit-learn, Pandas, Airfolow, Kubernetes, MLFLow etc. Liminal&#x27;s plugin architecture provides an easy way to extend and evolve the platform.</p><img alt="Liminal" src="/liminal_02.png"/><style data-emotion-css="1rfih1g">.css-1rfih1g{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:48px 0;width:100%;}@media (max-width:780px){.css-1rfih1g{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}}</style><section class="css-1rfih1g e1jikabl0"><style data-emotion-css="asqskg">.css-asqskg{-webkit-transition:all 200ms;transition:all 200ms;}.css-asqskg a{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-text-decoration:none;text-decoration:none;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%;height:100%;}.css-asqskg a svg{width:25px;height:25px;color:#6C6C80;margin-right:16px;}.css-asqskg a p{-webkit-letter-spacing:0.142em;-moz-letter-spacing:0.142em;-ms-letter-spacing:0.142em;letter-spacing:0.142em;text-transform:uppercase;font-size:12px;margin:0;color:#6C6C80;}.css-asqskg a h3{color:#6C6C80;border:none;margin:0;padding:0;font-size:16px;}.css-asqskg:hover{opacity:0.8;}.css-asqskg:hover a svg{opacity:0.8;}@media (max-width:780px){.css-asqskg{width:100%;margin-bottom:16px;}.css-asqskg a{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;}}</style><div class="css-asqskg e1jikabl1"><a href="/"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z"></path></svg><div><p>Prev</p><h3>Introduction</h3></div></a></div><style data-emotion-css="3wkrrt">.css-3wkrrt{-webkit-transition:all 200ms;transition:all 200ms;margin-left:auto;}.css-3wkrrt a{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-text-decoration:none;text-decoration:none;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%;height:100%;}.css-3wkrrt a svg{width:25px;height:25px;color:#6C6C80;margin-left:16px;}.css-3wkrrt a p{-webkit-letter-spacing:0.142em;-moz-letter-spacing:0.142em;-ms-letter-spacing:0.142em;letter-spacing:0.142em;text-transform:uppercase;font-size:12px;margin:0;color:#6C6C80;}.css-3wkrrt a h3{color:#6C6C80;border:none;margin:0;padding:0;font-size:16px;}.css-3wkrrt:hover{opacity:0.8;}.css-3wkrrt:hover a svg{opacity:0.8;}@media (max-width:780px){.css-3wkrrt{width:100%;}.css-3wkrrt a{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end;}}</style><div class="css-3wkrrt e1jikabl1"><a href="https://github.com/apache/incubator-liminal/blob/master/README.md"><div><p>Next</p><h3>Getting started</h3></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z"></path></svg></a></div></section></div><style data-emotion-css="15t48j3">.css-15t48j3{position:-webkit-sticky;position:sticky;top:0;-webkit-order:2;-ms-flex-order:2;order:2;padding-top:72px;max-height:calc(100vh - 72px);overflow-y:auto;width:100%;max-width:200px;}@media (max-width:1200px){.css-15t48j3{position:relative;top:auto;-webkit-order:0;-ms-flex-order:0;order:0;max-width:100%;margin-left:0;padding-top:0;}}</style><div class="css-15t48j3 e10o0eax0"><style data-emotion-css="157u13d">.css-157u13d h2{text-transform:uppercase;font-size:14px;font-weight:bold;-webkit-letter-spacing:0.142em;-moz-letter-spacing:0.142em;-ms-letter-spacing:0.142em;letter-spacing:0.142em;margin-top:0rem;border:none;margin:0 0 16px 0;}.css-157u13d nav ul{padding-left:0;margin-bottom:0;list-style:none;}.css-157u13d nav ul li{margin-bottom:12px;line-height:1.1;}.css-157u13d nav ul li a{font-size:14px;font-weight:400;-webkit-text-decoration:none;text-decoration:none;-webkit-transition:all 0.2s;transition:all 0.2s;}.css-157u13d nav ul li a:hover{-webkit-text-decoration:underline;text-decoration:underline;}@media (max-width:1200px){.css-157u13d{margin:0 0 24px 0;padding-bottom:16px;border-bottom:1px solid rgba(120,117,122,0.2);}}</style><div class="css-157u13d e10o0eax1"><h2>On this page</h2><nav><ul><li><a href="#motivation" style="color:#6C6C80">Motivation</a></li><li><a href="#liminal-workflows" style="color:#6C6C80">Liminal Workflows</a></li></ul></nav></div></div></main></div></div><div id="gatsby-announcer" style="position:absolute;top:0;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0" aria-live="assertive" aria-atomic="true"></div></div><script id="gatsby-script-loader">/*<![CDATA[*/window.pagePath="/usage/arch";/*]]>*/</script><script id="gatsby-chunk-mapping">/*<![CDATA[*/window.___chunkMapping={"polyfill":["/polyfill-46800a246443c64ac6e0.js"],"app":["/app-dc092efbd8d9d25365f0.js"],"component---cache-caches-gatsby-plugin-offline-app-shell-js":["/component---cache-caches-gatsby-plugin-offline-app-shell-js-5a1ee105f05b3144b807.js"],"component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-docs-query-js":["/component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-docs-query-js-45096b7ad4a0af4f2241.js"],"component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js":["/component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js-c50cb61fe2c65deeaa10.js"],"component---src-pages-404-js":["/component---src-pages-404-js-04beac219105c3e149b3.js"]};/*]]>*/</script><script src="/polyfill-46800a246443c64ac6e0.js" nomodule=""></script><script src="/component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-docs-query-js-45096b7ad4a0af4f2241.js" async=""></script><script src="/a7629950cb7a18c7593baf47d0acfe798f1cddc4-4c1232454ad5571a0b75.js" async=""></script><script src="/252f366e-c8db8218630b044bf329.js" async=""></script><script src="/5e2a4920-cba84c59a4ec3c5b642e.js" async=""></script><script src="/545f34e4-7dfe072c8eed183902e6.js" async=""></script><script src="/app-dc092efbd8d9d25365f0.js" async=""></script><script src="/f0e45107-ff2c7ac7fae000cceb4b.js" async=""></script><script src="/framework-85aff51d15c28c7fbe5f.js" async=""></script><script src="/webpack-runtime-e7d4f0c418939174f0da.js" async=""></script></body></html>
\ No newline at end of file
+  </script><title data-react-helmet="true">Liminal</title><meta data-react-helmet="true" name="description" content="Apache Limial official site"/><meta data-react-helmet="true" name="image" content="http://liminal.apache.com/logo.png"/><meta data-react-helmet="true" http-equiv="x-ua-compatible" content="IE=edge,chrome=1"/><meta data-react-helmet="true" name="MobileOptimized" content="320"/><meta data-react-helmet="true" name="HandheldFriendly" content="True"/><meta data-react-helmet="true" name="google" content="notranslate"/><meta data-react-helmet="true" name="referrer" content="no-referrer-when-downgrade"/><meta data-react-helmet="true" property="og:url" content="http://liminal.apache.com/usage/arch/"/><meta data-react-helmet="true" property="og:type" content="website"/><meta data-react-helmet="true" property="og:title" content="Liminal"/><meta data-react-helmet="true" property="og:description" content="Apache Limial official site"/><meta data-react-helmet="true" property="og:locale" content="en"/><meta data-react-helmet="true" property="og:site_name" content=""/><meta data-react-helmet="true" property="og:image" content="http://liminal.apache.com/logo.png"/><meta data-react-helmet="true" property="og:image:secure_url" content="http://liminal.apache.com/logo.png"/><meta data-react-helmet="true" property="og:image:alt" content="Banner"/><meta data-react-helmet="true" property="og:image:type" content="image/png"/><meta data-react-helmet="true" property="og:image:width" content="1200"/><meta data-react-helmet="true" property="og:image:height" content="630"/><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"/><meta data-react-helmet="true" name="twitter:title" content="Liminal"/><meta data-react-helmet="true" name="twitter:site" content="@lior.schachter"/><meta data-react-helmet="true" name="twitter:creator" content="@lior.schachter"/><meta data-react-helmet="true" name="twitter:image" content="http://liminal.apache.com/logo.png"/><meta data-react-helmet="true" name="twitter:image:src" content="http://liminal.apache.com/logo.png"/><meta data-react-helmet="true" name="twitter:image:alt" content="Banner"/><meta data-react-helmet="true" name="twitter:image:width" content="1200"/><meta data-react-helmet="true" name="twitter:image:height" content="630"/><script data-react-helmet="true" type="application/ld+json">[{"@context":"http://schema.org","@type":"WebSite","url":"http://liminal.apache.com/usage/arch/","name":"","alternateName":"Apache Liminal"}]</script><link rel="icon" href="/favicon-32x32.png?v=f730a0b8e533f2d4da7bd901d2b7ab80" type="image/png"/><link rel="manifest" href="/manifest.webmanifest"/><link rel="apple-touch-icon" sizes="48x48" href="/icons/icon-48x48.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="72x72" href="/icons/icon-72x72.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="96x96" href="/icons/icon-96x96.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="144x144" href="/icons/icon-144x144.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="192x192" href="/icons/icon-192x192.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="256x256" href="/icons/icon-256x256.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="384x384" href="/icons/icon-384x384.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="apple-touch-icon" sizes="512x512" href="/icons/icon-512x512.png?v=f730a0b8e533f2d4da7bd901d2b7ab80"/><link rel="sitemap" type="application/xml" href="/sitemap.xml"/><link rel="canonical" href="https://rocketdocs.netlify.com/usage/arch" data-baseprotocol="https:" data-basehost="rocketdocs.netlify.com"/><link as="script" rel="preload" href="/webpack-runtime-20f9c665c2949ed076fe.js"/><link as="script" rel="preload" href="/framework-85aff51d15c28c7fbe5f.js"/><link as="script" rel="preload" href="/f0e45107-ff2c7ac7fae000cceb4b.js"/><link as="script" rel="preload" href="/app-dc092efbd8d9d25365f0.js"/><link as="script" rel="preload" href="/545f34e4-7dfe072c8eed183902e6.js"/><link as="script" rel="preload" href="/5e2a4920-cba84c59a4ec3c5b642e.js"/><link as="script" rel="preload" href="/252f366e-c8db8218630b044bf329.js"/><link as="script" rel="preload" href="/a7629950cb7a18c7593baf47d0acfe798f1cddc4-4c1232454ad5571a0b75.js"/><link as="script" rel="preload" href="/component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-docs-query-js-45096b7ad4a0af4f2241.js"/><link as="fetch" rel="preload" href="/page-data/usage/arch/page-data.json" crossorigin="anonymous"/><link as="fetch" rel="preload" href="/page-data/sq/d/1954253342.json" crossorigin="anonymous"/><link as="fetch" rel="preload" href="/page-data/sq/d/2328931024.json" crossorigin="anonymous"/><link as="fetch" rel="preload" href="/page-data/sq/d/2501019404.json" crossorigin="anonymous"/><link as="fetch" rel="preload" href="/page-data/sq/d/973074209.json" crossorigin="anonymous"/><link as="fetch" rel="preload" href="/page-data/app-data.json" crossorigin="anonymous"/></head><body><div id="___gatsby"><style data-emotion-css="6ifimc">*,*::after,*::before{margin:0;padding:0;box-sizing:border-box;}body{font-size:16px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif;background-color:#FFFFFF;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;overflow-y:scroll;}h1{font-size:32px;color:#3D3D4D;font-weight:bold;margin-bottom:24px;}h2{font-size:24px;}h3{font-size:18px;}h4{font-size:16px;}h2,h3,h4,h5,h6{color:#3D3D4D;margin:24px 0 16px 0;font-weight:bold;}p{color:#6C6C80;font-size:16px;line-height:28px;margin-bottom:16px;font-weight:400;}code.inline-code{display:inline-block;vertical-align:middle;line-height:1;padding:0.2em;background-color:#44475a;color:rgba(248,248,242);font-size:14px;border-radius:3px;font-feature-settings:'clig' 0,'calt' 0;font-variant:no-common-ligatures no-discretionary-ligatures no-historical-ligatures no-contextual;}h1 code.inline-code,h2 code.inline-code{font-size:calc(100% - 5px);padding:4px;}a{color:#6C6C80;font-weight:bold;-webkit-text-decoration:none;text-decoration:none;}a:hover{-webkit-text-decoration:underline;text-decoration:underline;}blockquote{margin-bottom:16px;width:100%;}blockquote p{padding:1rem;border-radius:5px;background:#F2F2FA;color:#6C6C80;margin:0;}hr{border:0;height:0;border-top:1px solid rgba(0,0,0,0.1);border-bottom:1px solid rgba(255,255,255,0.3);}table{border-collapse:separate;border-spacing:0 4px;margin-top:-4px;margin-bottom:16px;width:100%;}table th,table td{margin:0;color:#6C6C80;background-color:#F2F2FA;border:solid 1px #F2F2FA;border-style:solid none;padding:12px;}table th:first-of-type,table td:first-of-type{border-left-style:solid;border-top-left-radius:5px;border-bottom-left-radius:5px;}table th:last-child,table td:last-child{border-right-style:solid;border-bottom-right-radius:5px;border-top-right-radius:5px;}table tr th{color:#3D3D4D;text-align:left;font-weight:bold;}iframe{margin-bottom:16px;}img{max-width:100%;}ul,ol{color:#6C6C80;padding-left:15px;margin-bottom:16px;}ul li,ol li{line-height:28px;}.gatsby-highlight{font-family:Hack,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-variant:no-common-ligatures no-discretionary-ligatures no-historical-ligatures no-contextual;position:relative;z-index:0;margin:0 0 16px 0;overflow:auto;}.gatsby-highlight .token{font-style:normal !important;}pre[class*='language-'] code{font-family:inherit;}pre[class*='language-']::before{background:#d9d7e0;border-radius:0 0 4px 4px;color:#232129;font-size:12px;font-family:inherit;-webkit-letter-spacing:0.075em;-moz-letter-spacing:0.075em;-ms-letter-spacing:0.075em;letter-spacing:0.075em;line-height:1;padding:0.25rem 0.5rem;position:absolute;left:1rem;text-align:right;text-transform:uppercase;top:0;}pre[class~='language-js']::before,pre[class~='language-javascript']::before{content:'js';background:#f7df1e;}pre[class~='language-jsx']::before{content:'jsx';background:#61dafb;}pre[class~='language-typescript']::before,pre[class~='language-ts']::before{content:'ts';background:#294e80;color:#fff;}pre[class~='language-tsx']::before{content:'tsx';background:#294e80;color:#fff;}pre[class~='language-graphql']::before{content:'GraphQL';background:#e10098;color:#fff;}pre[class~='language-html']::before{content:'html';background:#005a9c;color:#fff;}pre[class~='language-css']::before{content:'css';background:#ff9800;color:#fff;}pre[class~='language-mdx']::before{content:'mdx';background:#f9ac00;color:#fff;}pre[class~='language-shell']::before{content:'shell';}pre[class~='language-sh']::before{content:'sh';}pre[class~='language-bash']::before{content:'bash';}pre[class~='language-yaml']::before,pre[class~='language-yml']::before{content:'yaml';background:#ffa8df;}pre[class~='language-markdown']::before{content:'md';}pre[class~='language-json']::before,pre[class~='language-json5']::before{content:'json';background:linen;}pre[class~='language-diff']::before{content:'diff';background:#e6ffed;}pre[class~='language-text']::before{content:'text';background:#fff;}pre[class~='language-flow']::before{content:'flow';background:#e8bd36;}</style><div style="outline:none" tabindex="-1" id="gatsby-focus-wrapper"><style data-emotion-css="7gspsd">.css-7gspsd::after{content:'';position:fixed;width:100%;height:100%;left:0;right:0;bottom:0;background-color:rgba(0,0,0,0.8);z-index:999;display:none;}</style><div aria-label="Close menu" class="css-7gspsd"></div><style data-emotion-css="1i3ij69">.css-1i3ij69{width:100%;max-width:1400px;margin:0 auto;padding:0 24px;display:grid;grid-template-columns:280px calc(100% - 320px);grid-auto-flow:row;grid-gap:40px;}@media (max-width:780px){.css-1i3ij69{padding:24px;grid-template-columns:100%;}}</style><div class="css-1i3ij69 eees1d50"><style data-emotion-css="efco39">.css-efco39{width:100%;overflow-y:auto;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;position:-webkit-sticky;position:sticky;top:0;padding-top:36px;-webkit-transition:-webkit-transform 0.5s;-webkit-transition:transform 0.5s;transition:transform 0.5s;height:calc(100vh - 1px);}.css-efco39 nav{width:100%;padding-top:24px;-webkit-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start;-webkit-flex:1;-ms-flex:1;flex:1;}@media (max-width:780px){.css-efco39{max-width:75%;min-width:auto;z-index:1001;position:fixed;top:0;bottom:0;left:0;padding-top:32px;background:#FFFFFF;-webkit-transform:translate3d( -100%,0,0 );-ms-transform:translate3d( -100%,0,0 );transform:translate3d( -100%,0,0 );}}</style><aside class="css-efco39 e1wh78ri0"><style data-emotion-css="2yrou">.css-2yrou{width:100%;}.css-2yrou a{width:100%;padding-left:30px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}</style><div class="css-2yrou e1wh78ri1"><a aria-label="Go to home page" href="/"><img src="/static/logo-f730a0b8e533f2d4da7bd901d2b7ab80.png" alt="Logo" width="90px" height="80px"/></a></div><nav><style data-emotion-css="mbmci8">.css-mbmci8{list-style:none;width:100%;padding-left:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}</style><ul class="css-mbmci8 e1wh78ri2"><style data-emotion-css="1wldk6c">.css-1wldk6c{font-size:15px;width:100%;-webkit-transition:all 200ms ease-in-out;transition:all 200ms ease-in-out;padding:0 20px;cursor:pointer;}.css-1wldk6c a,.css-1wldk6c span{display:block;font-size:15px;color:#6C6C80;background-color:#FFFFFF;padding:4px 10px;margin:4px 0;border-radius:4px;font-weight:normal;-webkit-text-decoration:none;text-decoration:none;width:100%;height:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;cursor:pointer;margin:0 auto;-webkit-transition:all 0.2s ease;transition:all 0.2s ease;}.css-1wldk6c a svg,.css-1wldk6c span svg{width:20px;height:20px;margin-right:10px;}.css-1wldk6c a:not(.active-link):hover,.css-1wldk6c span:not(.active-link):hover{color:#8257E6;}.css-1wldk6c a.active-link,.css-1wldk6c span.active-link{color:#8257E6;background-color:#F2F2FA;}@media (max-width:780px){.css-1wldk6c a.active-link,.css-1wldk6c span.active-link{background:#F2F2FA;}}</style><li class="css-1wldk6c e1wh78ri4"><a href="/">Introduction</a></li><li class="css-1wldk6c e1wh78ri4"><a href="https://github.com/apache/incubator-liminal/blob/master/README.md" rel="noopener noreferrer">Getting started<svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" style="width:16px;height:16px;margin-left:10px" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1="10" y1="14" x2="21" y2="3"></line></svg></a></li><li class="css-1wldk6c e1wh78ri4"><a aria-current="page" class="active-link" href="/usage/arch">Architecture</a></li><style data-emotion-css="mximbs">.css-mximbs{padding-left:30px;width:100%;text-transform:uppercase;font-size:14px;font-weight:bold;margin-top:20px;color:#3D3D4D;-webkit-letter-spacing:0.142em;-moz-letter-spacing:0.142em;-ms-letter-spacing:0.142em;letter-spacing:0.142em;}</style><li class="css-mximbs e1wh78ri3">Community</li><style data-emotion-css="157nhwy">.css-157nhwy{list-style:none;width:100%;padding-left:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;margin:5px 0 0 0;}</style><ul class="css-157nhwy e1wh78ri5"><li class="css-1wldk6c e1wh78ri4"><a href="https://github.com/apache/incubator-liminal" rel="noopener noreferrer">Github<svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" style="width:16px;height:16px;margin-left:10px" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1="10" y1="14" x2="21" y2="3"></line></svg></a></li><li class="css-1wldk6c e1wh78ri4"><a href="https://lists.apache.org/list.html?dev@liminal.apache.org" rel="noopener noreferrer">Dev-Mailing-List<svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" style="width:16px;height:16px;margin-left:10px" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1="10" y1="14" x2="21" y2="3"></line></svg></a></li></ul></ul></nav></aside><style data-emotion-css="19vacph">.css-19vacph{height:100%;padding-top:36px;width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;position:relative;}@media (max-width:1200px){.css-19vacph{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}}@media (max-width:780px){.css-19vacph{padding-top:0;}}</style><main class="css-19vacph eees1d51"><style data-emotion-css="9q3p0l">.css-9q3p0l{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:40px;margin-bottom:24px;}.css-9q3p0l h2{margin:0;border:none;padding:0;font-size:18px;}@media (max-width:359px){.css-9q3p0l h2{font-size:14px;}}.css-9q3p0l button{border:none;background:none;cursor:pointer;margin-right:16px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}@media (min-width:780px){.css-9q3p0l{display:none;}}</style><header class="css-9q3p0l esnpb7p0"><button aria-label="Open sidebar" type="button"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 512 512" size="23" aria-hidden="true" height="23" width="23" xmlns="http://www.w3.org/2000/svg"><path d="M32 96v64h448V96H32zm0 128v64h448v-64H32zm0 128v64h448v-64H32z"></path></svg></button><h2></h2></header><style data-emotion-css="1ehkd4h">.css-1ehkd4h{width:100%;max-width:calc(75% - 64px);padding-right:64px;}@media (max-width:1200px){.css-1ehkd4h{max-width:100%;padding-right:0;-webkit-order:3;-ms-flex-order:3;order:3;}}</style><div class="css-1ehkd4h eees1d52"><h2 id="motivation" style="position:relative"><a href="#motivation" aria-label="motivation permalink" class="anchor before"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Motivation</h2><p>The challenges involved in operationalizing machine learning models are one of the main reasons why many machine learning projects never make it to production. The process involves automating and orchestrating multiple steps which run on heterogeneous infrastructure - different compute environments, data processing platforms, ML frameworks, notebooks, containers and monitoring tools. There are no mature standards for this workflow, and most organizations do not have the experience to build it in-house. In the best case, dev-ds-devops teams form in order to accomplish this task together; in many cases, it&#x27;s the data scientists who try to deal with this themselves without the knowledge or the inclination to become infrastructure experts. As a result, many projects never make it through the cycle. Those who do suffer from a very long lead time from a successful experiment to an operational, refreshable, deployed and monitored model in production.</p><p>Apache Liminal was created to enable scalability in ML efforts and after a thorough review of available solutions and frameworks, which did not meet our main KPIs. Few Commercial &amp; Open-source solutions have started to emerge in the last few years, however, they are limited to specific parts of the workflow, such as Databricks MLFlow or tied to a specific environment (e.g. SageMaker on AWS) or a specific tech stack (e.g. KubeFlow).</p><h2 id="liminal-workflows" style="position:relative"><a href="#liminal-workflows" aria-label="liminal workflows permalink" class="anchor before"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Liminal Workflows</h2><p>Apache Liminal provides declarative building blocks which define the workflow, orchestrate the underlying infrastructure and takes care of non functional concerns; thus enabling focus in business logic / algorithm code. Liminal approach is to wrap existing frameworks and libraries with a DSL (Domain-Specific-Language), which is used by data engineers &amp; scientists to express ML/AI workflows using the right abstractions; from model training to real time inference in production.</p><p>The architecture enables and promotes adoption of specific components in existing (non-Liminal) frameworks, as well as seamless integration with other open source projects. The following diagram depicts these main components and where Apache Liminal comes in:</p><img alt="Liminal" src="/liminal_01.png"/><p>A classical data scientist workflow includes some base phases: Train, Deploy and Consume.</p><p><em>The Train phase includes the following tasks:</em></p><ul><li>Fetch - get the data needed to build a model - usually using SQL</li><li>Clean - make sure the data is useful for building the model</li><li>Prepare - extract features from the data</li><li>Train - build the model and tune it</li><li>Evaluate - test model integrity</li><li>Validate - test model quality</li></ul><p><em>The Deploy phase includes these tasks:</em></p><ul><li>Deploy - make it available for usage in production</li><li>Inference - The actual use of the models created by applications and ETLs, usually through APIs to the batch or real-time inference that usually rely on Model and Feature stores.</li><li>Monitor - consistent monitoring of ML models performance and KPIs</li></ul><p>Liminal provides its users a declarative composition capabilities to materialize these steps in a robust way, using standard ML/AI frameworks, tools &amp; libraries, e.g. scikit-learn, Pandas, Airfolow, Kubernetes, MLFLow etc. Liminal&#x27;s plugin architecture provides an easy way to extend and evolve the platform.</p><img alt="Liminal" src="/liminal_02.png"/><style data-emotion-css="1rfih1g">.css-1rfih1g{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:48px 0;width:100%;}@media (max-width:780px){.css-1rfih1g{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}}</style><section class="css-1rfih1g e1jikabl0"><style data-emotion-css="asqskg">.css-asqskg{-webkit-transition:all 200ms;transition:all 200ms;}.css-asqskg a{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-text-decoration:none;text-decoration:none;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%;height:100%;}.css-asqskg a svg{width:25px;height:25px;color:#6C6C80;margin-right:16px;}.css-asqskg a p{-webkit-letter-spacing:0.142em;-moz-letter-spacing:0.142em;-ms-letter-spacing:0.142em;letter-spacing:0.142em;text-transform:uppercase;font-size:12px;margin:0;color:#6C6C80;}.css-asqskg a h3{color:#6C6C80;border:none;margin:0;padding:0;font-size:16px;}.css-asqskg:hover{opacity:0.8;}.css-asqskg:hover a svg{opacity:0.8;}@media (max-width:780px){.css-asqskg{width:100%;margin-bottom:16px;}.css-asqskg a{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;}}</style><div class="css-asqskg e1jikabl1"><a href="https://github.com/apache/incubator-liminal/blob/master/README.md"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z"></path></svg><div><p>Prev</p><h3>Getting started</h3></div></a></div><style data-emotion-css="3wkrrt">.css-3wkrrt{-webkit-transition:all 200ms;transition:all 200ms;margin-left:auto;}.css-3wkrrt a{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-text-decoration:none;text-decoration:none;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%;height:100%;}.css-3wkrrt a svg{width:25px;height:25px;color:#6C6C80;margin-left:16px;}.css-3wkrrt a p{-webkit-letter-spacing:0.142em;-moz-letter-spacing:0.142em;-ms-letter-spacing:0.142em;letter-spacing:0.142em;text-transform:uppercase;font-size:12px;margin:0;color:#6C6C80;}.css-3wkrrt a h3{color:#6C6C80;border:none;margin:0;padding:0;font-size:16px;}.css-3wkrrt:hover{opacity:0.8;}.css-3wkrrt:hover a svg{opacity:0.8;}@media (max-width:780px){.css-3wkrrt{width:100%;}.css-3wkrrt a{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end;}}</style><div class="css-3wkrrt e1jikabl1"><a href="https://github.com/apache/incubator-liminal"><div><p>Next</p><h3>Github</h3></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z"></path></svg></a></div></section></div><style data-emotion-css="15t48j3">.css-15t48j3{position:-webkit-sticky;position:sticky;top:0;-webkit-order:2;-ms-flex-order:2;order:2;padding-top:72px;max-height:calc(100vh - 72px);overflow-y:auto;width:100%;max-width:200px;}@media (max-width:1200px){.css-15t48j3{position:relative;top:auto;-webkit-order:0;-ms-flex-order:0;order:0;max-width:100%;margin-left:0;padding-top:0;}}</style><div class="css-15t48j3 e10o0eax0"><style data-emotion-css="157u13d">.css-157u13d h2{text-transform:uppercase;font-size:14px;font-weight:bold;-webkit-letter-spacing:0.142em;-moz-letter-spacing:0.142em;-ms-letter-spacing:0.142em;letter-spacing:0.142em;margin-top:0rem;border:none;margin:0 0 16px 0;}.css-157u13d nav ul{padding-left:0;margin-bottom:0;list-style:none;}.css-157u13d nav ul li{margin-bottom:12px;line-height:1.1;}.css-157u13d nav ul li a{font-size:14px;font-weight:400;-webkit-text-decoration:none;text-decoration:none;-webkit-transition:all 0.2s;transition:all 0.2s;}.css-157u13d nav ul li a:hover{-webkit-text-decoration:underline;text-decoration:underline;}@media (max-width:1200px){.css-157u13d{margin:0 0 24px 0;padding-bottom:16px;border-bottom:1px solid rgba(120,117,122,0.2);}}</style><div class="css-157u13d e10o0eax1"><h2>On this page</h2><nav><ul><li><a href="#motivation" style="color:#6C6C80">Motivation</a></li><li><a href="#liminal-workflows" style="color:#6C6C80">Liminal Workflows</a></li></ul></nav></div></div></main></div></div><div id="gatsby-announcer" style="position:absolute;top:0;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0" aria-live="assertive" aria-atomic="true"></div></div><script id="gatsby-script-loader">/*<![CDATA[*/window.pagePath="/usage/arch";/*]]>*/</script><script id="gatsby-chunk-mapping">/*<![CDATA[*/window.___chunkMapping={"polyfill":["/polyfill-46800a246443c64ac6e0.js"],"app":["/app-dc092efbd8d9d25365f0.js"],"component---cache-caches-gatsby-plugin-offline-app-shell-js":["/component---cache-caches-gatsby-plugin-offline-app-shell-js-5a1ee105f05b3144b807.js"],"component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-docs-query-js":["/component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-docs-query-js-45096b7ad4a0af4f2241.js"],"component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js":["/component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js-bac143fcc98b6926a57f.js"],"component---src-pages-404-js":["/component---src-pages-404-js-04beac219105c3e149b3.js"]};/*]]>*/</script><script src="/polyfill-46800a246443c64ac6e0.js" nomodule=""></script><script src="/component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-docs-query-js-45096b7ad4a0af4f2241.js" async=""></script><script src="/a7629950cb7a18c7593baf47d0acfe798f1cddc4-4c1232454ad5571a0b75.js" async=""></script><script src="/252f366e-c8db8218630b044bf329.js" async=""></script><script src="/5e2a4920-cba84c59a4ec3c5b642e.js" async=""></script><script src="/545f34e4-7dfe072c8eed183902e6.js" async=""></script><script src="/app-dc092efbd8d9d25365f0.js" async=""></script><script src="/f0e45107-ff2c7ac7fae000cceb4b.js" async=""></script><script src="/framework-85aff51d15c28c7fbe5f.js" async=""></script><script src="/webpack-runtime-20f9c665c2949ed076fe.js" async=""></script></body></html>
\ No newline at end of file
diff --git a/webpack-runtime-e7d4f0c418939174f0da.js b/webpack-runtime-20f9c665c2949ed076fe.js
similarity index 81%
rename from webpack-runtime-e7d4f0c418939174f0da.js
rename to webpack-runtime-20f9c665c2949ed076fe.js
index 00658c1..6c68549 100644
--- a/webpack-runtime-e7d4f0c418939174f0da.js
+++ b/webpack-runtime-20f9c665c2949ed076fe.js
@@ -1,2 +1,2 @@
-!function(e){function t(t){for(var n,c,u=t[0],s=t[1],i=t[2],l=0,p=[];l<u.length;l++)c=u[l],Object.prototype.hasOwnProperty.call(o,c)&&o[c]&&p.push(o[c][0]),o[c]=0;for(n in s)Object.prototype.hasOwnProperty.call(s,n)&&(e[n]=s[n]);for(f&&f(t);p.length;)p.shift()();return a.push.apply(a,i||[]),r()}function r(){for(var e,t=0;t<a.length;t++){for(var r=a[t],n=!0,u=1;u<r.length;u++){var s=r[u];0!==o[s]&&(n=!1)}n&&(a.splice(t--,1),e=c(c.s=r[0]))}return e}var n={},o={3:0},a=[];function c(t){if(n[t])return n[t].exports;var r=n[t]={i:t,l:!1,exports:{}};return e[t].call(r.exports,r,r.exports,c),r.l=!0,r.exports}c.e=function(e){var t=[],r=o[e];if(0!==r)if(r)t.push(r[2]);else{var n=new Promise((function(t,n){r=o[e]=[t,n]}));t.push(r[2]=n);var a,u=document.createElement("script");u.charset="utf-8",u.timeout=120,c.nc&&u.setAttribute("nonce",c.nc),u.src=function(e){return c.p+""+({0:"545f34e4",1:"5e2a4920",2:"a7629950cb7a18c7593baf47d0acfe798f1cddc4",4:"252f366e",6:"component---cache-caches-gatsby-plugin-offline-app-shell-js",7:"component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-docs-query-js",8:"component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js",9:"component---src-pages-404-js"}[e]||e)+"-"+{0:"7dfe072c8eed183902e6",1:"cba84c59a4ec3c5b642e",2:"4c1232454ad5571a0b75",4:"c8db8218630b044bf329",6:"5a1ee105f05b3144b807",7:"45096b7ad4a0af4f2241",8:"c50cb61fe2c65deeaa10",9:"04beac219105c3e149b3"}[e]+".js"}(e);var s=new Error;a=function(t){u.onerror=u.onload=null,clearTimeout(i);var r=o[e];if(0!==r){if(r){var n=t&&("load"===t.type?"missing":t.type),a=t&&t.target&&t.target.src;s.message="Loading chunk "+e+" failed.\n("+n+": "+a+")",s.name="ChunkLoadError",s.type=n,s.request=a,r[1](s)}o[e]=void 0}};var i=setTimeout((function(){a({type:"timeout",target:u})}),12e4);u.onerror=u.onload=a,document.head.appendChild(u)}return Promise.all(t)},c.m=e,c.c=n,c.d=function(e,t,r){c.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},c.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},c.t=function(e,t){if(1&t&&(e=c(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(c.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)c.d(r,n,function(t){return e[t]}.bind(null,n));return r},c.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return c.d(t,"a",t),t},c.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},c.p="/",c.oe=function(e){throw console.error(e),e};var u=window.webpackJsonp=window.webpackJsonp||[],s=u.push.bind(u);u.push=t,u=u.slice();for(var i=0;i<u.length;i++)t(u[i]);var f=s;r()}([]);
-//# sourceMappingURL=webpack-runtime-e7d4f0c418939174f0da.js.map
\ No newline at end of file
+!function(e){function t(t){for(var n,c,u=t[0],s=t[1],f=t[2],l=0,p=[];l<u.length;l++)c=u[l],Object.prototype.hasOwnProperty.call(o,c)&&o[c]&&p.push(o[c][0]),o[c]=0;for(n in s)Object.prototype.hasOwnProperty.call(s,n)&&(e[n]=s[n]);for(i&&i(t);p.length;)p.shift()();return a.push.apply(a,f||[]),r()}function r(){for(var e,t=0;t<a.length;t++){for(var r=a[t],n=!0,u=1;u<r.length;u++){var s=r[u];0!==o[s]&&(n=!1)}n&&(a.splice(t--,1),e=c(c.s=r[0]))}return e}var n={},o={3:0},a=[];function c(t){if(n[t])return n[t].exports;var r=n[t]={i:t,l:!1,exports:{}};return e[t].call(r.exports,r,r.exports,c),r.l=!0,r.exports}c.e=function(e){var t=[],r=o[e];if(0!==r)if(r)t.push(r[2]);else{var n=new Promise((function(t,n){r=o[e]=[t,n]}));t.push(r[2]=n);var a,u=document.createElement("script");u.charset="utf-8",u.timeout=120,c.nc&&u.setAttribute("nonce",c.nc),u.src=function(e){return c.p+""+({0:"545f34e4",1:"5e2a4920",2:"a7629950cb7a18c7593baf47d0acfe798f1cddc4",4:"252f366e",6:"component---cache-caches-gatsby-plugin-offline-app-shell-js",7:"component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-docs-query-js",8:"component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js",9:"component---src-pages-404-js"}[e]||e)+"-"+{0:"7dfe072c8eed183902e6",1:"cba84c59a4ec3c5b642e",2:"4c1232454ad5571a0b75",4:"c8db8218630b044bf329",6:"5a1ee105f05b3144b807",7:"45096b7ad4a0af4f2241",8:"bac143fcc98b6926a57f",9:"04beac219105c3e149b3"}[e]+".js"}(e);var s=new Error;a=function(t){u.onerror=u.onload=null,clearTimeout(f);var r=o[e];if(0!==r){if(r){var n=t&&("load"===t.type?"missing":t.type),a=t&&t.target&&t.target.src;s.message="Loading chunk "+e+" failed.\n("+n+": "+a+")",s.name="ChunkLoadError",s.type=n,s.request=a,r[1](s)}o[e]=void 0}};var f=setTimeout((function(){a({type:"timeout",target:u})}),12e4);u.onerror=u.onload=a,document.head.appendChild(u)}return Promise.all(t)},c.m=e,c.c=n,c.d=function(e,t,r){c.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},c.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},c.t=function(e,t){if(1&t&&(e=c(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(c.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)c.d(r,n,function(t){return e[t]}.bind(null,n));return r},c.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return c.d(t,"a",t),t},c.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},c.p="/",c.oe=function(e){throw console.error(e),e};var u=window.webpackJsonp=window.webpackJsonp||[],s=u.push.bind(u);u.push=t,u=u.slice();for(var f=0;f<u.length;f++)t(u[f]);var i=s;r()}([]);
+//# sourceMappingURL=webpack-runtime-20f9c665c2949ed076fe.js.map
\ No newline at end of file
diff --git a/webpack-runtime-e7d4f0c418939174f0da.js.map b/webpack-runtime-20f9c665c2949ed076fe.js.map
similarity index 98%
rename from webpack-runtime-e7d4f0c418939174f0da.js.map
rename to webpack-runtime-20f9c665c2949ed076fe.js.map
index feec561..1dedcb7 100644
--- a/webpack-runtime-e7d4f0c418939174f0da.js.map
+++ b/webpack-runtime-20f9c665c2949ed076fe.js.map
@@ -1 +1 @@
-{"version":3,"sources":["webpack:///webpack/bootstrap"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","3","exports","module","l","e","promises","installedChunkData","promise","Promise","resolve","reject","onScriptComplete","script","document","createElement","charset","timeout","nc","setAttribute","src","p","jsonpScriptSrc","error","Error","event","onerror","onload","clearTimeout","chunk","errorType","type","realSrc","target","message","name","request","undefined","setTimeout","head","appendChild","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","err","console","jsonpArray","window","oldJsonpFunction","slice"],"mappings":"aACE,SAASA,EAAqBC,GAQ7B,IAPA,IAMIC,EAAUC,EANVC,EAAWH,EAAK,GAChBI,EAAcJ,EAAK,GACnBK,EAAiBL,EAAK,GAIHM,EAAI,EAAGC,EAAW,GACpCD,EAAIH,EAASK,OAAQF,IACzBJ,EAAUC,EAASG,GAChBG,OAAOC,UAAUC,eAAeC,KAAKC,EAAiBX,IAAYW,EAAgBX,IACpFK,EAASO,KAAKD,EAAgBX,GAAS,IAExCW,EAAgBX,GAAW,EAE5B,IAAID,KAAYG,EACZK,OAAOC,UAAUC,eAAeC,KAAKR,EAAaH,KACpDc,EAAQd,GAAYG,EAAYH,IAKlC,IAFGe,GAAqBA,EAAoBhB,GAEtCO,EAASC,QACdD,EAASU,OAATV,GAOD,OAHAW,EAAgBJ,KAAKK,MAAMD,EAAiBb,GAAkB,IAGvDe,IAER,SAASA,IAER,IADA,IAAIC,EACIf,EAAI,EAAGA,EAAIY,EAAgBV,OAAQF,IAAK,CAG/C,IAFA,IAAIgB,EAAiBJ,EAAgBZ,GACjCiB,GAAY,EACRC,EAAI,EAAGA,EAAIF,EAAed,OAAQgB,IAAK,CAC9C,IAAIC,EAAQH,EAAeE,GACG,IAA3BX,EAAgBY,KAAcF,GAAY,GAE3CA,IACFL,EAAgBQ,OAAOpB,IAAK,GAC5Be,EAASM,EAAoBA,EAAoBC,EAAIN,EAAe,KAItE,OAAOD,EAIR,IAAIQ,EAAmB,GAKnBhB,EAAkB,CACrBiB,EAAG,GAGAZ,EAAkB,GAQtB,SAASS,EAAoB1B,GAG5B,GAAG4B,EAAiB5B,GACnB,OAAO4B,EAAiB5B,GAAU8B,QAGnC,IAAIC,EAASH,EAAiB5B,GAAY,CACzCK,EAAGL,EACHgC,GAAG,EACHF,QAAS,IAUV,OANAhB,EAAQd,GAAUW,KAAKoB,EAAOD,QAASC,EAAQA,EAAOD,QAASJ,GAG/DK,EAAOC,GAAI,EAGJD,EAAOD,QAKfJ,EAAoBO,EAAI,SAAuBhC,GAC9C,IAAIiC,EAAW,GAKXC,EAAqBvB,EAAgBX,GACzC,GAA0B,IAAvBkC,EAGF,GAAGA,EACFD,EAASrB,KAAKsB,EAAmB,QAC3B,CAEN,IAAIC,EAAU,IAAIC,SAAQ,SAASC,EAASC,GAC3CJ,EAAqBvB,EAAgBX,GAAW,CAACqC,EAASC,MAE3DL,EAASrB,KAAKsB,EAAmB,GAAKC,GAGtC,IACII,EADAC,EAASC,SAASC,cAAc,UAGpCF,EAAOG,QAAU,QACjBH,EAAOI,QAAU,IACbnB,EAAoBoB,IACvBL,EAAOM,aAAa,QAASrB,EAAoBoB,IAElDL,EAAOO,IA1DV,SAAwB/C,GACvB,OAAOyB,EAAoBuB,EAAI,IAAM,CAAC,EAAI,WAAW,EAAI,WAAW,EAAI,2CAA2C,EAAI,WAAW,EAAI,8DAA8D,EAAI,yFAAyF,EAAI,6FAA6F,EAAI,gCAAgChD,IAAUA,GAAW,IAAM,CAAC,EAAI,uBAAuB,EAAI,uBAAuB,EAAI,uBAAuB,EAAI,uBAAuB,EAAI,uBAAuB,EAAI,uBAAuB,EAAI,uBAAuB,EAAI,wBAAwBA,GAAW,MAyDvpBiD,CAAejD,GAG5B,IAAIkD,EAAQ,IAAIC,MAChBZ,EAAmB,SAAUa,GAE5BZ,EAAOa,QAAUb,EAAOc,OAAS,KACjCC,aAAaX,GACb,IAAIY,EAAQ7C,EAAgBX,GAC5B,GAAa,IAAVwD,EAAa,CACf,GAAGA,EAAO,CACT,IAAIC,EAAYL,IAAyB,SAAfA,EAAMM,KAAkB,UAAYN,EAAMM,MAChEC,EAAUP,GAASA,EAAMQ,QAAUR,EAAMQ,OAAOb,IACpDG,EAAMW,QAAU,iBAAmB7D,EAAU,cAAgByD,EAAY,KAAOE,EAAU,IAC1FT,EAAMY,KAAO,iBACbZ,EAAMQ,KAAOD,EACbP,EAAMa,QAAUJ,EAChBH,EAAM,GAAGN,GAEVvC,EAAgBX,QAAWgE,IAG7B,IAAIpB,EAAUqB,YAAW,WACxB1B,EAAiB,CAAEmB,KAAM,UAAWE,OAAQpB,MAC1C,MACHA,EAAOa,QAAUb,EAAOc,OAASf,EACjCE,SAASyB,KAAKC,YAAY3B,GAG5B,OAAOJ,QAAQgC,IAAInC,IAIpBR,EAAoB4C,EAAIxD,EAGxBY,EAAoB6C,EAAI3C,EAGxBF,EAAoB8C,EAAI,SAAS1C,EAASiC,EAAMU,GAC3C/C,EAAoBgD,EAAE5C,EAASiC,IAClCvD,OAAOmE,eAAe7C,EAASiC,EAAM,CAAEa,YAAY,EAAMC,IAAKJ,KAKhE/C,EAAoBoD,EAAI,SAAShD,GACX,oBAAXiD,QAA0BA,OAAOC,aAC1CxE,OAAOmE,eAAe7C,EAASiD,OAAOC,YAAa,CAAEC,MAAO,WAE7DzE,OAAOmE,eAAe7C,EAAS,aAAc,CAAEmD,OAAO,KAQvDvD,EAAoBwD,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQvD,EAAoBuD,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,iBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAK7E,OAAO8E,OAAO,MAGvB,GAFA5D,EAAoBoD,EAAEO,GACtB7E,OAAOmE,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOvD,EAAoB8C,EAAEa,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIR3D,EAAoB+D,EAAI,SAAS1D,GAChC,IAAI0C,EAAS1C,GAAUA,EAAOqD,WAC7B,WAAwB,OAAOrD,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAL,EAAoB8C,EAAEC,EAAQ,IAAKA,GAC5BA,GAIR/C,EAAoBgD,EAAI,SAASgB,EAAQC,GAAY,OAAOnF,OAAOC,UAAUC,eAAeC,KAAK+E,EAAQC,IAGzGjE,EAAoBuB,EAAI,IAGxBvB,EAAoBkE,GAAK,SAASC,GAA2B,MAApBC,QAAQ3C,MAAM0C,GAAYA,GAEnE,IAAIE,EAAaC,OAAqB,aAAIA,OAAqB,cAAK,GAChEC,EAAmBF,EAAWlF,KAAK2E,KAAKO,GAC5CA,EAAWlF,KAAOf,EAClBiG,EAAaA,EAAWG,QACxB,IAAI,IAAI7F,EAAI,EAAGA,EAAI0F,EAAWxF,OAAQF,IAAKP,EAAqBiG,EAAW1F,IAC3E,IAAIU,EAAsBkF,EAI1B9E,I","file":"webpack-runtime-e7d4f0c418939174f0da.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t3: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"\" + ({\"0\":\"545f34e4\",\"1\":\"5e2a4920\",\"2\":\"a7629950cb7a18c7593baf47d0acfe798f1cddc4\",\"4\":\"252f366e\",\"6\":\"component---cache-caches-gatsby-plugin-offline-app-shell-js\",\"7\":\"component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-docs-query-js\",\"8\":\"component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js\",\"9\":\"component---src-pages-404-js\"}[chunkId]||chunkId) + \"-\" + {\"0\":\"7dfe072c8eed183902e6\",\"1\":\"cba84c59a4ec3c5b642e\",\"2\":\"4c1232454ad5571a0b75\",\"4\":\"c8db8218630b044bf329\",\"6\":\"5a1ee105f05b3144b807\",\"7\":\"45096b7ad4a0af4f2241\",\"8\":\"c50cb61fe2c65deeaa10\",\"9\":\"04beac219105c3e149b3\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// run deferred modules from other chunks\n \tcheckDeferredModules();\n"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["webpack:///webpack/bootstrap"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","3","exports","module","l","e","promises","installedChunkData","promise","Promise","resolve","reject","onScriptComplete","script","document","createElement","charset","timeout","nc","setAttribute","src","p","jsonpScriptSrc","error","Error","event","onerror","onload","clearTimeout","chunk","errorType","type","realSrc","target","message","name","request","undefined","setTimeout","head","appendChild","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","err","console","jsonpArray","window","oldJsonpFunction","slice"],"mappings":"aACE,SAASA,EAAqBC,GAQ7B,IAPA,IAMIC,EAAUC,EANVC,EAAWH,EAAK,GAChBI,EAAcJ,EAAK,GACnBK,EAAiBL,EAAK,GAIHM,EAAI,EAAGC,EAAW,GACpCD,EAAIH,EAASK,OAAQF,IACzBJ,EAAUC,EAASG,GAChBG,OAAOC,UAAUC,eAAeC,KAAKC,EAAiBX,IAAYW,EAAgBX,IACpFK,EAASO,KAAKD,EAAgBX,GAAS,IAExCW,EAAgBX,GAAW,EAE5B,IAAID,KAAYG,EACZK,OAAOC,UAAUC,eAAeC,KAAKR,EAAaH,KACpDc,EAAQd,GAAYG,EAAYH,IAKlC,IAFGe,GAAqBA,EAAoBhB,GAEtCO,EAASC,QACdD,EAASU,OAATV,GAOD,OAHAW,EAAgBJ,KAAKK,MAAMD,EAAiBb,GAAkB,IAGvDe,IAER,SAASA,IAER,IADA,IAAIC,EACIf,EAAI,EAAGA,EAAIY,EAAgBV,OAAQF,IAAK,CAG/C,IAFA,IAAIgB,EAAiBJ,EAAgBZ,GACjCiB,GAAY,EACRC,EAAI,EAAGA,EAAIF,EAAed,OAAQgB,IAAK,CAC9C,IAAIC,EAAQH,EAAeE,GACG,IAA3BX,EAAgBY,KAAcF,GAAY,GAE3CA,IACFL,EAAgBQ,OAAOpB,IAAK,GAC5Be,EAASM,EAAoBA,EAAoBC,EAAIN,EAAe,KAItE,OAAOD,EAIR,IAAIQ,EAAmB,GAKnBhB,EAAkB,CACrBiB,EAAG,GAGAZ,EAAkB,GAQtB,SAASS,EAAoB1B,GAG5B,GAAG4B,EAAiB5B,GACnB,OAAO4B,EAAiB5B,GAAU8B,QAGnC,IAAIC,EAASH,EAAiB5B,GAAY,CACzCK,EAAGL,EACHgC,GAAG,EACHF,QAAS,IAUV,OANAhB,EAAQd,GAAUW,KAAKoB,EAAOD,QAASC,EAAQA,EAAOD,QAASJ,GAG/DK,EAAOC,GAAI,EAGJD,EAAOD,QAKfJ,EAAoBO,EAAI,SAAuBhC,GAC9C,IAAIiC,EAAW,GAKXC,EAAqBvB,EAAgBX,GACzC,GAA0B,IAAvBkC,EAGF,GAAGA,EACFD,EAASrB,KAAKsB,EAAmB,QAC3B,CAEN,IAAIC,EAAU,IAAIC,SAAQ,SAASC,EAASC,GAC3CJ,EAAqBvB,EAAgBX,GAAW,CAACqC,EAASC,MAE3DL,EAASrB,KAAKsB,EAAmB,GAAKC,GAGtC,IACII,EADAC,EAASC,SAASC,cAAc,UAGpCF,EAAOG,QAAU,QACjBH,EAAOI,QAAU,IACbnB,EAAoBoB,IACvBL,EAAOM,aAAa,QAASrB,EAAoBoB,IAElDL,EAAOO,IA1DV,SAAwB/C,GACvB,OAAOyB,EAAoBuB,EAAI,IAAM,CAAC,EAAI,WAAW,EAAI,WAAW,EAAI,2CAA2C,EAAI,WAAW,EAAI,8DAA8D,EAAI,yFAAyF,EAAI,6FAA6F,EAAI,gCAAgChD,IAAUA,GAAW,IAAM,CAAC,EAAI,uBAAuB,EAAI,uBAAuB,EAAI,uBAAuB,EAAI,uBAAuB,EAAI,uBAAuB,EAAI,uBAAuB,EAAI,uBAAuB,EAAI,wBAAwBA,GAAW,MAyDvpBiD,CAAejD,GAG5B,IAAIkD,EAAQ,IAAIC,MAChBZ,EAAmB,SAAUa,GAE5BZ,EAAOa,QAAUb,EAAOc,OAAS,KACjCC,aAAaX,GACb,IAAIY,EAAQ7C,EAAgBX,GAC5B,GAAa,IAAVwD,EAAa,CACf,GAAGA,EAAO,CACT,IAAIC,EAAYL,IAAyB,SAAfA,EAAMM,KAAkB,UAAYN,EAAMM,MAChEC,EAAUP,GAASA,EAAMQ,QAAUR,EAAMQ,OAAOb,IACpDG,EAAMW,QAAU,iBAAmB7D,EAAU,cAAgByD,EAAY,KAAOE,EAAU,IAC1FT,EAAMY,KAAO,iBACbZ,EAAMQ,KAAOD,EACbP,EAAMa,QAAUJ,EAChBH,EAAM,GAAGN,GAEVvC,EAAgBX,QAAWgE,IAG7B,IAAIpB,EAAUqB,YAAW,WACxB1B,EAAiB,CAAEmB,KAAM,UAAWE,OAAQpB,MAC1C,MACHA,EAAOa,QAAUb,EAAOc,OAASf,EACjCE,SAASyB,KAAKC,YAAY3B,GAG5B,OAAOJ,QAAQgC,IAAInC,IAIpBR,EAAoB4C,EAAIxD,EAGxBY,EAAoB6C,EAAI3C,EAGxBF,EAAoB8C,EAAI,SAAS1C,EAASiC,EAAMU,GAC3C/C,EAAoBgD,EAAE5C,EAASiC,IAClCvD,OAAOmE,eAAe7C,EAASiC,EAAM,CAAEa,YAAY,EAAMC,IAAKJ,KAKhE/C,EAAoBoD,EAAI,SAAShD,GACX,oBAAXiD,QAA0BA,OAAOC,aAC1CxE,OAAOmE,eAAe7C,EAASiD,OAAOC,YAAa,CAAEC,MAAO,WAE7DzE,OAAOmE,eAAe7C,EAAS,aAAc,CAAEmD,OAAO,KAQvDvD,EAAoBwD,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQvD,EAAoBuD,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,iBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAK7E,OAAO8E,OAAO,MAGvB,GAFA5D,EAAoBoD,EAAEO,GACtB7E,OAAOmE,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOvD,EAAoB8C,EAAEa,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIR3D,EAAoB+D,EAAI,SAAS1D,GAChC,IAAI0C,EAAS1C,GAAUA,EAAOqD,WAC7B,WAAwB,OAAOrD,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAL,EAAoB8C,EAAEC,EAAQ,IAAKA,GAC5BA,GAIR/C,EAAoBgD,EAAI,SAASgB,EAAQC,GAAY,OAAOnF,OAAOC,UAAUC,eAAeC,KAAK+E,EAAQC,IAGzGjE,EAAoBuB,EAAI,IAGxBvB,EAAoBkE,GAAK,SAASC,GAA2B,MAApBC,QAAQ3C,MAAM0C,GAAYA,GAEnE,IAAIE,EAAaC,OAAqB,aAAIA,OAAqB,cAAK,GAChEC,EAAmBF,EAAWlF,KAAK2E,KAAKO,GAC5CA,EAAWlF,KAAOf,EAClBiG,EAAaA,EAAWG,QACxB,IAAI,IAAI7F,EAAI,EAAGA,EAAI0F,EAAWxF,OAAQF,IAAKP,EAAqBiG,EAAW1F,IAC3E,IAAIU,EAAsBkF,EAI1B9E,I","file":"webpack-runtime-20f9c665c2949ed076fe.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t3: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"\" + ({\"0\":\"545f34e4\",\"1\":\"5e2a4920\",\"2\":\"a7629950cb7a18c7593baf47d0acfe798f1cddc4\",\"4\":\"252f366e\",\"6\":\"component---cache-caches-gatsby-plugin-offline-app-shell-js\",\"7\":\"component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-docs-query-js\",\"8\":\"component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js\",\"9\":\"component---src-pages-404-js\"}[chunkId]||chunkId) + \"-\" + {\"0\":\"7dfe072c8eed183902e6\",\"1\":\"cba84c59a4ec3c5b642e\",\"2\":\"4c1232454ad5571a0b75\",\"4\":\"c8db8218630b044bf329\",\"6\":\"5a1ee105f05b3144b807\",\"7\":\"45096b7ad4a0af4f2241\",\"8\":\"bac143fcc98b6926a57f\",\"9\":\"04beac219105c3e149b3\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// run deferred modules from other chunks\n \tcheckDeferredModules();\n"],"sourceRoot":""}
\ No newline at end of file
diff --git a/webpack.stats.json b/webpack.stats.json
index 888c3dc..1129d23 100644
--- a/webpack.stats.json
+++ b/webpack.stats.json
@@ -1 +1 @@
-{"errors":[],"warnings":[],"namedChunkGroups":{"polyfill":{"chunks":[3,12],"assets":["webpack-runtime-e7d4f0c418939174f0da.js","webpack-runtime-e7d4f0c418939174f0da.js.map","polyfill-46800a246443c64ac6e0.js","polyfill-46800a246443c64ac6e0.js.map"],"children":{},"childAssets":{}},"app":{"chunks":[3,11,10,5],"assets":["webpack-runtime-e7d4f0c418939174f0da.js","webpack-runtime-e7d4f0c418939174f0da.js.map","framework-85aff51d15c28c7fbe5f.js","framework-85aff51d15c28c7fbe5f.js.map","f0e45107-ff2c7ac7fae000cceb4b.js","f0e45107-ff2c7ac7fae000cceb4b.js.map","app-dc092efbd8d9d25365f0.js","app-dc092efbd8d9d25365f0.js.map"],"children":{},"childAssets":{}},"component---cache-caches-gatsby-plugin-offline-app-shell-js":{"chunks":[6],"assets":["component---cache-caches-gatsby-plugin-offline-app-shell-js-5a1ee105f05b3144b807.js","component---cache-caches-gatsby-plugin-offline-app-shell-js-5a1ee105f05b3144b807.js.map"],"children":{},"childAssets":{}},"component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-docs-query-js":{"chunks":[0,1,4,2,7],"assets":["545f34e4-7dfe072c8eed183902e6.js","545f34e4-7dfe072c8eed183902e6.js.map","5e2a4920-cba84c59a4ec3c5b642e.js","5e2a4920-cba84c59a4ec3c5b642e.js.map","252f366e-c8db8218630b044bf329.js","252f366e-c8db8218630b044bf329.js.map","a7629950cb7a18c7593baf47d0acfe798f1cddc4-4c1232454ad5571a0b75.js","a7629950cb7a18c7593baf47d0acfe798f1cddc4-4c1232454ad5571a0b75.js.map","component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-docs-query-js-45096b7ad4a0af4f2241.js","component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-docs-query-js-45096b7ad4a0af4f2241.js.map"],"children":{},"childAssets":{}},"component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js":{"chunks":[0,1,2,8],"assets":["545f34e4-7dfe072c8eed183902e6.js","545f34e4-7dfe072c8eed183902e6.js.map","5e2a4920-cba84c59a4ec3c5b642e.js","5e2a4920-cba84c59a4ec3c5b642e.js.map","a7629950cb7a18c7593baf47d0acfe798f1cddc4-4c1232454ad5571a0b75.js","a7629950cb7a18c7593baf47d0acfe798f1cddc4-4c1232454ad5571a0b75.js.map","component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js-c50cb61fe2c65deeaa10.js","component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js-c50cb61fe2c65deeaa10.js.map"],"children":{},"childAssets":{}},"component---src-pages-404-js":{"chunks":[0,1,2,9],"assets":["545f34e4-7dfe072c8eed183902e6.js","545f34e4-7dfe072c8eed183902e6.js.map","5e2a4920-cba84c59a4ec3c5b642e.js","5e2a4920-cba84c59a4ec3c5b642e.js.map","a7629950cb7a18c7593baf47d0acfe798f1cddc4-4c1232454ad5571a0b75.js","a7629950cb7a18c7593baf47d0acfe798f1cddc4-4c1232454ad5571a0b75.js.map","component---src-pages-404-js-04beac219105c3e149b3.js","component---src-pages-404-js-04beac219105c3e149b3.js.map"],"children":{},"childAssets":{}}},"assetsByChunkName":{"polyfill":["webpack-runtime-e7d4f0c418939174f0da.js","polyfill-46800a246443c64ac6e0.js"],"app":["webpack-runtime-e7d4f0c418939174f0da.js","framework-85aff51d15c28c7fbe5f.js","f0e45107-ff2c7ac7fae000cceb4b.js","app-dc092efbd8d9d25365f0.js"],"component---cache-caches-gatsby-plugin-offline-app-shell-js":["component---cache-caches-gatsby-plugin-offline-app-shell-js-5a1ee105f05b3144b807.js"],"component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-docs-query-js":["545f34e4-7dfe072c8eed183902e6.js","5e2a4920-cba84c59a4ec3c5b642e.js","252f366e-c8db8218630b044bf329.js","a7629950cb7a18c7593baf47d0acfe798f1cddc4-4c1232454ad5571a0b75.js","component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-docs-query-js-45096b7ad4a0af4f2241.js"],"component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js":["545f34e4-7dfe072c8eed183902e6.js","5e2a4920-cba84c59a4ec3c5b642e.js","a7629950cb7a18c7593baf47d0acfe798f1cddc4-4c1232454ad5571a0b75.js","component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js-c50cb61fe2c65deeaa10.js"],"component---src-pages-404-js":["545f34e4-7dfe072c8eed183902e6.js","5e2a4920-cba84c59a4ec3c5b642e.js","a7629950cb7a18c7593baf47d0acfe798f1cddc4-4c1232454ad5571a0b75.js","component---src-pages-404-js-04beac219105c3e149b3.js"]}}
\ No newline at end of file
+{"errors":[],"warnings":[],"namedChunkGroups":{"polyfill":{"chunks":[3,12],"assets":["webpack-runtime-20f9c665c2949ed076fe.js","webpack-runtime-20f9c665c2949ed076fe.js.map","polyfill-46800a246443c64ac6e0.js","polyfill-46800a246443c64ac6e0.js.map"],"children":{},"childAssets":{}},"app":{"chunks":[3,11,10,5],"assets":["webpack-runtime-20f9c665c2949ed076fe.js","webpack-runtime-20f9c665c2949ed076fe.js.map","framework-85aff51d15c28c7fbe5f.js","framework-85aff51d15c28c7fbe5f.js.map","f0e45107-ff2c7ac7fae000cceb4b.js","f0e45107-ff2c7ac7fae000cceb4b.js.map","app-dc092efbd8d9d25365f0.js","app-dc092efbd8d9d25365f0.js.map"],"children":{},"childAssets":{}},"component---cache-caches-gatsby-plugin-offline-app-shell-js":{"chunks":[6],"assets":["component---cache-caches-gatsby-plugin-offline-app-shell-js-5a1ee105f05b3144b807.js","component---cache-caches-gatsby-plugin-offline-app-shell-js-5a1ee105f05b3144b807.js.map"],"children":{},"childAssets":{}},"component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-docs-query-js":{"chunks":[0,1,4,2,7],"assets":["545f34e4-7dfe072c8eed183902e6.js","545f34e4-7dfe072c8eed183902e6.js.map","5e2a4920-cba84c59a4ec3c5b642e.js","5e2a4920-cba84c59a4ec3c5b642e.js.map","252f366e-c8db8218630b044bf329.js","252f366e-c8db8218630b044bf329.js.map","a7629950cb7a18c7593baf47d0acfe798f1cddc4-4c1232454ad5571a0b75.js","a7629950cb7a18c7593baf47d0acfe798f1cddc4-4c1232454ad5571a0b75.js.map","component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-docs-query-js-45096b7ad4a0af4f2241.js","component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-docs-query-js-45096b7ad4a0af4f2241.js.map"],"children":{},"childAssets":{}},"component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js":{"chunks":[0,1,2,8],"assets":["545f34e4-7dfe072c8eed183902e6.js","545f34e4-7dfe072c8eed183902e6.js.map","5e2a4920-cba84c59a4ec3c5b642e.js","5e2a4920-cba84c59a4ec3c5b642e.js.map","a7629950cb7a18c7593baf47d0acfe798f1cddc4-4c1232454ad5571a0b75.js","a7629950cb7a18c7593baf47d0acfe798f1cddc4-4c1232454ad5571a0b75.js.map","component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js-bac143fcc98b6926a57f.js","component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js-bac143fcc98b6926a57f.js.map"],"children":{},"childAssets":{}},"component---src-pages-404-js":{"chunks":[0,1,2,9],"assets":["545f34e4-7dfe072c8eed183902e6.js","545f34e4-7dfe072c8eed183902e6.js.map","5e2a4920-cba84c59a4ec3c5b642e.js","5e2a4920-cba84c59a4ec3c5b642e.js.map","a7629950cb7a18c7593baf47d0acfe798f1cddc4-4c1232454ad5571a0b75.js","a7629950cb7a18c7593baf47d0acfe798f1cddc4-4c1232454ad5571a0b75.js.map","component---src-pages-404-js-04beac219105c3e149b3.js","component---src-pages-404-js-04beac219105c3e149b3.js.map"],"children":{},"childAssets":{}}},"assetsByChunkName":{"polyfill":["webpack-runtime-20f9c665c2949ed076fe.js","polyfill-46800a246443c64ac6e0.js"],"app":["webpack-runtime-20f9c665c2949ed076fe.js","framework-85aff51d15c28c7fbe5f.js","f0e45107-ff2c7ac7fae000cceb4b.js","app-dc092efbd8d9d25365f0.js"],"component---cache-caches-gatsby-plugin-offline-app-shell-js":["component---cache-caches-gatsby-plugin-offline-app-shell-js-5a1ee105f05b3144b807.js"],"component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-docs-query-js":["545f34e4-7dfe072c8eed183902e6.js","5e2a4920-cba84c59a4ec3c5b642e.js","252f366e-c8db8218630b044bf329.js","a7629950cb7a18c7593baf47d0acfe798f1cddc4-4c1232454ad5571a0b75.js","component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-docs-query-js-45096b7ad4a0af4f2241.js"],"component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js":["545f34e4-7dfe072c8eed183902e6.js","5e2a4920-cba84c59a4ec3c5b642e.js","a7629950cb7a18c7593baf47d0acfe798f1cddc4-4c1232454ad5571a0b75.js","component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-homepage-query-js-bac143fcc98b6926a57f.js"],"component---src-pages-404-js":["545f34e4-7dfe072c8eed183902e6.js","5e2a4920-cba84c59a4ec3c5b642e.js","a7629950cb7a18c7593baf47d0acfe798f1cddc4-4c1232454ad5571a0b75.js","component---src-pages-404-js-04beac219105c3e149b3.js"]}}
\ No newline at end of file