<script data-pm-proxy="intercept"></script><?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Data Engineering Central]]></title><description><![CDATA[Long Live the Data Engineer. No holds barred.]]></description><link>https://dataengineeringcentral.substack.com</link><image><url>https://substackcdn.com/image/fetch/$s_!pIVQ!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F880c179a-d4f4-4f41-a70c-48e557c48f38_256x256.png</url><title>Data Engineering Central</title><link>https://dataengineeringcentral.substack.com</link></image><generator>Substack</generator><lastBuildDate>Wed, 02 Sep 2026 15:49:19 GMT</lastBuildDate><atom:link href="/__u/dataengineeringcentral.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[dataengineeringdude]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[dataengineeringcentral@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[dataengineeringcentral@substack.com]]></itunes:email><itunes:name><![CDATA[Daniel Beach]]></itunes:name></itunes:owner><itunes:author><![CDATA[Daniel Beach]]></itunes:author><googleplay:owner><![CDATA[dataengineeringcentral@substack.com]]></googleplay:owner><googleplay:email><![CDATA[dataengineeringcentral@substack.com]]></googleplay:email><googleplay:author><![CDATA[Daniel Beach]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Spark Isn't Going Anywhere. So They Rebuilt It in Rust. — Shehab Amin, CEO of LakeSail]]></title><description><![CDATA[Data Engineering Central Podcast.]]></description><link>https://dataengineeringcentral.substack.com/p/spark-isnt-going-anywhere-so-they</link><guid isPermaLink="false">https://dataengineeringcentral.substack.com/p/spark-isnt-going-anywhere-so-they</guid><dc:creator><![CDATA[Daniel Beach]]></dc:creator><pubDate>Wed, 02 Sep 2026 12:22:23 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/212889432/c87ebe4bc6af7cffaf61db61971fbe6b.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>In this episode, I sit down with <strong><a href="https://www.linkedin.com/in/shehabamin/">Shehab Amin</a>, co-founder and CEO of <a href="https://lakesail.com/">LakeSail</a></strong>, to talk about what happens when you decide to rebuild one of data engineering&#8217;s most important technologies, Apache Spark, in Rust &#8230; sorta.</p><p>We dig into Shehab&#8217;s journey from writing C++ as a kid to studying computer science at Berkeley, becoming a founder, and eventually building Sail. We talk about why Spark has remained so sticky, what Rust, Apache Arrow, and DataFusion are changing about data infrastructure, and why rebuilding Spark compatibility turned out to be much harder&#8212;and more interesting&#8212;than expected.</p><div class="callout-block" data-callout="true"><p>We also get into the increasingly complicated modern data stack: Delta Lake vs. Iceberg, catalogs, streaming vs. batch, agentic coding, and what happens when AI agents start interacting directly with data and compute.</p></div><p>Most importantly, we explore LakeSail&#8217;s bigger idea: <strong>what if the data pipelines companies already have could become the foundation for their AI pipelines?</strong></p><p>A wide-ranging conversation about Spark, Rust, AI, and where data engineering goes from here.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/spark-isnt-going-anywhere-so-they?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Data Engineering Central! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/spark-isnt-going-anywhere-so-they?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/p/spark-isnt-going-anywhere-so-they?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share"><span>Share</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[Omnigent. Too afraid to ask what a meta-harness for Agents is?]]></title><description><![CDATA[I got you boo]]></description><link>https://dataengineeringcentral.substack.com/p/omnigent-too-afraid-to-ask-what-a</link><guid isPermaLink="false">https://dataengineeringcentral.substack.com/p/omnigent-too-afraid-to-ask-what-a</guid><dc:creator><![CDATA[Daniel Beach]]></dc:creator><pubDate>Mon, 31 Aug 2026 12:04:20 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!yD_N!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf36f430-c6e8-4fe5-b6da-812c7cef8424_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!yD_N!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf36f430-c6e8-4fe5-b6da-812c7cef8424_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!yD_N!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf36f430-c6e8-4fe5-b6da-812c7cef8424_1672x941.png 424w, /__u/substackcdn.com/image/fetch/$s_!yD_N!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf36f430-c6e8-4fe5-b6da-812c7cef8424_1672x941.png 848w, /__u/substackcdn.com/image/fetch/$s_!yD_N!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf36f430-c6e8-4fe5-b6da-812c7cef8424_1672x941.png 1272w, /__u/substackcdn.com/image/fetch/$s_!yD_N!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf36f430-c6e8-4fe5-b6da-812c7cef8424_1672x941.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!yD_N!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf36f430-c6e8-4fe5-b6da-812c7cef8424_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/af36f430-c6e8-4fe5-b6da-812c7cef8424_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2129659,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/211780697?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf36f430-c6e8-4fe5-b6da-812c7cef8424_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!yD_N!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf36f430-c6e8-4fe5-b6da-812c7cef8424_1672x941.png 424w, /__u/substackcdn.com/image/fetch/$s_!yD_N!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf36f430-c6e8-4fe5-b6da-812c7cef8424_1672x941.png 848w, /__u/substackcdn.com/image/fetch/$s_!yD_N!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf36f430-c6e8-4fe5-b6da-812c7cef8424_1672x941.png 1272w, /__u/substackcdn.com/image/fetch/$s_!yD_N!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf36f430-c6e8-4fe5-b6da-812c7cef8424_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Open wide. Time to take your medicine; your AI medicine, that is. Remember that pink goop your mother used to shovel down your throat; you millennials know what I&#8217;m talking about, who could forget that taste of rubber. Blah. Hopefully this experience will be a little better for you, and me.</p><p>I&#8217;m trying not to be a glutton for punishment; the pace at which new tools, features, products, models, agents, sparkle-glitter-sunshine SaaS thingy-ma-bobs are lobbed over the fence at us is quite overwhelming. I breathe the same air as you, surf the same LinkedIn and Substack feeds as you, get the same FOMO as you when I see someone I respect using a new thingy-ma-bob that I&#8217;m not. What am I missing? Can I keep up? <a href="/__u/dataengineeringcentral.substack.com/p/lakesail-replacing-spark-with-rust">I&#8217;m giving it my best shot</a>, week in and week out.</p><blockquote><p>Well, now that I&#8217;ve moaned, lamented, and hopefully made that striking connection with you over the invisible tunnel of bits and bytes that separates us, again, I must put my poor calloused hands to the plow and throw myself into the deep end. But not just any deep end, mind you, the <mark data-color="#ff00ff" style="background-color: rgb(255, 0, 255); color: rgb(255, 255, 255);">Agentic Meta Harness</mark> deep end. Yikes. I feel like I&#8217;m in <a href="https://youtu.be/cw_VaICB2_Q?si=AcfX4scpV-_FlSFR">Blade Runner 2049</a>; I&#8217;m not sure if I&#8217;m even human anymore.</p></blockquote><p>So. Meta-harness for agents, namely <a href="https://omnigent.ai/">Omnigent</a>.</p><div class="callout-block" data-callout="true"><p><em><strong><span>Thanks to </span><a href="http://www.delta.io/">Delta</a><span> for sponsoring this newsletter! I use Delta Lake daily, and I believe it represents the future of Data Engineering. Content like this would not be possible without their support. Check out </span><a href="http://www.delta.io/">their website</a><span> below.</span></strong></em></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!HSdP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb49023aa-1727-4958-9c50-52b4c2f1b7a3_600x123.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!HSdP!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb49023aa-1727-4958-9c50-52b4c2f1b7a3_600x123.webp 424w, /__u/substackcdn.com/image/fetch/$s_!HSdP!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb49023aa-1727-4958-9c50-52b4c2f1b7a3_600x123.webp 848w, /__u/substackcdn.com/image/fetch/$s_!HSdP!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb49023aa-1727-4958-9c50-52b4c2f1b7a3_600x123.webp 1272w, /__u/substackcdn.com/image/fetch/$s_!HSdP!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb49023aa-1727-4958-9c50-52b4c2f1b7a3_600x123.webp 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!HSdP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb49023aa-1727-4958-9c50-52b4c2f1b7a3_600x123.webp" width="600" height="123" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b49023aa-1727-4958-9c50-52b4c2f1b7a3_600x123.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:123,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4188,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/211780697?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb49023aa-1727-4958-9c50-52b4c2f1b7a3_600x123.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!HSdP!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb49023aa-1727-4958-9c50-52b4c2f1b7a3_600x123.webp 424w, /__u/substackcdn.com/image/fetch/$s_!HSdP!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb49023aa-1727-4958-9c50-52b4c2f1b7a3_600x123.webp 848w, /__u/substackcdn.com/image/fetch/$s_!HSdP!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb49023aa-1727-4958-9c50-52b4c2f1b7a3_600x123.webp 1272w, /__u/substackcdn.com/image/fetch/$s_!HSdP!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb49023aa-1727-4958-9c50-52b4c2f1b7a3_600x123.webp 1456w" sizes="100vw"></picture><div></div></div></a></figure></div></div><div><hr></div><h1>We need to talk about Coding Agents.</h1><p>So &#8230; what you on? What do you use? What&#8217;s your poison? Have you tried this? Yeah, I&#8217;m kinda burnt out on it all too. I don&#8217;t want to have a <a href="https://steve-yegge.medium.com/welcome-to-gas-town-4f25ee16dd04">Gas Town</a>, I don&#8217;t want to be a <a href="https://www.reddit.com/r/Anthropic/comments/1uacade/bro_is_loop_engineering_where_you_trust_agents_to/">loop bro</a>. At some point, you just have to pick, like, your IDE of old, and leave the rest to argue their way into oblivion. Me? I like my good ol&#8217; trusty <a href="https://www.vim.org/">vim</a>, or if I&#8217;m feeling spicy, <a href="https://neovim.io/">neovim</a>. Now we&#8217;ve moved on to coding agents.</p><p>Codex, Claude Code, Cursor, the list goes on forever. Not only that, we have to keep up with /skills, MD files, plugins, MCP Servers, and all the rest. It&#8217;s a mess, a literal spaghetti of tools, instructions, and skills, all plugged into various and numerous tools. We want different things at different times; we want these repos to be treated one way with a certain set up rules, this other stuff over here we want it done a certain way, maybe we're doing some high-level project planning where we have a flow, could be this stuff over in the corner needs heavy control for running bash commands.</p><p><mark data-color="#ffe599" style="background-color: rgb(255, 229, 153); color: rgb(0, 0, 0);">Like I said, a mess.</mark></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!5Di_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0b3c433-148a-4761-a452-51cc061905ae_612x505.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!5Di_!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0b3c433-148a-4761-a452-51cc061905ae_612x505.png 424w, /__u/substackcdn.com/image/fetch/$s_!5Di_!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0b3c433-148a-4761-a452-51cc061905ae_612x505.png 848w, /__u/substackcdn.com/image/fetch/$s_!5Di_!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0b3c433-148a-4761-a452-51cc061905ae_612x505.png 1272w, /__u/substackcdn.com/image/fetch/$s_!5Di_!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0b3c433-148a-4761-a452-51cc061905ae_612x505.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!5Di_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0b3c433-148a-4761-a452-51cc061905ae_612x505.png" width="612" height="505" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c0b3c433-148a-4761-a452-51cc061905ae_612x505.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:505,&quot;width&quot;:612,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:56126,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/211780697?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0b3c433-148a-4761-a452-51cc061905ae_612x505.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!5Di_!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0b3c433-148a-4761-a452-51cc061905ae_612x505.png 424w, /__u/substackcdn.com/image/fetch/$s_!5Di_!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0b3c433-148a-4761-a452-51cc061905ae_612x505.png 848w, /__u/substackcdn.com/image/fetch/$s_!5Di_!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0b3c433-148a-4761-a452-51cc061905ae_612x505.png 1272w, /__u/substackcdn.com/image/fetch/$s_!5Di_!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0b3c433-148a-4761-a452-51cc061905ae_612x505.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>If we are honest with each other, we are standing on shifting ground; tools are coming and going; we are unsettled and find useful a various assembly of different plugins, skills, MD files, whatever. We have our own little &#8220;<em><mark data-color="#fff2cc" style="background-color: rgb(255, 242, 204); color: rgb(0, 0, 0);">agentic workflows</mark></em>,&#8221; if I may call them that. I prompt this model a certain way; that one differently; I treat one codebase a specific way, and use a different one another based on past technical debt or just its nature.</p><blockquote><p>This is what <a href="https://omnigent.ai/">Omnigent</a> solves.</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://omnigent.ai/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!i-1Q!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba06f734-2ebe-437e-bc19-97327aef6d3d_604x360.png 424w, /__u/substackcdn.com/image/fetch/$s_!i-1Q!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba06f734-2ebe-437e-bc19-97327aef6d3d_604x360.png 848w, /__u/substackcdn.com/image/fetch/$s_!i-1Q!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba06f734-2ebe-437e-bc19-97327aef6d3d_604x360.png 1272w, /__u/substackcdn.com/image/fetch/$s_!i-1Q!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba06f734-2ebe-437e-bc19-97327aef6d3d_604x360.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!i-1Q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba06f734-2ebe-437e-bc19-97327aef6d3d_604x360.png" width="604" height="360" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ba06f734-2ebe-437e-bc19-97327aef6d3d_604x360.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:360,&quot;width&quot;:604,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:51143,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://omnigent.ai/&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/211780697?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba06f734-2ebe-437e-bc19-97327aef6d3d_604x360.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!i-1Q!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba06f734-2ebe-437e-bc19-97327aef6d3d_604x360.png 424w, /__u/substackcdn.com/image/fetch/$s_!i-1Q!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba06f734-2ebe-437e-bc19-97327aef6d3d_604x360.png 848w, /__u/substackcdn.com/image/fetch/$s_!i-1Q!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba06f734-2ebe-437e-bc19-97327aef6d3d_604x360.png 1272w, /__u/substackcdn.com/image/fetch/$s_!i-1Q!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba06f734-2ebe-437e-bc19-97327aef6d3d_604x360.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>It&#8217;s as easy as &#8230;</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;bash&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-bash">curl -fsSL https://omnigent.ai/install.sh | sh</code></pre></div><p>Wala, with this simple command, you have installed your first meta-harness, a piece of software that can sit above your various LLM models, workflows, MD files, prompts, &#8230; whatever it is you are using. It&#8217;s like the <a href="https://lotr.fandom.com/wiki/One_Ring">One Ring of Power</a>, <mark data-color="#f4cccc" style="background-color: rgb(244, 204, 204); color: rgb(0, 0, 0);">in the darkenss of your terminal </mark><a href="https://omnigent.ai/"><mark data-color="#f4cccc" style="background-color: rgb(244, 204, 204); color: rgb(0, 0, 0);">Omnigent</mark></a><mark data-color="#f4cccc" style="background-color: rgb(244, 204, 204); color: rgb(0, 0, 0);"> will bind them.<br></mark></p><p>What&#8217;s the TDLR of a meta-harness like Omnigent?</p><div class="callout-block" data-callout="true"><ul><li><p>a single common layer/interface</p></li><li><p>move easily between models/tools/interfaces</p></li><li><p>write policies and sandboxes to have fine-grained control</p></li><li><p>Web UI provided</p></li><li><p>Access sessions from places like your phone</p></li><li><p>built-in multi-AI agents</p></li></ul></div><p>Of course, I&#8217;m only scratching the surface of what a meta-harness like Omnigent can do, but you or I want to get lost in the weeds and get distracted. Rather, let&#8217;s just install and play around with the major Omnigent features to get a sense of what we are dealing with, and maybe it will give you ideas on how such a meta-harness can fit into your workflow and development lifecycle. The truth of the matter is that, yes, many tools can do complicated and space-age things within the agentic coding space, <mark data-color="#93c47d" style="background-color: rgb(147, 196, 125); color: rgb(0, 0, 0);">but it&#8217;s the simple things that provide end users real benefits and features that win the day.</mark></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!47k3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc11f67d-34ba-4f66-aa95-832f20fc1cec_841x494.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!47k3!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc11f67d-34ba-4f66-aa95-832f20fc1cec_841x494.png 424w, /__u/substackcdn.com/image/fetch/$s_!47k3!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc11f67d-34ba-4f66-aa95-832f20fc1cec_841x494.png 848w, /__u/substackcdn.com/image/fetch/$s_!47k3!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc11f67d-34ba-4f66-aa95-832f20fc1cec_841x494.png 1272w, /__u/substackcdn.com/image/fetch/$s_!47k3!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc11f67d-34ba-4f66-aa95-832f20fc1cec_841x494.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!47k3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc11f67d-34ba-4f66-aa95-832f20fc1cec_841x494.png" width="841" height="494" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dc11f67d-34ba-4f66-aa95-832f20fc1cec_841x494.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:494,&quot;width&quot;:841,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:80330,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/211780697?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc11f67d-34ba-4f66-aa95-832f20fc1cec_841x494.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!47k3!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc11f67d-34ba-4f66-aa95-832f20fc1cec_841x494.png 424w, /__u/substackcdn.com/image/fetch/$s_!47k3!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc11f67d-34ba-4f66-aa95-832f20fc1cec_841x494.png 848w, /__u/substackcdn.com/image/fetch/$s_!47k3!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc11f67d-34ba-4f66-aa95-832f20fc1cec_841x494.png 1272w, /__u/substackcdn.com/image/fetch/$s_!47k3!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc11f67d-34ba-4f66-aa95-832f20fc1cec_841x494.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/omnigent-too-afraid-to-ask-what-a?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Data Engineering Central! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/omnigent-too-afraid-to-ask-what-a?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/p/omnigent-too-afraid-to-ask-what-a?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share"><span>Share</span></a></p></div><div><hr></div><h2>Ok, so what? Show me the money.</h2><p>Yeah, yeah, yeah, so enough yip-yapping; let&#8217;s get into Omnigent, get it set up, piddle and poke around, and see what we can find under the rug. Personally, I am actually excited to get this meta-harness running and see how it can ease my agentic development process. Some of the features that are top of mind for me and seem very useful are &#8230;</p><ul><li><p><em>single interface for multiple models and harnesses</em></p></li><li><p><em>rules and policies I can apply to specific use cases</em></p></li><li><p><em>multi-agent workflow for high-level systems planning, research, and design.</em></p></li></ul><p>That&#8217;s probably just because of the nature of the work I end up doing. Big, high-level project planning that includes extensive systems architecture and design. It&#8217;s really important to me that the planning and research phase goes well before a particular direction is chosen. Also, on a more practical note, I have particular codebases that I deal with differently, in very specific ways. Being able to set up policies to deal with this would be very helpful.</p><blockquote><p>Blah. Ok, so you say the install.</p></blockquote><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;bash&quot;,&quot;nodeId&quot;:&quot;c4effac3-b801-4ba3-b5ca-297d067258a0&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-bash">&gt;&gt; curl -fsSL https://omnigent.ai/install.sh | sh</code></pre></div><p>So what happens next? Well, we need to set up our existing tooling(s) and harnesses, like Claude or whatever, to Omnigent; this should be the first step.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">&gt;&gt; omnigent setup</code></pre></div><p>After running this command you should be prompted to setup and connect any models and harnesses you already are using. In my case I connected both Claude Code and CoPilot up to Omnigent. The setup usually can pickup automtically and detect any tools you are already using. As you can see below, it found my Claude Code setup, sensed my CoPilot setup but I also had to get a token for CoPilot for Omnigent to use. Either way, not rocket science, just connect your existing tooling. I also use OpenCode but did not connect it.</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;089950f1-cbda-49a1-ad61-8f28be69650b&quot;,&quot;duration&quot;:null}"></div><p>At this point you couse run Omnigent ontop of a single harness, and get all the features we talked about previously. The UI, policies, session sharing, mobile access, etc. For example, I can run &#8230; (<em>note: must have tmux installed</em>)</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">omnigent claude</code></pre></div><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;998ed335-45ae-4510-8a24-3f01ef2bcb46&quot;,&quot;duration&quot;:null}"></div><p>Of course, as you can see in the bottom of that screen, we get a local host WebUI on port 6767 that has the session we just started in the terminal.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!b8uo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb4d0cad-5049-441f-8498-e3e32a9e563d_2576x1192.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!b8uo!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb4d0cad-5049-441f-8498-e3e32a9e563d_2576x1192.png 424w, /__u/substackcdn.com/image/fetch/$s_!b8uo!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb4d0cad-5049-441f-8498-e3e32a9e563d_2576x1192.png 848w, /__u/substackcdn.com/image/fetch/$s_!b8uo!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb4d0cad-5049-441f-8498-e3e32a9e563d_2576x1192.png 1272w, /__u/substackcdn.com/image/fetch/$s_!b8uo!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb4d0cad-5049-441f-8498-e3e32a9e563d_2576x1192.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!b8uo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb4d0cad-5049-441f-8498-e3e32a9e563d_2576x1192.png" width="1456" height="674" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/eb4d0cad-5049-441f-8498-e3e32a9e563d_2576x1192.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:674,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:402427,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/211780697?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb4d0cad-5049-441f-8498-e3e32a9e563d_2576x1192.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!b8uo!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb4d0cad-5049-441f-8498-e3e32a9e563d_2576x1192.png 424w, /__u/substackcdn.com/image/fetch/$s_!b8uo!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb4d0cad-5049-441f-8498-e3e32a9e563d_2576x1192.png 848w, /__u/substackcdn.com/image/fetch/$s_!b8uo!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb4d0cad-5049-441f-8498-e3e32a9e563d_2576x1192.png 1272w, /__u/substackcdn.com/image/fetch/$s_!b8uo!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb4d0cad-5049-441f-8498-e3e32a9e563d_2576x1192.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>So what, we have meta-harness sitting ontop of our typical Agent Harnesse(s), now what? Well, of course this UI gives us the ability to do things with our conversations as if we were say using Cursor or any other UI. You can watch what&#8217;s happening in a session, make a comment on some of the work that&#8217;s happening, upload files, edit files directly yourself. <mark data-color="#93c47d" style="background-color: rgb(147, 196, 125); color: rgb(0, 0, 0);">It&#8217;s kinda like having a IDE for your Agents.</mark> We could go on forever exploring the features Omnigent has. One of the more interesting and powerful features is <mark data-color="#f9cb9c" style="background-color: rgb(249, 203, 156); color: rgb(0, 0, 0);">Policies</mark>.</p><div class="callout-block" data-callout="true"><div class="pullquote"><p>&#8220;Omnigent ships with policies for common guardrails, organized into two categories: <strong>Safety</strong> and <strong>Cost Control</strong>. Your Omnigent can apply any of these by name when you <a href="https://omnigent.ai/docs/policies/overview#adding-a-policy">ask it to add a policy</a>, or you can reference them in YAML by their full path in the <code>handler</code> field.&#8221; <br>- <a href="https://omnigent.ai/docs/policies/builtin">omni-docs</a></p></div></div><p>We can add our own policies, or enable the many pre-built policies that ships with Omnigent that are centered around Cost and Safety. For example, let&#8217;s add a custom policy through just the Web UI Chat interface that we want our Agents to ask for permission before making git commits and pushing changes up to remote repos. Also, we will have it ask for permission before running bash commands.</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;d40b24eb-93e5-47d7-b092-8019366eaf0e&quot;,&quot;duration&quot;:null}"></div><p>Apparently these are only session scoped policies, and I need to be more specific. Either way, after asking it to commit and push the git changes it made to the repo (updated the README). It did ask for permissions to run the <code>bash</code> and to run the <code>git</code> commands.</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;1c064606-2bcd-477b-bbd1-168131446227&quot;,&quot;duration&quot;:null}"></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!_NRK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa588b901-17d2-4e54-a8a0-16f9ba530f9c_597x421.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!_NRK!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa588b901-17d2-4e54-a8a0-16f9ba530f9c_597x421.png 424w, /__u/substackcdn.com/image/fetch/$s_!_NRK!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa588b901-17d2-4e54-a8a0-16f9ba530f9c_597x421.png 848w, /__u/substackcdn.com/image/fetch/$s_!_NRK!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa588b901-17d2-4e54-a8a0-16f9ba530f9c_597x421.png 1272w, /__u/substackcdn.com/image/fetch/$s_!_NRK!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa588b901-17d2-4e54-a8a0-16f9ba530f9c_597x421.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!_NRK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa588b901-17d2-4e54-a8a0-16f9ba530f9c_597x421.png" width="597" height="421" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a588b901-17d2-4e54-a8a0-16f9ba530f9c_597x421.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:421,&quot;width&quot;:597,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:86325,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/211780697?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa588b901-17d2-4e54-a8a0-16f9ba530f9c_597x421.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!_NRK!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa588b901-17d2-4e54-a8a0-16f9ba530f9c_597x421.png 424w, /__u/substackcdn.com/image/fetch/$s_!_NRK!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa588b901-17d2-4e54-a8a0-16f9ba530f9c_597x421.png 848w, /__u/substackcdn.com/image/fetch/$s_!_NRK!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa588b901-17d2-4e54-a8a0-16f9ba530f9c_597x421.png 1272w, /__u/substackcdn.com/image/fetch/$s_!_NRK!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa588b901-17d2-4e54-a8a0-16f9ba530f9c_597x421.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Of course we would probably want to make policies that run over many sessions and the sky is the limit as to what kind of policies and limits we could put in place. <a href="https://omnigent.ai/docs/policies/builtin">There is a massive list here of built-in policies</a>. A very nice feature indeed when you are working across many different code bases, work on teams where budgets and token costs are a thing, where you are worried about Agents doing unintended things to filesystems and production environments. You could easily build a number of policies to watch out for errant <code>aws cli</code> commands that are dangerous, or maybe even an Agent trying to update some <code>terraform</code> file and sync it.</p><div class="callout-block" data-callout="true"><p>What I like about Omnigent is the ease with which you can add custom controls so every single thing an Agent could possibly do. Even the best of us make mistakes, this goes a long ways towards adding controls around important steps.</p></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Data Engineering Central is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h2>Polly: the omnigent multi-agent super power.</h2><p>Probably the one feature I am most excited about is <a href="https://omnigent.ai/quickstart/polly">Polly</a>. Again, this probably has alot to do with my day to day work of planning technical projects from idea to implementation. This involves lots of research, trial and error, exploring different avenues, reviewing materials, and generally this a lot of back-and-forth between some Agent and myself. Don&#8217;t worry, I still spend time just reading raw documentation for myself, there is no replacement for understanding deeply different technologies and features.</p><blockquote><p>&#8220;<em><mark data-color="#d0e0e3" style="background-color: rgb(208, 224, 227); color: rgb(0, 0, 0);">Polly is a multi-agent coding orchestrator. It breaks your task into sub-tasks and delegates each one to a different AI agent, with cross-vendor code review built in. This tutorial shows you how it looks in practice.</mark></em>&#8221; - <a href="https://omnigent.ai/quickstart/polly">omni docs</a></p></blockquote><p>I&#8217;m excited about this feature because when using some specific Agent to explore a topic, I generally do a ton of different back and forths, exploring every angle I can. Some of that work could defiently be saves when the meta-harness can do that for me. Personally, I&#8217;ve found that simply one-shot prompting is the worse approach to solving any problems, most models might do Ok, but depending on the subject they might do quite bad. <strong>I would expect this multi-agent <a href="https://omnigent.ai/quickstart/polly">Polly</a> routing to impove results a lot.</strong></p><p>It&#8217;s as easy as &#8230;</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">omnigent polly</code></pre></div><p>This is what I asked Polly.</p><div class="callout-block" data-callout="true"><p>&#187; <mark data-color="#f9cb9c" style="background-color: rgb(249, 203, 156); color: rgb(0, 0, 0);">can you use opencode with copilot and claude code to make a plan for creating a Rust based Python library (use 03) that wraps datafusion and apache arrow, we want to be able to write SQL overtop CSV files and then ship them to s3 stored Delta Lake</mark></p></div><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;b65f55ee-77c7-4123-80db-e669da039370&quot;,&quot;duration&quot;:null}"></div><p>In the WebUI for Omnigent I can click on Agents and see multiple Agents running, solving this problem. Pretty easy and for many situtations this gives me peace of mind that multi-agents will do a reasonable job out of the box planning or solving the problem I want to explore.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!KMmn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42607e7e-31a0-4fa2-abf7-b6e6796d235b_1282x772.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!KMmn!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42607e7e-31a0-4fa2-abf7-b6e6796d235b_1282x772.png 424w, /__u/substackcdn.com/image/fetch/$s_!KMmn!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42607e7e-31a0-4fa2-abf7-b6e6796d235b_1282x772.png 848w, /__u/substackcdn.com/image/fetch/$s_!KMmn!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42607e7e-31a0-4fa2-abf7-b6e6796d235b_1282x772.png 1272w, /__u/substackcdn.com/image/fetch/$s_!KMmn!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42607e7e-31a0-4fa2-abf7-b6e6796d235b_1282x772.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!KMmn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42607e7e-31a0-4fa2-abf7-b6e6796d235b_1282x772.png" width="1282" height="772" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/42607e7e-31a0-4fa2-abf7-b6e6796d235b_1282x772.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:772,&quot;width&quot;:1282,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:263166,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/211780697?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42607e7e-31a0-4fa2-abf7-b6e6796d235b_1282x772.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!KMmn!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42607e7e-31a0-4fa2-abf7-b6e6796d235b_1282x772.png 424w, /__u/substackcdn.com/image/fetch/$s_!KMmn!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42607e7e-31a0-4fa2-abf7-b6e6796d235b_1282x772.png 848w, /__u/substackcdn.com/image/fetch/$s_!KMmn!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42607e7e-31a0-4fa2-abf7-b6e6796d235b_1282x772.png 1272w, /__u/substackcdn.com/image/fetch/$s_!KMmn!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42607e7e-31a0-4fa2-abf7-b6e6796d235b_1282x772.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>It worked of course, no surpise there.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!WX7g!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c7a5a1c-49d5-4483-ac25-babc6678b3ff_592x558.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!WX7g!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c7a5a1c-49d5-4483-ac25-babc6678b3ff_592x558.png 424w, /__u/substackcdn.com/image/fetch/$s_!WX7g!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c7a5a1c-49d5-4483-ac25-babc6678b3ff_592x558.png 848w, /__u/substackcdn.com/image/fetch/$s_!WX7g!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c7a5a1c-49d5-4483-ac25-babc6678b3ff_592x558.png 1272w, /__u/substackcdn.com/image/fetch/$s_!WX7g!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c7a5a1c-49d5-4483-ac25-babc6678b3ff_592x558.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!WX7g!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c7a5a1c-49d5-4483-ac25-babc6678b3ff_592x558.png" width="592" height="558" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7c7a5a1c-49d5-4483-ac25-babc6678b3ff_592x558.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:558,&quot;width&quot;:592,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:98250,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/211780697?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c7a5a1c-49d5-4483-ac25-babc6678b3ff_592x558.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!WX7g!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c7a5a1c-49d5-4483-ac25-babc6678b3ff_592x558.png 424w, /__u/substackcdn.com/image/fetch/$s_!WX7g!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c7a5a1c-49d5-4483-ac25-babc6678b3ff_592x558.png 848w, /__u/substackcdn.com/image/fetch/$s_!WX7g!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c7a5a1c-49d5-4483-ac25-babc6678b3ff_592x558.png 1272w, /__u/substackcdn.com/image/fetch/$s_!WX7g!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c7a5a1c-49d5-4483-ac25-babc6678b3ff_592x558.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Again, I think that the multi-agents for planning and researching is a underutililzed and easy to adopt superpower for most devs. You know me, I&#8217;m a fan of learning and exploring yourself, but this sort of multi-agent Polly workflow with Omnigent can help with systems design, architecture, and generally large scale planning that is important you want to cover all bases.</p><div><hr></div><h2>The scary part.</h2><p>Well, maybe scary isn&#8217;t that right word I&#8217;m looking for, I&#8217;m not sure how I feel about this feature. What is sold as the ability to collborate from anywhere &#8230; aka your phone, well that can be good and bad. Good from a technology perspective, of course in theory we would want to be able to continue long running sets of tasks and work, collaborate with co-workers on high-stakes agentic work. Sure, I get it.</p><blockquote><p><em>But, we should be honest about the possible pitfalls of being able to run Agents from your phone. From your bed. The airport. The school line. On the couch. At your mom&#8217;s house. </em></p></blockquote><p>Handle such things with care, you don&#8217;t need to be productive 24/7, even if you want your agents to run 24/7, I have serious questions about the mental health of someone running agents from their phone at 8 pm at night. You need to touch grass, exercise, give your head and mind a break. I&#8217;ve learned from experience that burnout creeps up quickly and quietly, make good choices that are healthy for you and your body.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://omnigent.ai/quickstart/collaborate" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!qfOU!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F689d417b-fd24-4759-9b45-da20bce7895a_2188x674.png 424w, /__u/substackcdn.com/image/fetch/$s_!qfOU!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F689d417b-fd24-4759-9b45-da20bce7895a_2188x674.png 848w, /__u/substackcdn.com/image/fetch/$s_!qfOU!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F689d417b-fd24-4759-9b45-da20bce7895a_2188x674.png 1272w, /__u/substackcdn.com/image/fetch/$s_!qfOU!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F689d417b-fd24-4759-9b45-da20bce7895a_2188x674.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!qfOU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F689d417b-fd24-4759-9b45-da20bce7895a_2188x674.png" width="1456" height="449" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/689d417b-fd24-4759-9b45-da20bce7895a_2188x674.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:449,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:211828,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://omnigent.ai/quickstart/collaborate&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/211780697?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F689d417b-fd24-4759-9b45-da20bce7895a_2188x674.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!qfOU!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F689d417b-fd24-4759-9b45-da20bce7895a_2188x674.png 424w, /__u/substackcdn.com/image/fetch/$s_!qfOU!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F689d417b-fd24-4759-9b45-da20bce7895a_2188x674.png 848w, /__u/substackcdn.com/image/fetch/$s_!qfOU!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F689d417b-fd24-4759-9b45-da20bce7895a_2188x674.png 1272w, /__u/substackcdn.com/image/fetch/$s_!qfOU!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F689d417b-fd24-4759-9b45-da20bce7895a_2188x674.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Anywho, because I love you all very dearly, I will go ahead and setup this feature for myself, Omnigent recommends using <a href="https://railway.com/">railway</a>. You will need to setup a free account to do this. Just a few button clicks for the free account. Point Railway at the Omnigent GitHub repo, authorize via GitHub, and you&#8217;re off to the races while it deploys.</p><div class="image-gallery-embed" data-attrs="{&quot;gallery&quot;:{&quot;images&quot;:[{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bdb8c91f-47c9-4a53-b818-885fc71778b1_2054x1074.png&quot;},{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0998d8ca-e705-411c-b76a-1d10c8259352_2118x1530.png&quot;},{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1a607e76-31c9-4d96-9b88-94adfc28afd0_1804x1048.png&quot;}],&quot;caption&quot;:&quot;&quot;,&quot;alt&quot;:&quot;&quot;,&quot;staticGalleryImage&quot;:{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e96a95a7-e326-4bfe-bf9b-25803d76bdb3_1456x474.png&quot;}},&quot;isEditorNode&quot;:true}"></div><p>Ya know, part of me is happy that the Railway deployment of omnigent failed on the first try. Does that mean I don&#8217;t have to do it?</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!fOy9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F149557b7-5293-4f23-a33d-9d3eb4a601b3_2562x1302.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!fOy9!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F149557b7-5293-4f23-a33d-9d3eb4a601b3_2562x1302.png 424w, /__u/substackcdn.com/image/fetch/$s_!fOy9!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F149557b7-5293-4f23-a33d-9d3eb4a601b3_2562x1302.png 848w, /__u/substackcdn.com/image/fetch/$s_!fOy9!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F149557b7-5293-4f23-a33d-9d3eb4a601b3_2562x1302.png 1272w, /__u/substackcdn.com/image/fetch/$s_!fOy9!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F149557b7-5293-4f23-a33d-9d3eb4a601b3_2562x1302.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!fOy9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F149557b7-5293-4f23-a33d-9d3eb4a601b3_2562x1302.png" width="1456" height="740" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/149557b7-5293-4f23-a33d-9d3eb4a601b3_2562x1302.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:740,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:265849,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/211780697?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F149557b7-5293-4f23-a33d-9d3eb4a601b3_2562x1302.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!fOy9!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F149557b7-5293-4f23-a33d-9d3eb4a601b3_2562x1302.png 424w, /__u/substackcdn.com/image/fetch/$s_!fOy9!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F149557b7-5293-4f23-a33d-9d3eb4a601b3_2562x1302.png 848w, /__u/substackcdn.com/image/fetch/$s_!fOy9!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F149557b7-5293-4f23-a33d-9d3eb4a601b3_2562x1302.png 1272w, /__u/substackcdn.com/image/fetch/$s_!fOy9!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F149557b7-5293-4f23-a33d-9d3eb4a601b3_2562x1302.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Didn&#8217;t matter what I tried, Omnigent wouldn&#8217;t deploy; it always failed on the health checks. Which, honestly, is fine with me, I didn&#8217;t want to be suckered into coding from my phone. No good. Ok, maybe I can try a little harder, let&#8217;s look at the logs.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">RuntimeError: DATABASE_URL is required (env), or set `database_uri:` 
in the server config. Accepted forms: 'postgresql+psycopg://user:pw@host:5432/omnigent' 
(explicit psycopg3), or the 'postgres://' / 'postgresql://' URLs emitted by Railway,
 Render, etc.</code></pre></div><p><a href="https://omnigent.ai/quickstart/collaborate">Looks like there should be a DATABASE_URL as part of this deploy, the instructions never mentioned it</a>.  I tried adding the default localhost Postgres ENV Var and re-deployed; it didn&#8217;t work. That&#8217;s about as far I would mess with it; as I said, I don&#8217;t really want to run Agents from my phone.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/omnigent-too-afraid-to-ask-what-a?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/p/omnigent-too-afraid-to-ask-what-a?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share"><span>Share</span></a></p><div><hr></div><h2>Thoughts on meta-harness.</h2><p>Well, we learned a little something, maybe; I did anyways. I know we&#8217;ve barely scratched the surface of all the bells and whistles of Omnigent, but that&#8217;s ok. I learned it&#8217;s easy to use and install, easy to hook up my other coding harnesses too (Claude and CoPilot), and I do like the option of switching between the WebUI and Terminal depending on what kinda work I&#8217;m doing.</p><blockquote><p>The policies were probably my favorite part of Omnigent. When working on sensitive projects that require me to run <code>aws cli</code> commands, or mess around with <code>terraform</code>, policies are another great back-stop to keep tight control where that control is warrented. </p></blockquote><p>Second favorite, and a close one at that, is the <a href="https://omnigent.ai/docs/use/builtin-agents/polly">Polly feature of Omnigent.</a> It&#8217;s hard to state how important this feature can be for those of us who do a lot of research, planning, and systems design/architecture. I spend a lot of time ensuring I&#8217;m covering all bases, taking the right direction, and that things are in tip-top shape. Being able to have multiple agents allowing for &#8220;<mark data-color="#ff9900" style="background-color: rgb(255, 153, 0); color: rgb(0, 0, 0);">cross-vendor code review</mark>&#8221;, is next-level stuff.</p><p>The final piece of Omnigent that has become clearer to me with repeated use is the &#8230; cleanliness. </p><p>Anyways, this is one tool I&#8217;m looking forward to using on a daily basis, and getting to know it better will probably expose a lot of cool and unsung features that will improve my agentic workflows.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/omnigent-too-afraid-to-ask-what-a/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/p/omnigent-too-afraid-to-ask-what-a/comments"><span>Leave a comment</span></a></p><p>Want more? Checkout this video.</p><div id="youtube2-K99zQ3h0TK4" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;K99zQ3h0TK4&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/K99zQ3h0TK4?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div>]]></content:encoded></item><item><title><![CDATA[The Polemic Against Cheap Code.]]></title><description><![CDATA[long live The Vibes]]></description><link>https://dataengineeringcentral.substack.com/p/the-polemic-against-cheap-code</link><guid isPermaLink="false">https://dataengineeringcentral.substack.com/p/the-polemic-against-cheap-code</guid><dc:creator><![CDATA[Daniel Beach]]></dc:creator><pubDate>Mon, 24 Aug 2026 16:15:48 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!TS5d!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcecf116d-66fe-4bc9-b9ee-bb6e383ae629_1535x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!TS5d!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcecf116d-66fe-4bc9-b9ee-bb6e383ae629_1535x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!TS5d!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcecf116d-66fe-4bc9-b9ee-bb6e383ae629_1535x1024.png 424w, /__u/substackcdn.com/image/fetch/$s_!TS5d!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcecf116d-66fe-4bc9-b9ee-bb6e383ae629_1535x1024.png 848w, /__u/substackcdn.com/image/fetch/$s_!TS5d!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcecf116d-66fe-4bc9-b9ee-bb6e383ae629_1535x1024.png 1272w, /__u/substackcdn.com/image/fetch/$s_!TS5d!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcecf116d-66fe-4bc9-b9ee-bb6e383ae629_1535x1024.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!TS5d!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcecf116d-66fe-4bc9-b9ee-bb6e383ae629_1535x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cecf116d-66fe-4bc9-b9ee-bb6e383ae629_1535x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2638236,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/212475715?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcecf116d-66fe-4bc9-b9ee-bb6e383ae629_1535x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!TS5d!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcecf116d-66fe-4bc9-b9ee-bb6e383ae629_1535x1024.png 424w, /__u/substackcdn.com/image/fetch/$s_!TS5d!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcecf116d-66fe-4bc9-b9ee-bb6e383ae629_1535x1024.png 848w, /__u/substackcdn.com/image/fetch/$s_!TS5d!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcecf116d-66fe-4bc9-b9ee-bb6e383ae629_1535x1024.png 1272w, /__u/substackcdn.com/image/fetch/$s_!TS5d!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcecf116d-66fe-4bc9-b9ee-bb6e383ae629_1535x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The vibes are cheap; even if the per-token cost increases 10x or 100x, it doesn&#8217;t matter, the vibes are cheap; at least they are cheap from the viewpoint of those who hold the power. The power to hire and fire, to set technical direction, and to point a finger and send the peons running.</p>
      <p>
          <a href="/__u/dataengineeringcentral.substack.com/p/the-polemic-against-cheap-code">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Lakesail. Replacing Spark with Rust. But with Spark.]]></title><description><![CDATA[ya know ... black magic stuff]]></description><link>https://dataengineeringcentral.substack.com/p/lakesail-replacing-spark-with-rust</link><guid isPermaLink="false">https://dataengineeringcentral.substack.com/p/lakesail-replacing-spark-with-rust</guid><dc:creator><![CDATA[Daniel Beach]]></dc:creator><pubDate>Tue, 18 Aug 2026 21:11:44 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!jLkJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6e7380b-a8df-4eb0-a768-e4cc689abd16_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!jLkJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6e7380b-a8df-4eb0-a768-e4cc689abd16_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!jLkJ!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6e7380b-a8df-4eb0-a768-e4cc689abd16_1536x1024.png 424w, /__u/substackcdn.com/image/fetch/$s_!jLkJ!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6e7380b-a8df-4eb0-a768-e4cc689abd16_1536x1024.png 848w, /__u/substackcdn.com/image/fetch/$s_!jLkJ!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6e7380b-a8df-4eb0-a768-e4cc689abd16_1536x1024.png 1272w, /__u/substackcdn.com/image/fetch/$s_!jLkJ!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6e7380b-a8df-4eb0-a768-e4cc689abd16_1536x1024.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!jLkJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6e7380b-a8df-4eb0-a768-e4cc689abd16_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d6e7380b-a8df-4eb0-a768-e4cc689abd16_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2383434,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/210683727?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6e7380b-a8df-4eb0-a768-e4cc689abd16_1536x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!jLkJ!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6e7380b-a8df-4eb0-a768-e4cc689abd16_1536x1024.png 424w, /__u/substackcdn.com/image/fetch/$s_!jLkJ!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6e7380b-a8df-4eb0-a768-e4cc689abd16_1536x1024.png 848w, /__u/substackcdn.com/image/fetch/$s_!jLkJ!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6e7380b-a8df-4eb0-a768-e4cc689abd16_1536x1024.png 1272w, /__u/substackcdn.com/image/fetch/$s_!jLkJ!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6e7380b-a8df-4eb0-a768-e4cc689abd16_1536x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="pullquote"><p><mark data-color="#e06666" style="background-color: rgb(224, 102, 102); color: rgb(0, 0, 0);">Reminder to my readers: </mark><br><mark data-color="#fff2cc" style="background-color: rgb(255, 242, 204); color: rgb(0, 0, 0);">I explore new tools from the viewpoint of the average engineer who works with data. I approach each subject and tool with as little bias as possible. The point is to just introduce new tools, and more importantly, new concepts to us all that we can use in the future to better understand the data landscape around us all and how we approach solving problems.</mark></p></div><p>I&#8217;ve been watching this story play on repeat for some time now; the death of tools like Spark and Kafka has been heralded from the treetops for a decade now, yet here we are &#8230; living in a Spark and Kafka world. Someone once told someone else that it is hard to kick against the goad. Indeed it is. I don&#8217;t see this as any sort of failure or shortcoming, though; it&#8217;s just part of the circle of life, and tech. It&#8217;s natural.</p><blockquote><p>Think about the wicked sharp edges that drove legions of SQL Server developers and DBAs insane and to an early grave over the last few decades. Yet, there are still plenty of SSIS packages humming happily away in the quiet corners of the world. </p></blockquote><p>The truth of the matter is, once a tool gets its tentacles latched onto the corporate minds of CTOs, architects, and the like &#8230; it&#8217;s there to stay for better or worse, for some time to come. Spark is like that. It&#8217;s the bread and butter of the data community at large, has been for a while, and will continue to be that &#8230; even as Polars, DuckDB, Daft, and the like &#8230; bite and nip at the heels. Truth be told, I hold a special little place in my cold and stony heart when it comes to Apache Spark. I grew up in data in a time when I remember ssh&#8217;ing into various nodes, installing Spark, the correct AWS S3 JARs, adding IP addresses to configs, updating the memory allocations. Basically terrible things.</p><ul><li><p><a href="https://www.confessionsofadataguy.com/">Go search through my old blog; you're sure to find some Spark goodies in there.</a></p></li></ul><p>Anywho, back to the matter at hand. <a href="https://lakesail.com/"><mark data-color="#a4c2f4" style="background-color: rgb(164, 194, 244); color: rgb(0, 0, 0);">Lakesail</mark></a>.This one has been on my list for some time, but you know how things go: busy, life, this, that, AI. But they are making enough waves now that I owe it to myself to do what I&#8217;ve been doing for a long time, namely, kick the tires and poke with a stick &#8230; see what crawls out of the dark corners. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://lakesail.com/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!kb8a!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55d892ba-7967-4a47-956d-cc865f1cb739_2006x824.png 424w, /__u/substackcdn.com/image/fetch/$s_!kb8a!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55d892ba-7967-4a47-956d-cc865f1cb739_2006x824.png 848w, /__u/substackcdn.com/image/fetch/$s_!kb8a!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55d892ba-7967-4a47-956d-cc865f1cb739_2006x824.png 1272w, /__u/substackcdn.com/image/fetch/$s_!kb8a!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55d892ba-7967-4a47-956d-cc865f1cb739_2006x824.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!kb8a!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55d892ba-7967-4a47-956d-cc865f1cb739_2006x824.png" width="1456" height="598" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/55d892ba-7967-4a47-956d-cc865f1cb739_2006x824.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:598,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:309865,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://lakesail.com/&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/210683727?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55d892ba-7967-4a47-956d-cc865f1cb739_2006x824.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!kb8a!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55d892ba-7967-4a47-956d-cc865f1cb739_2006x824.png 424w, /__u/substackcdn.com/image/fetch/$s_!kb8a!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55d892ba-7967-4a47-956d-cc865f1cb739_2006x824.png 848w, /__u/substackcdn.com/image/fetch/$s_!kb8a!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55d892ba-7967-4a47-956d-cc865f1cb739_2006x824.png 1272w, /__u/substackcdn.com/image/fetch/$s_!kb8a!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55d892ba-7967-4a47-956d-cc865f1cb739_2006x824.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I mean, what is it? Well, the Lakesail homepage will give it to you right away, straight to the old eye, which is appreciated. People forever beating around the bush, making you figure out what the crap an Agentic Wizz-Bang-Popper is. <strong>What is Lakesail?</strong> <em>Spark, without the JVM tax. </em>You know what sounds even better to my old ringing ears? Spark rewritten in Rust. Like a fly to light me.</p><div class="pullquote"><p>&#8220;<mark data-color="#ff9900" style="background-color: rgb(255, 153, 0); color: rgb(0, 0, 0);">Most data platforms were built for the JVM era and are now retrofitting for AI. LakeSail rebuilt the runtime in Rust, kept the full Spark API, and shipped an agent layer from day one. Your code stays the same. The engine gets an upgrade.</mark>&#8221; <br><a href="https://lakesail.com/">- Lakesail</a></p></div><p>I know some of you unbelievers and luddites are sitting there rolling your eyes at the words &#8220;rewrite&#8221; and &#8220;Rust&#8221; in the same sentence &#8230; but there is a reason people are doing it, my friend; just as well give in to it and get on the ole&#8217; bandwagon. The ride is fine.</p><p>Of course, I already mentioned it, but the idea of going after Spark, because it&#8217;s &#8220;slow&#8221; and a &#8220;pain in the butt,&#8221; is nothing new. Some of the criticisms are true; some are not. It depends on the context. Most people don&#8217;t work with &#8220;big data,&#8221; aka under 10 TB of data or way less, so theoretically they don&#8217;t need Spark. They just use it because it&#8217;s there and everyone else is using it. Herd mentality.</p><p><a href="/__u/dataengineeringcentral.substack.com/p/650gb-of-data-delta-lake-on-s3-polars">I&#8217;ve made the mistake myself of trying to prove to people that you don&#8217;t need a big cluster to work on large data.</a> Be warned: when you start messing with people's golden calf, expect to be summarily burned at the stake; be ready to be a heretic. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/dataengineeringcentral.substack.com/p/650gb-of-data-delta-lake-on-s3-polarshttps://dataengineeringcentral.substack.com/p/650gb-of-data-delta-lake-on-s3-polars" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!Scpf!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F139f5234-c91c-4203-a266-53bebb23d693_2006x824.png 424w, /__u/substackcdn.com/image/fetch/$s_!Scpf!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F139f5234-c91c-4203-a266-53bebb23d693_2006x824.png 848w, /__u/substackcdn.com/image/fetch/$s_!Scpf!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F139f5234-c91c-4203-a266-53bebb23d693_2006x824.png 1272w, /__u/substackcdn.com/image/fetch/$s_!Scpf!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F139f5234-c91c-4203-a266-53bebb23d693_2006x824.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!Scpf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F139f5234-c91c-4203-a266-53bebb23d693_2006x824.png" width="1456" height="598" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/139f5234-c91c-4203-a266-53bebb23d693_2006x824.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:598,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:667935,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://dataengineeringcentral.substack.com/p/650gb-of-data-delta-lake-on-s3-polarshttps://dataengineeringcentral.substack.com/p/650gb-of-data-delta-lake-on-s3-polars&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/210683727?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F139f5234-c91c-4203-a266-53bebb23d693_2006x824.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!Scpf!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F139f5234-c91c-4203-a266-53bebb23d693_2006x824.png 424w, /__u/substackcdn.com/image/fetch/$s_!Scpf!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F139f5234-c91c-4203-a266-53bebb23d693_2006x824.png 848w, /__u/substackcdn.com/image/fetch/$s_!Scpf!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F139f5234-c91c-4203-a266-53bebb23d693_2006x824.png 1272w, /__u/substackcdn.com/image/fetch/$s_!Scpf!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F139f5234-c91c-4203-a266-53bebb23d693_2006x824.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>One can see the major difference between someone saying DuckDB or Polars can replace Spark, which they can, and someone saying that isn&#8217;t the whole story. We don&#8217;t live and work on data projects in a vacuum. <span>It takes a serious amount of commitment for any Staff Engineer or CTO to look at a group of drooling and keyboard-happy engineers and say, &#8220;</span><em><mark data-color="#ffe599" style="background-color: rgb(255, 229, 153); color: rgb(0, 0, 0);"><span>Yes, that&#8217;s a great idea; go ahead and rewrite our entire stack and legacy data pipeline(s) into DuckDB/Polars/Daft.</span></mark></em><span>&#8221;</span> That isn&#8217;t the real world. In the real world, we have all sorts of deadlines, product launches, tech debt, and general mayhem. Sure, we of course WANT to do those projects, but we don't often get the chance.</p><p>Back to Lakesail. This is the impressive part, if it turns out to be true, and believe me, I&#8217;m going to try it out, hook, line, and sinker. This is the difference maker. Just swap out the engine, leave the code as is. </p><blockquote><p>&#8220;<em><strong>Spark Connect protocol means your existing PySpark, Spark SQL, Delta Lake, and Iceberg code runs unchanged, natively, not as an add-on.</strong></em>&#8221;</p></blockquote><p>This is a much easier pill to swallow for data teams. At least for those running the show. It&#8217;s a hard sell, even with cost savings, to tell someone to rewrite all the code; a much more palatable message is to just swap compute or configs and leave the code be.</p><p>Ok, so all that as an introduction; I don&#8217;t really know a better way to understand a tool than by getting to work. So, let&#8217;s do that.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/lakesail-replacing-spark-with-rust?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Data Engineering Central! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/lakesail-replacing-spark-with-rust?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/p/lakesail-replacing-spark-with-rust?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share"><span>Share</span></a></p></div><div><hr></div><h2>Exploring Lakesail concepts, open source, paid platform, etc.</h2><p>It&#8217;s going to be hard to understand all the features of any tool in the short time we have, but I will do my best to give you a working understanding of what Lakesail offers from both open- and closed-source perspectives. We will start with the concepts, check out the open-source options, and finish by setting up an account on the <a href="https://platform.lakesail.com/">Lakesail Platform</a> to see what that is all about.</p><h4><mark data-color="#93c47d" style="background-color: rgb(147, 196, 125); color: rgb(0, 0, 0);"> Ok, what is Lakesail?</mark></h4><p>It is</p><ul><li><p>&#8220;&#8230; distributed <mark data-color="#f1c232" style="background-color: rgb(241, 194, 50); color: rgb(0, 0, 0);">multimodal</mark> compute engine &#8230;&#8221;</p></li><li><p>built on <a href="/__u/dataengineeringcentral.substack.com/p/apache-arrow-is-eating-the-world?utm_source=publication-search">Apache Arrow</a></p></li><li><p>built on <a href="/__u/dataengineeringcentral.substack.com/p/datafusion-from-a-python-perspective?utm_source=publication-search">Apache Datafusion</a></p></li><li><p>Spark users can &#8220;&#8230; <span>switch to Sail </span><strong>without making code changes.&#8221;</strong></p></li><li><p>Built with Rust.</p></li></ul><p>This probably makes sense to most of you, I would imagine, besides maybe the word <a href="https://www.buoyantdata.com/blog/2026-02-03-multimodal-delta-lake.html">multimodal</a> (<em><a href="https://www.buoyantdata.com/blog/2026-02-03-multimodal-delta-lake.html">you can read more about this on the buoyantdata website</a></em>). The rest of these are kinda obvious and well known to most of the data community. Apache Arrow is the new go-to in-memory data format; Apache DataFusion has been around for a long time, and many tools are built on it. The idea that Lakesail is built with Rust is a given, but the most interesting part is that we could port existing Apache Spark code to run on Lakesail compute, which is enticing indeed.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!QTBp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd92318d1-bdd4-48d5-9504-2e833e3fce5c_1118x586.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!QTBp!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd92318d1-bdd4-48d5-9504-2e833e3fce5c_1118x586.png 424w, /__u/substackcdn.com/image/fetch/$s_!QTBp!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd92318d1-bdd4-48d5-9504-2e833e3fce5c_1118x586.png 848w, /__u/substackcdn.com/image/fetch/$s_!QTBp!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd92318d1-bdd4-48d5-9504-2e833e3fce5c_1118x586.png 1272w, /__u/substackcdn.com/image/fetch/$s_!QTBp!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd92318d1-bdd4-48d5-9504-2e833e3fce5c_1118x586.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!QTBp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd92318d1-bdd4-48d5-9504-2e833e3fce5c_1118x586.png" width="1118" height="586" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d92318d1-bdd4-48d5-9504-2e833e3fce5c_1118x586.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:586,&quot;width&quot;:1118,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:81759,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/210683727?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd92318d1-bdd4-48d5-9504-2e833e3fce5c_1118x586.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!QTBp!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd92318d1-bdd4-48d5-9504-2e833e3fce5c_1118x586.png 424w, /__u/substackcdn.com/image/fetch/$s_!QTBp!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd92318d1-bdd4-48d5-9504-2e833e3fce5c_1118x586.png 848w, /__u/substackcdn.com/image/fetch/$s_!QTBp!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd92318d1-bdd4-48d5-9504-2e833e3fce5c_1118x586.png 1272w, /__u/substackcdn.com/image/fetch/$s_!QTBp!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd92318d1-bdd4-48d5-9504-2e833e3fce5c_1118x586.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>How can this be?</p><p>The handshake between Lakesail and Spark is Spark Connect.</p><div class="pullquote"><p>&#8220;<span>The Spark client session communicates with the Sail server using the </span><strong><a href="https://spark.apache.org/docs/latest/spark-connect-overview.html">Spark Connect</a></strong><span> protocol.&#8221; - </span><a href="https://docs.lakesail.com/sail/latest/introduction/getting-started/"><span>Lakesail</span></a></p></div><p>I have <a href="/__u/dataengineeringcentral.substack.com/p/spark-connect-what-is-this-madness">written about Spark Connect before</a>, you can check that link out below. Recently, I&#8217;ve also used Spark Connect when building Agentic Chatbots and Agents, etc, as it allows for simple communication between anything non-Spark &#8230; and well &#8230; Spark.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/dataengineeringcentral.substack.com/p/spark-connect-what-is-this-madness" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!SycF!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4480bd81-7266-4f22-8707-98ab04570db3_1456x631.webp 424w, /__u/substackcdn.com/image/fetch/$s_!SycF!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4480bd81-7266-4f22-8707-98ab04570db3_1456x631.webp 848w, /__u/substackcdn.com/image/fetch/$s_!SycF!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4480bd81-7266-4f22-8707-98ab04570db3_1456x631.webp 1272w, /__u/substackcdn.com/image/fetch/$s_!SycF!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4480bd81-7266-4f22-8707-98ab04570db3_1456x631.webp 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!SycF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4480bd81-7266-4f22-8707-98ab04570db3_1456x631.webp" width="1456" height="631" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4480bd81-7266-4f22-8707-98ab04570db3_1456x631.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:631,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:36210,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:&quot;https://dataengineeringcentral.substack.com/p/spark-connect-what-is-this-madness&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/210683727?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4480bd81-7266-4f22-8707-98ab04570db3_1456x631.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!SycF!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4480bd81-7266-4f22-8707-98ab04570db3_1456x631.webp 424w, /__u/substackcdn.com/image/fetch/$s_!SycF!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4480bd81-7266-4f22-8707-98ab04570db3_1456x631.webp 848w, /__u/substackcdn.com/image/fetch/$s_!SycF!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4480bd81-7266-4f22-8707-98ab04570db3_1456x631.webp 1272w, /__u/substackcdn.com/image/fetch/$s_!SycF!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4480bd81-7266-4f22-8707-98ab04570db3_1456x631.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Let&#8217;s jump to the <mark data-color="#45818e" style="background-color: rgb(69, 129, 142); color: rgb(255, 255, 255);">TDLR</mark> of Spark Connect, because it&#8217;s an important part of the Lakesail conversation. Here is that summary taken from the article I wrote about Spark Connect.</p><p>What, pray tell is Apache Spark Connect?</p><blockquote><p><span>&#8220;&#8230; </span><em>a decoupled client-server architecture that allows remote connectivity to Spark clusters using the DataFrame API &#8230;</em><span>&#8221;</span></p></blockquote><p>and</p><blockquote><p><em>&#8220;It is a thin API that can be embedded everywhere: in application servers, IDEs, notebooks, and programming languages &#8230; &#8220;</em></p></blockquote><p>So, this is key to understanding how something like Lakesail can truly be a built-in replacement for compute/processing for existing Spark pipelines. It&#8217;s just a protocol; Lakesail understands this protocol and can translate a Spark query into a Lakesail query. Easy peasy, not really.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/subscribe"><span>Subscribe now</span></a></p><div><hr></div><h3>Playing locally with Lakesail.</h3><p>What I want to do is play with Lakesail locally, just to see and feel what it&#8217;s like; then I would like to set up a Lakesail account, connect it to my AWS account, and maybe run the same setup to see what&#8217;s crackin'. </p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;bash&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-bash">uv init testingLakesail
cd testingLakesail 
uv add pysail pyspark-client==4.2.0</code></pre></div><p>Apparently, we could use the command line with sail to drop into the classic interactive Spark shell, with the Sail server running behind it. But I&#8217;m of the opinion that most folk don&#8217;t use the Spark command line anymore; most people are in Notebooks. You can thank Databricks for that.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;bash&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-bash">sail spark shell</code></pre></div><p>Either way, let&#8217;s write some PySpark code that uses Sail; in theory, it should be boring, because &#8230; Sail is just running behind the scenes and taking our normal Spark code and executing it against its own engine built on Rust, Arrow, and Datafusion. This will not be a scientific test at all, but I&#8217;m new to this, so give me a break. We will run the same normal PySpark script in a Databricks Notebook on Serverless compute, observe the runtime, then run the same script with Sail. This will all be without a classic Spark cluster, in a sense, on small data, but I just want to see what happens.</p><blockquote><p>If I&#8217;m feeling spicy later, I can connect my personal AWS account to a new Lakesail account and run a larger dataset with a classic Spark cluster. </p></blockquote><p><a href="https://www.backblaze.com/cloud-storage/resources/hard-drive-test-data">Luckily, kind people like Backblaze provide an open-source hard drive dataset as a queryable Apache Iceberg table on S3 or compressed CSV files.</a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.backblaze.com/cloud-storage/resources/hard-drive-test-data" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!UAtq!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e081bb5-3078-4cdd-98fc-db989990efce_2200x1158.png 424w, /__u/substackcdn.com/image/fetch/$s_!UAtq!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e081bb5-3078-4cdd-98fc-db989990efce_2200x1158.png 848w, /__u/substackcdn.com/image/fetch/$s_!UAtq!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e081bb5-3078-4cdd-98fc-db989990efce_2200x1158.png 1272w, /__u/substackcdn.com/image/fetch/$s_!UAtq!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e081bb5-3078-4cdd-98fc-db989990efce_2200x1158.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!UAtq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e081bb5-3078-4cdd-98fc-db989990efce_2200x1158.png" width="1456" height="766" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7e081bb5-3078-4cdd-98fc-db989990efce_2200x1158.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:766,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:339554,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.backblaze.com/cloud-storage/resources/hard-drive-test-data&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/210683727?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e081bb5-3078-4cdd-98fc-db989990efce_2200x1158.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!UAtq!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e081bb5-3078-4cdd-98fc-db989990efce_2200x1158.png 424w, /__u/substackcdn.com/image/fetch/$s_!UAtq!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e081bb5-3078-4cdd-98fc-db989990efce_2200x1158.png 848w, /__u/substackcdn.com/image/fetch/$s_!UAtq!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e081bb5-3078-4cdd-98fc-db989990efce_2200x1158.png 1272w, /__u/substackcdn.com/image/fetch/$s_!UAtq!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e081bb5-3078-4cdd-98fc-db989990efce_2200x1158.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>We will use the raw, compressed CSV files, since they should pose no problem for Spark. I can get them into my personal AWS account in an S3 bucket; then we will have the data against which to run our tests of vanilla Spark and LakeSail Spark.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!4FVo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8af541b-d29d-4297-83a6-7cda935b86d9_1920x926.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!4FVo!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8af541b-d29d-4297-83a6-7cda935b86d9_1920x926.png 424w, /__u/substackcdn.com/image/fetch/$s_!4FVo!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8af541b-d29d-4297-83a6-7cda935b86d9_1920x926.png 848w, /__u/substackcdn.com/image/fetch/$s_!4FVo!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8af541b-d29d-4297-83a6-7cda935b86d9_1920x926.png 1272w, /__u/substackcdn.com/image/fetch/$s_!4FVo!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8af541b-d29d-4297-83a6-7cda935b86d9_1920x926.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!4FVo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8af541b-d29d-4297-83a6-7cda935b86d9_1920x926.png" width="1456" height="702" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d8af541b-d29d-4297-83a6-7cda935b86d9_1920x926.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:702,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:232980,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/210683727?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8af541b-d29d-4297-83a6-7cda935b86d9_1920x926.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!4FVo!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8af541b-d29d-4297-83a6-7cda935b86d9_1920x926.png 424w, /__u/substackcdn.com/image/fetch/$s_!4FVo!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8af541b-d29d-4297-83a6-7cda935b86d9_1920x926.png 848w, /__u/substackcdn.com/image/fetch/$s_!4FVo!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8af541b-d29d-4297-83a6-7cda935b86d9_1920x926.png 1272w, /__u/substackcdn.com/image/fetch/$s_!4FVo!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8af541b-d29d-4297-83a6-7cda935b86d9_1920x926.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p>4.54 GB (4,536,210,401 bytes) across 365 objects</p></li><li><p>120,191,685 rows (~120.2M)</p></li></ul><p>Now, I know everyone is going to say this is not fair; we should test on some massive dataset to give vanilla Spark a fighting chance. Also, Serverless; who knows what&#8217;s going on behind the curtain? Oz is back there pulling levers. I hear you, but I ain&#8217;t got the time, and I&#8217;m the one who has to spend the money. Easy for you to say Sunny Jim.</p><p>The Spark version running in a Databricks Notebook against Serverless is easy enough.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">import datetime as dt
import time

import pyarrow.csv as pacsv
import pyarrow.fs as pafs
from pyspark.sql import functions as F

SRC = "s3://confessions-of-a-data-guy/drivestats/csv/*.csv.gz"
DST = "confessions-of-a-data-guy/drivestats/results/failures_by_model_day_serverless.csv"
REGION = "us-east-1"
START = dt.date.today() - dt.timedelta(days=730)

t0 = time.perf_counter()

failures = (
    spark.read.option("header", True)
    .csv(SRC)
    .select(F.to_date("date").alias("date"), "model", F.col("failure").cast("int").alias("failure"))
    .where((F.col("failure") == 1) &amp; (F.col("date") &gt;= F.lit(START)))
    .groupBy("date", "model")
    .agg(F.count(F.lit(1)).alias("failures"))
    .orderBy(F.col("date").desc(), F.col("failures").desc(), "model")
)

table = failures.toArrow()

fs = pafs.S3FileSystem(
    access_key="xxx",
    secret_key="xxxxxxxx",
    region=REGION,
)
with fs.open_output_stream(DST) as sink:
    pacsv.write_csv(table, sink)

print(f"{table.num_rows} rows -&gt; s3://{DST} in {time.perf_counter() - t0:.1f}s")

display(table)</code></pre></div><p>And the results.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;bash&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-bash">2588 rows -&gt; s3://confessions-of-a-data-guy/drivestats/results/failures_by_model_day_serverless.csv in 35.6s
pyarrow.Table
date: date32[day]
model: string
failures: int64 not null
----
date: [[2026-03-31,2026-03-31,2026-03-31,2026-03-31,2026-03-31,...,2025-04-01,2025-04-01,2025-04-01,2025-04-01,2025-04-01]]
model: [["ST8000NM0055","HGST HUH721212ALN604","TOSHIBA MG10ACA20TE","ST16000NM001G","TOSHIBA MG08ACA16TEY",...,"ST8000DM002","WDC WUH722222ALE6L4","HGST HUH721212ALN604","ST8000NM0055","TOSHIBA MG08ACA16TA"]]
failures: [[5,4,3,2,2,...,2,2,1,1,1]]</code></pre></div><p>Ok, for the Sail swap-out, in the Databricks Notebook we need to do this.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">%pip install "pysail==0.7.0"
%pip install "pyspark-client==4.2.0"</code></pre></div><p>Here is the same code, with Sail. You can see the differences are only due to starting a Sail Spark Connect server and then using that. Obviously, in the Production setting, we would have a dedicated Sail Spark Connect Session running and serving from some permanent place. And in theory, we wouldn&#8217;t have to change the core code for the Spark pipelines, just what they connect to.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python"># run these first, in their own cell:  %pip install pysail   then   %restart_python

import datetime as dt
import os
import time

import pyarrow.csv as pacsv
import pyarrow.fs as pafs
from pyspark.sql import SparkSession
from pyspark.sql import functions as F

from pysail.spark import SparkConnectServer

SRC = "s3://confessions-of-a-data-guy/drivestats/csv/*.csv.gz"
DST = "confessions-of-a-data-guy/drivestats/results/failures_by_model_day_sail.csv"
REGION = "us-east-1"
START = dt.date.today() - dt.timedelta(days=730)

# Must be set before the server starts.
os.environ["SAIL_SPARK__SESSION_TIMEOUT_SECS"] = "3600"
os.environ["AWS_ACCESS_KEY_ID"] = "xxxx"
os.environ["AWS_SECRET_ACCESS_KEY"] = "xxxxxxxxxxx"
os.environ["AWS_REGION"] = REGION

t0 = time.perf_counter()

server = SparkConnectServer("127.0.0.1", 0)
server.start(background=True)
host, port = server.listening_address
# The notebook's own `spark` is the Databricks session; this one is Sail.
sail = SparkSession.builder.remote(f"sc://{host}:{port}").create()

failures = (
    sail.read.option("header", True)
    .csv(SRC)
    .select(F.to_date("date").alias("date"), "model", F.col("failure").cast("int").alias("failure"))
    .where((F.col("failure") == 1) &amp; (F.col("date") &gt;= F.lit(START)))
    .groupBy("date", "model")
    .agg(F.count(F.lit(1)).alias("failures"))
    .orderBy(F.col("date").desc(), F.col("failures").desc(), "model")
)

table = failures.toArrow()

fs = pafs.S3FileSystem(
    access_key=os.environ["AWS_ACCESS_KEY_ID"],
    secret_key=os.environ["AWS_SECRET_ACCESS_KEY"],
    region=REGION,
)
with fs.open_output_stream(DST) as sink:
    pacsv.write_csv(table, sink)

print(f"{table.num_rows} rows -&gt; s3://{DST} in {time.perf_counter() - t0:.1f}s")

display(table)

sail.stop()
server.stop()</code></pre></div><p>This is where I started to have problems. I could see from the Logs in the Notebook that the Sail server was starting, but it was churning for minutes running in Serverless compute with no end in sight. My guess is that Databricks Serverless is not the place to test the Sail version of this code.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;bash&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-bash">[2026-08-18T00:19:00Z INFO sail_python::spark::server] Starting the Spark Connect server on 127.0.0.1:37959...
[2026-08-18T00:19:00Z INFO sail_session::session_manager::actor::handler] creating session 9c1eba5a-3765-4572-81cf-63201d9a2d0d</code></pre></div><p>Well, in the end it did finish, just much slower. <mark data-color="#ea9999" style="background-color: rgb(234, 153, 153); color: rgb(0, 0, 0);">197.7s</mark></p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;bash&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-bash">[2026-08-18T00:19:00Z INFO sail_python::spark::server] Starting the Spark Connect server on 127.0.0.1:37959...
[2026-08-18T00:19:00Z INFO sail_session::session_manager::actor::handler] creating session 9c1eba5a-3765-4572-81cf-63201d9a2d0d
2588 rows -&gt; s3://confessions-of-a-data-guy/drivestats/results/failures_by_model_day_sail.csv in 197.7s
pyarrow.Table
date: date32[day]
model: string
failures: int64 not null
----
date: [[2026-03-31,2026-03-31,2026-03-31,2026-03-31,2026-03-31,...,2025-04-01,2025-04-01,2025-04-01,2025-04-01,2025-04-01]]
model: [["ST8000NM0055","HGST HUH721212ALN604","TOSHIBA MG10ACA20TE","ST16000NM001G","TOSHIBA MG08ACA16TEY",...,"ST8000DM002","WDC WUH722222ALE6L4","HGST HUH721212ALN604","ST8000NM0055","TOSHIBA MG08ACA16TA"]]
failures: [[5,4,3,2,2,...,2,2,1,1,1]][2026-08-18T00:22:17Z INFO sail_session::session_manager::actor::handler] removing session 9c1eba5a-3765-4572-81cf-63201d9a2d0d
[2026-08-18T00:22:17Z INFO sail_python::spark::server] Shutting down the Spark Connect server...
[2026-08-18T00:22:17Z INFO sail_python::spark::server] The Spark Connect server has stopped.
[2026-08-18T00:22:17Z WARN sail_server::actor] aborting 4 task(s) for SessionManagerActor</code></pre></div><p>I mean, both scripts worked; in s3 I can see the results from each process.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!4t1j!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab2c4963-abd0-49d4-81d2-eebb7f6b32e8_1984x1110.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!4t1j!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab2c4963-abd0-49d4-81d2-eebb7f6b32e8_1984x1110.png 424w, /__u/substackcdn.com/image/fetch/$s_!4t1j!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab2c4963-abd0-49d4-81d2-eebb7f6b32e8_1984x1110.png 848w, /__u/substackcdn.com/image/fetch/$s_!4t1j!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab2c4963-abd0-49d4-81d2-eebb7f6b32e8_1984x1110.png 1272w, /__u/substackcdn.com/image/fetch/$s_!4t1j!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab2c4963-abd0-49d4-81d2-eebb7f6b32e8_1984x1110.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!4t1j!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab2c4963-abd0-49d4-81d2-eebb7f6b32e8_1984x1110.png" width="1456" height="815" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ab2c4963-abd0-49d4-81d2-eebb7f6b32e8_1984x1110.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:815,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:291602,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/210683727?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab2c4963-abd0-49d4-81d2-eebb7f6b32e8_1984x1110.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!4t1j!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab2c4963-abd0-49d4-81d2-eebb7f6b32e8_1984x1110.png 424w, /__u/substackcdn.com/image/fetch/$s_!4t1j!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab2c4963-abd0-49d4-81d2-eebb7f6b32e8_1984x1110.png 848w, /__u/substackcdn.com/image/fetch/$s_!4t1j!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab2c4963-abd0-49d4-81d2-eebb7f6b32e8_1984x1110.png 1272w, /__u/substackcdn.com/image/fetch/$s_!4t1j!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab2c4963-abd0-49d4-81d2-eebb7f6b32e8_1984x1110.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Even the results of each file match, which we would expect. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!KeM1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a50ed47-b263-4176-bd0f-3402ba018e18_1646x1280.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!KeM1!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a50ed47-b263-4176-bd0f-3402ba018e18_1646x1280.png 424w, /__u/substackcdn.com/image/fetch/$s_!KeM1!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a50ed47-b263-4176-bd0f-3402ba018e18_1646x1280.png 848w, /__u/substackcdn.com/image/fetch/$s_!KeM1!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a50ed47-b263-4176-bd0f-3402ba018e18_1646x1280.png 1272w, /__u/substackcdn.com/image/fetch/$s_!KeM1!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a50ed47-b263-4176-bd0f-3402ba018e18_1646x1280.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!KeM1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a50ed47-b263-4176-bd0f-3402ba018e18_1646x1280.png" width="1456" height="1132" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3a50ed47-b263-4176-bd0f-3402ba018e18_1646x1280.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1132,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:463130,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/210683727?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a50ed47-b263-4176-bd0f-3402ba018e18_1646x1280.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!KeM1!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a50ed47-b263-4176-bd0f-3402ba018e18_1646x1280.png 424w, /__u/substackcdn.com/image/fetch/$s_!KeM1!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a50ed47-b263-4176-bd0f-3402ba018e18_1646x1280.png 848w, /__u/substackcdn.com/image/fetch/$s_!KeM1!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a50ed47-b263-4176-bd0f-3402ba018e18_1646x1280.png 1272w, /__u/substackcdn.com/image/fetch/$s_!KeM1!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a50ed47-b263-4176-bd0f-3402ba018e18_1646x1280.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I guess I wasn&#8217;t expecting Databricks Serverless to beat Sail on speed, but that wasn&#8217;t really the point. We did prove that we can take a vanilla Spark data pipeline, point it at a Sail Spark Connect instance, and run the same exact code without touching it, and get the same exact answer as vanilla Spark, except we ran it through a different engine.</p><blockquote><p>Don&#8217;t get me wrong, I could have been doing something totally dumb and backward; you don&#8217;t know what you don&#8217;t know when playing with new tools.</p></blockquote><p>Out of pure curiosity, I ran the same Sail Spark code from the Notebook locally on my machine to see what would happen. That way I could ensure beyond a doubt that the Spark Sail code was indeed using that as the engine, because who knows what&#8217;s happening on Databricks Serverless; it could be playing nice or not. I mean, from the Sail logs, it appears like it went through that way, but I&#8217;m not 100% sure.</p><p>Well, it took even longer locally. <mark data-color="#ea9999" style="background-color: rgb(234, 153, 153); color: rgb(0, 0, 0);">202.0s</mark></p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext"> 2588 rows -&gt; s3://confessions-of-a-data-guy/drivestats/results/failures_by_model_day_sail.csv in 202.0s</code></pre></div><p>I don&#8217;t really take this as a bad sign; I&#8217;m just playing around for the first time. Anyone in their right mind knows that for many datasets, Rust + Datafusion + Apache Arrow is WAY faster than Spark for most data workloads. Maybe until you get to the PB level. </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/subscribe"><span>Subscribe now</span></a></p><div><hr></div><h2>LakeSail as a Data Platform.</h2><p>I figured since the above didn&#8217;t work out that well, I would poke at the SaaS data platform LakeSail offers. My first impressions were very good; they have a clean website and a straightforward, non-confusing onboarding workflow. You would be amazed at how many people get this wrong. LakeSail clearly put some work into this.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!KkNe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47538f27-507c-4296-940d-cbaa09635677_2866x1246.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!KkNe!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47538f27-507c-4296-940d-cbaa09635677_2866x1246.png 424w, /__u/substackcdn.com/image/fetch/$s_!KkNe!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47538f27-507c-4296-940d-cbaa09635677_2866x1246.png 848w, /__u/substackcdn.com/image/fetch/$s_!KkNe!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47538f27-507c-4296-940d-cbaa09635677_2866x1246.png 1272w, /__u/substackcdn.com/image/fetch/$s_!KkNe!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47538f27-507c-4296-940d-cbaa09635677_2866x1246.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!KkNe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47538f27-507c-4296-940d-cbaa09635677_2866x1246.png" width="1456" height="633" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/47538f27-507c-4296-940d-cbaa09635677_2866x1246.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:633,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:260864,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/210683727?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47538f27-507c-4296-940d-cbaa09635677_2866x1246.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!KkNe!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47538f27-507c-4296-940d-cbaa09635677_2866x1246.png 424w, /__u/substackcdn.com/image/fetch/$s_!KkNe!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47538f27-507c-4296-940d-cbaa09635677_2866x1246.png 848w, /__u/substackcdn.com/image/fetch/$s_!KkNe!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47538f27-507c-4296-940d-cbaa09635677_2866x1246.png 1272w, /__u/substackcdn.com/image/fetch/$s_!KkNe!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47538f27-507c-4296-940d-cbaa09635677_2866x1246.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>When creating a LakeSail stack in AWS, you can see during the setup what is going on behind the scenes, aka, what technologies they are using to wrap Sail up in way we can use it from their SaaS.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!9yCo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19aa56f1-ddb5-4d70-8fb1-69fec40521bf_2846x690.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!9yCo!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19aa56f1-ddb5-4d70-8fb1-69fec40521bf_2846x690.png 424w, /__u/substackcdn.com/image/fetch/$s_!9yCo!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19aa56f1-ddb5-4d70-8fb1-69fec40521bf_2846x690.png 848w, /__u/substackcdn.com/image/fetch/$s_!9yCo!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19aa56f1-ddb5-4d70-8fb1-69fec40521bf_2846x690.png 1272w, /__u/substackcdn.com/image/fetch/$s_!9yCo!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19aa56f1-ddb5-4d70-8fb1-69fec40521bf_2846x690.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!9yCo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19aa56f1-ddb5-4d70-8fb1-69fec40521bf_2846x690.png" width="1456" height="353" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/19aa56f1-ddb5-4d70-8fb1-69fec40521bf_2846x690.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:353,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:209038,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/210683727?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19aa56f1-ddb5-4d70-8fb1-69fec40521bf_2846x690.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!9yCo!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19aa56f1-ddb5-4d70-8fb1-69fec40521bf_2846x690.png 424w, /__u/substackcdn.com/image/fetch/$s_!9yCo!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19aa56f1-ddb5-4d70-8fb1-69fec40521bf_2846x690.png 848w, /__u/substackcdn.com/image/fetch/$s_!9yCo!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19aa56f1-ddb5-4d70-8fb1-69fec40521bf_2846x690.png 1272w, /__u/substackcdn.com/image/fetch/$s_!9yCo!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19aa56f1-ddb5-4d70-8fb1-69fec40521bf_2846x690.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><ul><li><p>EKS clusters</p></li><li><p>VPC and networking (subnets, security groups, load balancers, VPC endpoints)</p></li><li><p>IAM role creation for EKS infrastructure and workload roles</p></li><li><p>S3 bucket management for workspace data and job artifacts</p></li><li><p>Glue Data Catalog management for default catalog</p></li><li><p>KMS key management for EKS secrets encryption</p></li><li><p>CloudWatch Logs for EKS control plane logging</p></li><li><p>CloudFormation stack discovery (read-only, tagged resources only)</p></li></ul><blockquote><p><mark data-color="#ffe599" style="background-color: rgb(255, 229, 153); color: rgb(0, 0, 0);">Dang, you know what kinda money I spend on you hobbits??!! This is why, if you are a free subscriber to this Newsletter, give me an upgrade and pay the piper.</mark></p></blockquote><p>Look, you can watch my AWS bill go up.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!vUT3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff99665f9-3988-4100-ba58-9b8a5c3e698e_1882x1012.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!vUT3!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff99665f9-3988-4100-ba58-9b8a5c3e698e_1882x1012.png 424w, /__u/substackcdn.com/image/fetch/$s_!vUT3!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff99665f9-3988-4100-ba58-9b8a5c3e698e_1882x1012.png 848w, /__u/substackcdn.com/image/fetch/$s_!vUT3!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff99665f9-3988-4100-ba58-9b8a5c3e698e_1882x1012.png 1272w, /__u/substackcdn.com/image/fetch/$s_!vUT3!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff99665f9-3988-4100-ba58-9b8a5c3e698e_1882x1012.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!vUT3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff99665f9-3988-4100-ba58-9b8a5c3e698e_1882x1012.png" width="1456" height="783" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f99665f9-3988-4100-ba58-9b8a5c3e698e_1882x1012.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:783,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:151803,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/210683727?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff99665f9-3988-4100-ba58-9b8a5c3e698e_1882x1012.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!vUT3!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff99665f9-3988-4100-ba58-9b8a5c3e698e_1882x1012.png 424w, /__u/substackcdn.com/image/fetch/$s_!vUT3!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff99665f9-3988-4100-ba58-9b8a5c3e698e_1882x1012.png 848w, /__u/substackcdn.com/image/fetch/$s_!vUT3!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff99665f9-3988-4100-ba58-9b8a5c3e698e_1882x1012.png 1272w, /__u/substackcdn.com/image/fetch/$s_!vUT3!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff99665f9-3988-4100-ba58-9b8a5c3e698e_1882x1012.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Look Ma, I got a LakeSail account now.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!jDUl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7b53120-ea5b-451c-9639-caffbf6d2f80_2338x696.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!jDUl!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7b53120-ea5b-451c-9639-caffbf6d2f80_2338x696.png 424w, /__u/substackcdn.com/image/fetch/$s_!jDUl!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7b53120-ea5b-451c-9639-caffbf6d2f80_2338x696.png 848w, /__u/substackcdn.com/image/fetch/$s_!jDUl!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7b53120-ea5b-451c-9639-caffbf6d2f80_2338x696.png 1272w, /__u/substackcdn.com/image/fetch/$s_!jDUl!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7b53120-ea5b-451c-9639-caffbf6d2f80_2338x696.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!jDUl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7b53120-ea5b-451c-9639-caffbf6d2f80_2338x696.png" width="1456" height="433" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b7b53120-ea5b-451c-9639-caffbf6d2f80_2338x696.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:433,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:152189,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/210683727?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7b53120-ea5b-451c-9639-caffbf6d2f80_2338x696.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!jDUl!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7b53120-ea5b-451c-9639-caffbf6d2f80_2338x696.png 424w, /__u/substackcdn.com/image/fetch/$s_!jDUl!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7b53120-ea5b-451c-9639-caffbf6d2f80_2338x696.png 848w, /__u/substackcdn.com/image/fetch/$s_!jDUl!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7b53120-ea5b-451c-9639-caffbf6d2f80_2338x696.png 1272w, /__u/substackcdn.com/image/fetch/$s_!jDUl!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7b53120-ea5b-451c-9639-caffbf6d2f80_2338x696.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The UI is very nice and clean, and now that we have connected to my AWS account, let&#8217;s go ahead and set up some &#8220;Compute&#8221; and then I would like to re-run the code we wrote against this more production-like Sail system in one of their Notebooks, and see how smooth the experience is.</p><p>When I went about setting up a Cluster to use, naming it, selecting my AWS account, region, etc &#8230; it wouldn&#8217;t let me go forward without filling in IPv4 CIDR Range for it to use in AWS. This was kinda strange; I've never experienced this before on other compute platforms like Polars Cloud, MotherDuck, Databricks, etc.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!0gkg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe99a375b-3847-4a70-a107-01baac067184_1600x1224.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!0gkg!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe99a375b-3847-4a70-a107-01baac067184_1600x1224.png 424w, /__u/substackcdn.com/image/fetch/$s_!0gkg!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe99a375b-3847-4a70-a107-01baac067184_1600x1224.png 848w, /__u/substackcdn.com/image/fetch/$s_!0gkg!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe99a375b-3847-4a70-a107-01baac067184_1600x1224.png 1272w, /__u/substackcdn.com/image/fetch/$s_!0gkg!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe99a375b-3847-4a70-a107-01baac067184_1600x1224.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!0gkg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe99a375b-3847-4a70-a107-01baac067184_1600x1224.png" width="1456" height="1114" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e99a375b-3847-4a70-a107-01baac067184_1600x1224.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1114,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:191059,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/210683727?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe99a375b-3847-4a70-a107-01baac067184_1600x1224.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!0gkg!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe99a375b-3847-4a70-a107-01baac067184_1600x1224.png 424w, /__u/substackcdn.com/image/fetch/$s_!0gkg!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe99a375b-3847-4a70-a107-01baac067184_1600x1224.png 848w, /__u/substackcdn.com/image/fetch/$s_!0gkg!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe99a375b-3847-4a70-a107-01baac067184_1600x1224.png 1272w, /__u/substackcdn.com/image/fetch/$s_!0gkg!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe99a375b-3847-4a70-a107-01baac067184_1600x1224.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"></figcaption></figure></div><p>I mean, clearly LakeSail has access to my AWS account to set up the previous infra; this probably should have been taken care of during that process. I am no AWS expert, especially in networking, but that leaves me little choice but to scroll through my AWS VPCs and pick some unused IPv4 CIDR range?</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!y-Kh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c38191d-8ca0-4cba-a9f3-a47d6621379c_2112x874.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!y-Kh!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c38191d-8ca0-4cba-a9f3-a47d6621379c_2112x874.png 424w, /__u/substackcdn.com/image/fetch/$s_!y-Kh!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c38191d-8ca0-4cba-a9f3-a47d6621379c_2112x874.png 848w, /__u/substackcdn.com/image/fetch/$s_!y-Kh!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c38191d-8ca0-4cba-a9f3-a47d6621379c_2112x874.png 1272w, /__u/substackcdn.com/image/fetch/$s_!y-Kh!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c38191d-8ca0-4cba-a9f3-a47d6621379c_2112x874.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!y-Kh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c38191d-8ca0-4cba-a9f3-a47d6621379c_2112x874.png" width="1456" height="603" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4c38191d-8ca0-4cba-a9f3-a47d6621379c_2112x874.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:603,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:296890,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/210683727?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c38191d-8ca0-4cba-a9f3-a47d6621379c_2112x874.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!y-Kh!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c38191d-8ca0-4cba-a9f3-a47d6621379c_2112x874.png 424w, /__u/substackcdn.com/image/fetch/$s_!y-Kh!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c38191d-8ca0-4cba-a9f3-a47d6621379c_2112x874.png 848w, /__u/substackcdn.com/image/fetch/$s_!y-Kh!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c38191d-8ca0-4cba-a9f3-a47d6621379c_2112x874.png 1272w, /__u/substackcdn.com/image/fetch/$s_!y-Kh!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c38191d-8ca0-4cba-a9f3-a47d6621379c_2112x874.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"></figcaption></figure></div><p>While in the middle of doing this, apparently my timing is bad. The site was undergoing some maintenance. So, had to wait for things to get stable and come back again.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!8o7D!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02dacb4b-e931-4b36-b8d8-f718eef0513b_1494x874.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!8o7D!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02dacb4b-e931-4b36-b8d8-f718eef0513b_1494x874.png 424w, /__u/substackcdn.com/image/fetch/$s_!8o7D!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02dacb4b-e931-4b36-b8d8-f718eef0513b_1494x874.png 848w, /__u/substackcdn.com/image/fetch/$s_!8o7D!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02dacb4b-e931-4b36-b8d8-f718eef0513b_1494x874.png 1272w, /__u/substackcdn.com/image/fetch/$s_!8o7D!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02dacb4b-e931-4b36-b8d8-f718eef0513b_1494x874.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!8o7D!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02dacb4b-e931-4b36-b8d8-f718eef0513b_1494x874.png" width="1456" height="852" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/02dacb4b-e931-4b36-b8d8-f718eef0513b_1494x874.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:852,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:96415,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/210683727?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02dacb4b-e931-4b36-b8d8-f718eef0513b_1494x874.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!8o7D!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02dacb4b-e931-4b36-b8d8-f718eef0513b_1494x874.png 424w, /__u/substackcdn.com/image/fetch/$s_!8o7D!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02dacb4b-e931-4b36-b8d8-f718eef0513b_1494x874.png 848w, /__u/substackcdn.com/image/fetch/$s_!8o7D!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02dacb4b-e931-4b36-b8d8-f718eef0513b_1494x874.png 1272w, /__u/substackcdn.com/image/fetch/$s_!8o7D!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02dacb4b-e931-4b36-b8d8-f718eef0513b_1494x874.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Ok, now that we are back in business, I can get to creating this Cluster, of course selecting the <mark data-color="#93c47d" style="background-color: rgb(147, 196, 125); color: rgb(0, 0, 0);">Budget</mark> option.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!q4V9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc06aed1c-7d8d-470d-b03d-deec0240c465_1554x1320.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!q4V9!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc06aed1c-7d8d-470d-b03d-deec0240c465_1554x1320.png 424w, /__u/substackcdn.com/image/fetch/$s_!q4V9!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc06aed1c-7d8d-470d-b03d-deec0240c465_1554x1320.png 848w, /__u/substackcdn.com/image/fetch/$s_!q4V9!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc06aed1c-7d8d-470d-b03d-deec0240c465_1554x1320.png 1272w, /__u/substackcdn.com/image/fetch/$s_!q4V9!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc06aed1c-7d8d-470d-b03d-deec0240c465_1554x1320.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!q4V9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc06aed1c-7d8d-470d-b03d-deec0240c465_1554x1320.png" width="1456" height="1237" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c06aed1c-7d8d-470d-b03d-deec0240c465_1554x1320.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1237,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:306154,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/210683727?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc06aed1c-7d8d-470d-b03d-deec0240c465_1554x1320.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!q4V9!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc06aed1c-7d8d-470d-b03d-deec0240c465_1554x1320.png 424w, /__u/substackcdn.com/image/fetch/$s_!q4V9!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc06aed1c-7d8d-470d-b03d-deec0240c465_1554x1320.png 848w, /__u/substackcdn.com/image/fetch/$s_!q4V9!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc06aed1c-7d8d-470d-b03d-deec0240c465_1554x1320.png 1272w, /__u/substackcdn.com/image/fetch/$s_!q4V9!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc06aed1c-7d8d-470d-b03d-deec0240c465_1554x1320.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>As a side note, I wasn&#8217;t really planning on reviewing LakeSail&#8217;s cloud data platform in depth, but since we are already here, notice what menu options, and therefore features, they provide.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!xOvf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ca46204-900f-4e4d-92ff-d13486fc932b_874x782.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!xOvf!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ca46204-900f-4e4d-92ff-d13486fc932b_874x782.png 424w, /__u/substackcdn.com/image/fetch/$s_!xOvf!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ca46204-900f-4e4d-92ff-d13486fc932b_874x782.png 848w, /__u/substackcdn.com/image/fetch/$s_!xOvf!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ca46204-900f-4e4d-92ff-d13486fc932b_874x782.png 1272w, /__u/substackcdn.com/image/fetch/$s_!xOvf!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ca46204-900f-4e4d-92ff-d13486fc932b_874x782.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!xOvf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ca46204-900f-4e4d-92ff-d13486fc932b_874x782.png" width="874" height="782" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0ca46204-900f-4e4d-92ff-d13486fc932b_874x782.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:782,&quot;width&quot;:874,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:77546,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/210683727?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ca46204-900f-4e4d-92ff-d13486fc932b_874x782.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!xOvf!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ca46204-900f-4e4d-92ff-d13486fc932b_874x782.png 424w, /__u/substackcdn.com/image/fetch/$s_!xOvf!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ca46204-900f-4e4d-92ff-d13486fc932b_874x782.png 848w, /__u/substackcdn.com/image/fetch/$s_!xOvf!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ca46204-900f-4e4d-92ff-d13486fc932b_874x782.png 1272w, /__u/substackcdn.com/image/fetch/$s_!xOvf!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ca46204-900f-4e4d-92ff-d13486fc932b_874x782.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>We have Jobs, Notebooks, Compute, Catalogs, and Queries &#8230; all of which need no explanation for most of us using modern SaaS data tooling. We would expect such features as the minimum groundwork on which to build robust data platforms.</p><p>Ok, after a little wait, it looks like your Cluster is deployed and running. 15 Pods! Holy Mother of Pearl. Better get this test done and everything torn down before I go broke.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!9wRv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64e6fe65-c285-4642-aa11-ad5426a67174_2334x738.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!9wRv!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64e6fe65-c285-4642-aa11-ad5426a67174_2334x738.png 424w, /__u/substackcdn.com/image/fetch/$s_!9wRv!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64e6fe65-c285-4642-aa11-ad5426a67174_2334x738.png 848w, /__u/substackcdn.com/image/fetch/$s_!9wRv!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64e6fe65-c285-4642-aa11-ad5426a67174_2334x738.png 1272w, /__u/substackcdn.com/image/fetch/$s_!9wRv!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64e6fe65-c285-4642-aa11-ad5426a67174_2334x738.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!9wRv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64e6fe65-c285-4642-aa11-ad5426a67174_2334x738.png" width="1456" height="460" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/64e6fe65-c285-4642-aa11-ad5426a67174_2334x738.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:460,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:115765,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/210683727?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64e6fe65-c285-4642-aa11-ad5426a67174_2334x738.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!9wRv!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64e6fe65-c285-4642-aa11-ad5426a67174_2334x738.png 424w, /__u/substackcdn.com/image/fetch/$s_!9wRv!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64e6fe65-c285-4642-aa11-ad5426a67174_2334x738.png 848w, /__u/substackcdn.com/image/fetch/$s_!9wRv!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64e6fe65-c285-4642-aa11-ad5426a67174_2334x738.png 1272w, /__u/substackcdn.com/image/fetch/$s_!9wRv!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64e6fe65-c285-4642-aa11-ad5426a67174_2334x738.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Next, I need to make a new Compute Profile (<em>I couldn&#8217;t create a Notebook without it</em>). We will use Tiny for size.</p><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!jl0R!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0a32d81-1c4e-4e0d-bf97-65cf52d4e881_1854x1500.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!jl0R!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0a32d81-1c4e-4e0d-bf97-65cf52d4e881_1854x1500.png 424w, /__u/substackcdn.com/image/fetch/$s_!jl0R!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0a32d81-1c4e-4e0d-bf97-65cf52d4e881_1854x1500.png 848w, /__u/substackcdn.com/image/fetch/$s_!jl0R!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0a32d81-1c4e-4e0d-bf97-65cf52d4e881_1854x1500.png 1272w, /__u/substackcdn.com/image/fetch/$s_!jl0R!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0a32d81-1c4e-4e0d-bf97-65cf52d4e881_1854x1500.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!jl0R!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0a32d81-1c4e-4e0d-bf97-65cf52d4e881_1854x1500.png" width="1456" height="1178" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c0a32d81-1c4e-4e0d-bf97-65cf52d4e881_1854x1500.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1178,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:284638,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/210683727?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0a32d81-1c4e-4e0d-bf97-65cf52d4e881_1854x1500.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!jl0R!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0a32d81-1c4e-4e0d-bf97-65cf52d4e881_1854x1500.png 424w, /__u/substackcdn.com/image/fetch/$s_!jl0R!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0a32d81-1c4e-4e0d-bf97-65cf52d4e881_1854x1500.png 848w, /__u/substackcdn.com/image/fetch/$s_!jl0R!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0a32d81-1c4e-4e0d-bf97-65cf52d4e881_1854x1500.png 1272w, /__u/substackcdn.com/image/fetch/$s_!jl0R!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0a32d81-1c4e-4e0d-bf97-65cf52d4e881_1854x1500.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>After that, we can get to making a Notebook from which to run our previous code.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!nX6W!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cbdf055-1205-464e-ac65-97b83cca6080_1674x1326.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!nX6W!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cbdf055-1205-464e-ac65-97b83cca6080_1674x1326.png 424w, /__u/substackcdn.com/image/fetch/$s_!nX6W!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cbdf055-1205-464e-ac65-97b83cca6080_1674x1326.png 848w, /__u/substackcdn.com/image/fetch/$s_!nX6W!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cbdf055-1205-464e-ac65-97b83cca6080_1674x1326.png 1272w, /__u/substackcdn.com/image/fetch/$s_!nX6W!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cbdf055-1205-464e-ac65-97b83cca6080_1674x1326.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!nX6W!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cbdf055-1205-464e-ac65-97b83cca6080_1674x1326.png" width="1456" height="1153" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4cbdf055-1205-464e-ac65-97b83cca6080_1674x1326.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1153,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:201989,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/210683727?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cbdf055-1205-464e-ac65-97b83cca6080_1674x1326.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!nX6W!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cbdf055-1205-464e-ac65-97b83cca6080_1674x1326.png 424w, /__u/substackcdn.com/image/fetch/$s_!nX6W!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cbdf055-1205-464e-ac65-97b83cca6080_1674x1326.png 848w, /__u/substackcdn.com/image/fetch/$s_!nX6W!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cbdf055-1205-464e-ac65-97b83cca6080_1674x1326.png 1272w, /__u/substackcdn.com/image/fetch/$s_!nX6W!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cbdf055-1205-464e-ac65-97b83cca6080_1674x1326.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Next, we wait for the Notebook to come alive, which is a strange feeling. Makes sense when you read the note about waiting for a Marimo pod to emerge.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">Waiting for Marimo pod to become ready (namespace: lakesail-compute-zkmjymkcwb)&#8230;</code></pre></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!oquA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff42da37e-a4ff-4226-bc8e-2026ce8bd58d_1690x1226.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!oquA!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff42da37e-a4ff-4226-bc8e-2026ce8bd58d_1690x1226.png 424w, /__u/substackcdn.com/image/fetch/$s_!oquA!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff42da37e-a4ff-4226-bc8e-2026ce8bd58d_1690x1226.png 848w, /__u/substackcdn.com/image/fetch/$s_!oquA!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff42da37e-a4ff-4226-bc8e-2026ce8bd58d_1690x1226.png 1272w, /__u/substackcdn.com/image/fetch/$s_!oquA!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff42da37e-a4ff-4226-bc8e-2026ce8bd58d_1690x1226.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!oquA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff42da37e-a4ff-4226-bc8e-2026ce8bd58d_1690x1226.png" width="1456" height="1056" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f42da37e-a4ff-4226-bc8e-2026ce8bd58d_1690x1226.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1056,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:133083,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/210683727?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff42da37e-a4ff-4226-bc8e-2026ce8bd58d_1690x1226.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!oquA!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff42da37e-a4ff-4226-bc8e-2026ce8bd58d_1690x1226.png 424w, /__u/substackcdn.com/image/fetch/$s_!oquA!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff42da37e-a4ff-4226-bc8e-2026ce8bd58d_1690x1226.png 848w, /__u/substackcdn.com/image/fetch/$s_!oquA!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff42da37e-a4ff-4226-bc8e-2026ce8bd58d_1690x1226.png 1272w, /__u/substackcdn.com/image/fetch/$s_!oquA!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff42da37e-a4ff-4226-bc8e-2026ce8bd58d_1690x1226.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Now, finally, we can run our previous Sail code and see what's crackin'. I&#8217;m only half interested in the runtime, but I&#8217;m more interested in this code's ability to run out of the box without issues. Remember, we are just trying to get a feel for working with Sail itself and LakeSail, the data platform as a whole. I mean, we picked a T3 Small for AWS compute, with a whopping 2GB of RAM. So, the fact that Sail can run this code with that small of compute says something in itself. <mark data-color="#b6d7a8" style="background-color: rgb(182, 215, 168); color: rgb(0, 0, 0);">That&#8217;s what you call cost savings.</mark></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!M4oC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0df4c19c-735b-48b7-9389-a3c064f094f9_2128x1278.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!M4oC!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0df4c19c-735b-48b7-9389-a3c064f094f9_2128x1278.png 424w, /__u/substackcdn.com/image/fetch/$s_!M4oC!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0df4c19c-735b-48b7-9389-a3c064f094f9_2128x1278.png 848w, /__u/substackcdn.com/image/fetch/$s_!M4oC!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0df4c19c-735b-48b7-9389-a3c064f094f9_2128x1278.png 1272w, /__u/substackcdn.com/image/fetch/$s_!M4oC!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0df4c19c-735b-48b7-9389-a3c064f094f9_2128x1278.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!M4oC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0df4c19c-735b-48b7-9389-a3c064f094f9_2128x1278.png" width="1456" height="874" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0df4c19c-735b-48b7-9389-a3c064f094f9_2128x1278.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:874,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:309293,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/210683727?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0df4c19c-735b-48b7-9389-a3c064f094f9_2128x1278.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!M4oC!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0df4c19c-735b-48b7-9389-a3c064f094f9_2128x1278.png 424w, /__u/substackcdn.com/image/fetch/$s_!M4oC!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0df4c19c-735b-48b7-9389-a3c064f094f9_2128x1278.png 848w, /__u/substackcdn.com/image/fetch/$s_!M4oC!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0df4c19c-735b-48b7-9389-a3c064f094f9_2128x1278.png 1272w, /__u/substackcdn.com/image/fetch/$s_!M4oC!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0df4c19c-735b-48b7-9389-a3c064f094f9_2128x1278.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>( <em>I had to change from display(table) to print(table).</em> )</p><p>It looks like we got about the same runtime, 177.7s, which is great, considering we used the smallest compute on the market.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!VMju!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c1152d9-c6f4-4d34-98e1-4e8f659eade0_1808x740.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!VMju!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c1152d9-c6f4-4d34-98e1-4e8f659eade0_1808x740.png 424w, /__u/substackcdn.com/image/fetch/$s_!VMju!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c1152d9-c6f4-4d34-98e1-4e8f659eade0_1808x740.png 848w, /__u/substackcdn.com/image/fetch/$s_!VMju!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c1152d9-c6f4-4d34-98e1-4e8f659eade0_1808x740.png 1272w, /__u/substackcdn.com/image/fetch/$s_!VMju!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c1152d9-c6f4-4d34-98e1-4e8f659eade0_1808x740.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!VMju!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c1152d9-c6f4-4d34-98e1-4e8f659eade0_1808x740.png" width="1456" height="596" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2c1152d9-c6f4-4d34-98e1-4e8f659eade0_1808x740.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:596,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:242612,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/210683727?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c1152d9-c6f4-4d34-98e1-4e8f659eade0_1808x740.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!VMju!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c1152d9-c6f4-4d34-98e1-4e8f659eade0_1808x740.png 424w, /__u/substackcdn.com/image/fetch/$s_!VMju!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c1152d9-c6f4-4d34-98e1-4e8f659eade0_1808x740.png 848w, /__u/substackcdn.com/image/fetch/$s_!VMju!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c1152d9-c6f4-4d34-98e1-4e8f659eade0_1808x740.png 1272w, /__u/substackcdn.com/image/fetch/$s_!VMju!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c1152d9-c6f4-4d34-98e1-4e8f659eade0_1808x740.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Ok, I think it&#8217;s time to stop our testing of Sail and LakeSail, if they are one and the same, and just make a few comments about what we&#8217;ve seen so far. </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/lakesail-replacing-spark-with-rust?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/p/lakesail-replacing-spark-with-rust?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share"><span>Share</span></a></p><div><hr></div><h3>The TDLR on LakeSail and the future of Spark.</h3><p>Wow, what can I say? I literally knew nothing about Sail when I opened my Chrome browser to start writing this &#8230; and now I feel like I still know nothing about Sail! Hahaha! I sort of say that tongue-in-cheek, but it&#8217;s hard to give the proper time and space to brand-new tools like this in only a day or two. But we played enough to discuss some high-level concepts.</p><p>Firstly, it&#8217;s so interesting that you and I live in the age of the upstarts, all coming yapping and nipping at the heels of Apache Spark. There is nothing inherently wrong with Apache Spark; it&#8217;s been the backbone of data and analytics for a decade at this point. <mark data-color="#d9d2e9" style="background-color: rgb(217, 210, 233); color: rgb(0, 0, 0);">But it shows how far that data community has come, and how much the data landscape has changed. Today's data requirements are not the same as they were 10 years ago.</mark></p><p>LakeSail puts those needs at the forefront and solves them. We&#8217;ve seen these shifts across the tech landscape at large.</p><ul><li><p>Moving away from the JVM toward Rust.</p></li><li><p>Apache Arrow underpinning everything.</p></li><li><p>Crunching more data with less compute.</p></li><li><p>Reducing compute costs.</p></li><li><p>Reducing complexity.</p></li></ul><blockquote><p>Like all good humans, data folk want their data faster, cheaper, and right now! </p></blockquote><p>LakeSail, the SaaS platform itself, I thought, was wonderfully nice and easy to use. You would be surprised how many people get this wrong. The onboarding experience, the simple UI, and the ease of use and navigation. Providing a Data Platform experience that developers enjoy and find to be a low barrier to entry is priceless. It means LakeSail is doing things and going places.</p><p>Sail, as a technology in and of itself, I don&#8217;t have much to comment on, other than that it is brilliant. The idea to support the Spark Connect Protocol was a genius move. It takes all the arguments about migration away. There is no code rewrite; lift-and-shift has always been a problem, and Sail solved it. I mean, it&#8217;s so easy to use; it makes sense to at least test workloads on LakeSail and see if money can be saved.</p><ul><li><p><em>Remember, this is just my opinion; I have no affiliation with LakeSail. I&#8217;m allowed to say something is good &#8230; when it is good.</em></p></li></ul><p>The only question left nagging in my mind is the performance. I&#8217;m sure that has more to do with me than Sail. I said it before, and it&#8217;s true: for most datasets, Rust, Datafusion, and Arrow are going to beat vanilla Spark. I think maybe that says more about Databricks Serverless running Spark, how good that is, if you want to know my opinion. I can like two tools at once.</p><p>Let me know what you think in the comments.</p><p> </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/lakesail-replacing-spark-with-rust/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/p/lakesail-replacing-spark-with-rust/comments"><span>Leave a comment</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Quasi-Agentic Pipelines with Databricks and Apache Airflow]]></title><description><![CDATA[the strange space in between]]></description><link>https://dataengineeringcentral.substack.com/p/quasi-agentic-pipelines-with-databricks</link><guid isPermaLink="false">https://dataengineeringcentral.substack.com/p/quasi-agentic-pipelines-with-databricks</guid><dc:creator><![CDATA[Daniel Beach]]></dc:creator><pubDate>Mon, 10 Aug 2026 21:23:57 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!zKM5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe95b829-84eb-49fc-b8c5-bb11e0b1451a_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!zKM5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe95b829-84eb-49fc-b8c5-bb11e0b1451a_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!zKM5!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe95b829-84eb-49fc-b8c5-bb11e0b1451a_1672x941.png 424w, /__u/substackcdn.com/image/fetch/$s_!zKM5!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe95b829-84eb-49fc-b8c5-bb11e0b1451a_1672x941.png 848w, /__u/substackcdn.com/image/fetch/$s_!zKM5!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe95b829-84eb-49fc-b8c5-bb11e0b1451a_1672x941.png 1272w, /__u/substackcdn.com/image/fetch/$s_!zKM5!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe95b829-84eb-49fc-b8c5-bb11e0b1451a_1672x941.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!zKM5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe95b829-84eb-49fc-b8c5-bb11e0b1451a_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/be95b829-84eb-49fc-b8c5-bb11e0b1451a_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2200993,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/209699504?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe95b829-84eb-49fc-b8c5-bb11e0b1451a_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!zKM5!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe95b829-84eb-49fc-b8c5-bb11e0b1451a_1672x941.png 424w, /__u/substackcdn.com/image/fetch/$s_!zKM5!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe95b829-84eb-49fc-b8c5-bb11e0b1451a_1672x941.png 848w, /__u/substackcdn.com/image/fetch/$s_!zKM5!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe95b829-84eb-49fc-b8c5-bb11e0b1451a_1672x941.png 1272w, /__u/substackcdn.com/image/fetch/$s_!zKM5!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe95b829-84eb-49fc-b8c5-bb11e0b1451a_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Yet another day passes with me casting a lazy eye over the endless dribble of marketing-produced content on the once-glorious but now fallen LinkedIn; at the intersection of <mark data-color="#93c47d" style="background-color: rgb(147, 196, 125); color: rgb(0, 0, 0);">Agentic/LLMs and Data</mark>, if you allow me to call it that. The winds of change are blowing hard, and it&#8217;s difficult to decipher the real from the classic hello-world demo tricks. A wise man once said that &#8220;<em>all things are possible, not all things are profitable.</em>&#8221;</p><p>What we really need, what I need, is more real-life examples of building <strong>quasi-agentic pipelines</strong> (data) that walk the thin red line down the middle of the road. Most of us have no desire for the Gas Town and Loop your Prompt Bros that hammer at us incessantly at every waking hour. There is also a very real need for Data Engineers and data practitioners generally to accept the world has changed, and we need to provide useful solutions to the business; some of those include providing the ability to add LLMs/Agents into our existing data workflows.</p><div class="callout-block" data-callout="true"><p>Well, so add a Task to the pipeline that calls an API endpoint that just happens to be an LLM. Isn&#8217;t it that easy? Yes and No &#8230; of course.</p></div><p>I wanted to show and talk about two things today that may or may not be interesting to you. Mostly as a way of <strong>providing a third point of view</strong> into the morass of Agentic discourse, once that is grounded more in reality, while slowly trying to incorporate new things into old tools. A practical approach to agents/LLMs inside data workflows and pipelines.</p><ol><li><p>Using the same old tools &#8230; Databricks and Apache Airflow to solve new Agentic problems that the business wants solutions to.</p></li><li><p>Talking about determinism in data pipelines and bridging the gap between what the business wants you to do and how you do it as an Engineer and Architect.</p></li></ol><blockquote><p>One will be moderately technical, the other philosophical and <em>*gasp</em> political. </p></blockquote><div><hr></div><div class="callout-block" data-callout="true"><p><em><strong><span>Thanks to </span><a href="http://www.delta.io/">Delta</a><span> for sponsoring this newsletter! I use Delta Lake daily, and I believe it represents the future of Data Engineering. Content like this would not be possible without their support. Check out </span><a href="http://www.delta.io/">their website</a><span> below.</span></strong></em></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!-lEb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6dbe7d7f-da4a-4d3c-9e7b-0655e541dfb7_600x123.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!-lEb!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6dbe7d7f-da4a-4d3c-9e7b-0655e541dfb7_600x123.webp 424w, /__u/substackcdn.com/image/fetch/$s_!-lEb!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6dbe7d7f-da4a-4d3c-9e7b-0655e541dfb7_600x123.webp 848w, /__u/substackcdn.com/image/fetch/$s_!-lEb!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6dbe7d7f-da4a-4d3c-9e7b-0655e541dfb7_600x123.webp 1272w, /__u/substackcdn.com/image/fetch/$s_!-lEb!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6dbe7d7f-da4a-4d3c-9e7b-0655e541dfb7_600x123.webp 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!-lEb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6dbe7d7f-da4a-4d3c-9e7b-0655e541dfb7_600x123.webp" width="600" height="123" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6dbe7d7f-da4a-4d3c-9e7b-0655e541dfb7_600x123.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:123,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4166,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/209699504?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6dbe7d7f-da4a-4d3c-9e7b-0655e541dfb7_600x123.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!-lEb!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6dbe7d7f-da4a-4d3c-9e7b-0655e541dfb7_600x123.webp 424w, /__u/substackcdn.com/image/fetch/$s_!-lEb!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6dbe7d7f-da4a-4d3c-9e7b-0655e541dfb7_600x123.webp 848w, /__u/substackcdn.com/image/fetch/$s_!-lEb!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6dbe7d7f-da4a-4d3c-9e7b-0655e541dfb7_600x123.webp 1272w, /__u/substackcdn.com/image/fetch/$s_!-lEb!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6dbe7d7f-da4a-4d3c-9e7b-0655e541dfb7_600x123.webp 1456w" sizes="100vw"></picture><div></div></div></a></figure></div></div><div><hr></div><h2>The Agentic &#8220;problem&#8221; in a world that hasn&#8217;t caught up.</h2><p>We are going to start backward today. When introducing today's plan and discussion, I listed the whole &#8220;&#8230; <mark data-color="#ffe599" style="background-color: rgb(255, 229, 153); color: rgb(0, 0, 0);">determinism in data pipelines and bridging the gap between what the business wants</mark>&#8230;&#8221; as part deux, but I&#8217;m going to start from the bottom up and talk about this first because it sets the stage for the more technical solution that I&#8217;ve used to solve this very real business request. <span>First, it isn&#8217;t uncommon in the&nbsp;</span><a href="https://en.wikipedia.org/wiki/Brave_New_World"><span>Brave New World</span></a><span>&nbsp;that we live in to get some version of this request from &#8220;The Business&#8221; or Product &#8230; or the C-Suite; it doesn&#8217;t really matter.</span> We do what we are told.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!wpx1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53a32e50-b0ff-431b-8001-af0ebd7f04a6_1300x558.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!wpx1!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53a32e50-b0ff-431b-8001-af0ebd7f04a6_1300x558.png 424w, /__u/substackcdn.com/image/fetch/$s_!wpx1!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53a32e50-b0ff-431b-8001-af0ebd7f04a6_1300x558.png 848w, /__u/substackcdn.com/image/fetch/$s_!wpx1!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53a32e50-b0ff-431b-8001-af0ebd7f04a6_1300x558.png 1272w, /__u/substackcdn.com/image/fetch/$s_!wpx1!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53a32e50-b0ff-431b-8001-af0ebd7f04a6_1300x558.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!wpx1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53a32e50-b0ff-431b-8001-af0ebd7f04a6_1300x558.png" width="1300" height="558" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/53a32e50-b0ff-431b-8001-af0ebd7f04a6_1300x558.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:558,&quot;width&quot;:1300,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:167802,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/209699504?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53a32e50-b0ff-431b-8001-af0ebd7f04a6_1300x558.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!wpx1!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53a32e50-b0ff-431b-8001-af0ebd7f04a6_1300x558.png 424w, /__u/substackcdn.com/image/fetch/$s_!wpx1!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53a32e50-b0ff-431b-8001-af0ebd7f04a6_1300x558.png 848w, /__u/substackcdn.com/image/fetch/$s_!wpx1!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53a32e50-b0ff-431b-8001-af0ebd7f04a6_1300x558.png 1272w, /__u/substackcdn.com/image/fetch/$s_!wpx1!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53a32e50-b0ff-431b-8001-af0ebd7f04a6_1300x558.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I mean, as I said, it&#8217;s a new world we live in where our most gracious and wonderful business counterparts have learned via ChatGPT and Claude that the sky is the limit. If they can dream it up, apparently we can build it. The issue with this dream of randomly injecting some AI into the middle of an otherwise normal workflow is not new, but is fraught with difficulty and has bred an entire army of consultants and new &#8220;AI Tool(s)&#8221; to do this for us.</p><blockquote><p>So what are you waiting for? <strong><mark data-color="#e06666" style="background-color: rgb(224, 102, 102); color: rgb(0, 0, 0);">Done yet?</mark></strong></p></blockquote><p>With everything that has changed &#8230; one thing has not. The last %10 of that &#8220;easy&#8221; project is where the blood is spilled onto the ground.</p><ul><li><p><em>We can&#8217;t buy and implement a new AI tool for every new use case.</em></p></li><li><p><em>We HAVE to work within the constraints of our existing infrastructure and systems.</em></p></li><li><p><em>We need to deliver reasonable results that meet expectations on a reasonable timeline.</em></p></li></ul><p>The answer to every question involving AI isn&#8217;t simply another tool, package, subscription, some new backflip, and throwing salt under the old oak tree at midnight. We can&#8217;t redesign the entire stack to send rockets to the moon because someone simply wants an LLM/Agentic feature to be added at some random spot. This is not the way. <mark data-color="#93c47d" style="background-color: rgb(147, 196, 125); color: rgb(0, 0, 0);">We need to find the right balance of being problem solvers inside an engineering and business context.</mark> This means we are thoughtful, considerate of cost and time, and focused on good-enough solutions that are a great starting point and don&#8217;t involve signing up for some new year-long SaaS contract just to call an endpoint that has an LLM behind it.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Data Engineering Central is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h2>Apache Airflow + Databricks for LLM integration.</h2><p>Ok, so I just wanted to cover this topic, which won&#8217;t be that exciting, but does contain some interesting talking points that we will get to. Recently, at the day job, I&#8217;ve been working on integrating LLMs into your average, everyday data pipelines in a reasonable manner, without trying to boil the ocean or start over. As an engineer, when I start to solve a problem, I first turn to the tools that I have in front of me. I&#8217;m reluctant to add new tools and infra to an existing stack without good reason.</p><p>Core tenets are &#8230;</p><ul><li><p>simplicity</p></li><li><p>dealing with non-determinism</p></li><li><p>use existing tooling until it doesn&#8217;t work</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!6J8p!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a810299-f989-48d1-9320-2deb563713d5_1064x197.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!6J8p!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a810299-f989-48d1-9320-2deb563713d5_1064x197.webp 424w, /__u/substackcdn.com/image/fetch/$s_!6J8p!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a810299-f989-48d1-9320-2deb563713d5_1064x197.webp 848w, /__u/substackcdn.com/image/fetch/$s_!6J8p!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a810299-f989-48d1-9320-2deb563713d5_1064x197.webp 1272w, /__u/substackcdn.com/image/fetch/$s_!6J8p!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a810299-f989-48d1-9320-2deb563713d5_1064x197.webp 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!6J8p!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a810299-f989-48d1-9320-2deb563713d5_1064x197.webp" width="1064" height="197" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7a810299-f989-48d1-9320-2deb563713d5_1064x197.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:197,&quot;width&quot;:1064,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:12624,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/209699504?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a810299-f989-48d1-9320-2deb563713d5_1064x197.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!6J8p!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a810299-f989-48d1-9320-2deb563713d5_1064x197.webp 424w, /__u/substackcdn.com/image/fetch/$s_!6J8p!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a810299-f989-48d1-9320-2deb563713d5_1064x197.webp 848w, /__u/substackcdn.com/image/fetch/$s_!6J8p!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a810299-f989-48d1-9320-2deb563713d5_1064x197.webp 1272w, /__u/substackcdn.com/image/fetch/$s_!6J8p!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a810299-f989-48d1-9320-2deb563713d5_1064x197.webp 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>This a real data flow inside a Production Airflow DAG. It&#8217;s a mix of normal, Python-centric data tasks and API calls to an LLM that may or may not return what you expect, knowing that downstream tasks depend on these non-deterministic tasks. Sorta like taking your life in your own hands, ya know. &#8220;<em><strong>Claude, don&#8217;t screw this up, no mistakes.</strong></em>&#8221;</p><p><span>Anywho, not sure if you keep up to date on the happenings at Databricks; it can be hard to keep pace. One of the most unsung heroes and cool features on Databricks is&nbsp;</span><a href="https://docs.databricks.com/aws/en/machine-learning/model-serving/create-manage-serving-endpoints"><span>modeling serving endpoints.</span></a><span> Databricks does things well, like it or not, and they make it super simple to create and serve API endpoints for LLMs that you can call with a simple TOKEN.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://docs.databricks.com/aws/en/machine-learning/model-serving/create-manage-serving-endpoints" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!eRV8!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f03aada-e43e-463b-b897-71c6083057a8_918x477.png 424w, /__u/substackcdn.com/image/fetch/$s_!eRV8!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f03aada-e43e-463b-b897-71c6083057a8_918x477.png 848w, /__u/substackcdn.com/image/fetch/$s_!eRV8!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f03aada-e43e-463b-b897-71c6083057a8_918x477.png 1272w, /__u/substackcdn.com/image/fetch/$s_!eRV8!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f03aada-e43e-463b-b897-71c6083057a8_918x477.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!eRV8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f03aada-e43e-463b-b897-71c6083057a8_918x477.png" width="918" height="477" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1f03aada-e43e-463b-b897-71c6083057a8_918x477.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:477,&quot;width&quot;:918,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:79216,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://docs.databricks.com/aws/en/machine-learning/model-serving/create-manage-serving-endpoints&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/209699504?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f03aada-e43e-463b-b897-71c6083057a8_918x477.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!eRV8!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f03aada-e43e-463b-b897-71c6083057a8_918x477.png 424w, /__u/substackcdn.com/image/fetch/$s_!eRV8!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f03aada-e43e-463b-b897-71c6083057a8_918x477.png 848w, /__u/substackcdn.com/image/fetch/$s_!eRV8!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f03aada-e43e-463b-b897-71c6083057a8_918x477.png 1272w, /__u/substackcdn.com/image/fetch/$s_!eRV8!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f03aada-e43e-463b-b897-71c6083057a8_918x477.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>For example, serving an LLM behind an API sounds super complicated, right? This is a sample from a production Terraform file/repo that runs the LLM behind the API calls above, which go to a Databricks Modeling Serving Endpoint. All batteries and bolts included. It&#8217;s amazing that in a few short years we went from the cool kids playing with LLMs to a few lines of code that will spin up a model-serving endpoint ready for use. Simplicity is key; architecturally, implementing features that aren't a burden to the overall system allows us to move on and start providing value for our business.   </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!43XJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6179c474-6a59-474e-8833-7ccc9a6b347a_1600x2310.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!43XJ!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6179c474-6a59-474e-8833-7ccc9a6b347a_1600x2310.png 424w, /__u/substackcdn.com/image/fetch/$s_!43XJ!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6179c474-6a59-474e-8833-7ccc9a6b347a_1600x2310.png 848w, /__u/substackcdn.com/image/fetch/$s_!43XJ!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6179c474-6a59-474e-8833-7ccc9a6b347a_1600x2310.png 1272w, /__u/substackcdn.com/image/fetch/$s_!43XJ!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6179c474-6a59-474e-8833-7ccc9a6b347a_1600x2310.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!43XJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6179c474-6a59-474e-8833-7ccc9a6b347a_1600x2310.png" width="1456" height="2102" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6179c474-6a59-474e-8833-7ccc9a6b347a_1600x2310.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2102,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:391857,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/209699504?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6179c474-6a59-474e-8833-7ccc9a6b347a_1600x2310.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!43XJ!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6179c474-6a59-474e-8833-7ccc9a6b347a_1600x2310.png 424w, /__u/substackcdn.com/image/fetch/$s_!43XJ!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6179c474-6a59-474e-8833-7ccc9a6b347a_1600x2310.png 848w, /__u/substackcdn.com/image/fetch/$s_!43XJ!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6179c474-6a59-474e-8833-7ccc9a6b347a_1600x2310.png 1272w, /__u/substackcdn.com/image/fetch/$s_!43XJ!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6179c474-6a59-474e-8833-7ccc9a6b347a_1600x2310.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I won&#8217;t bore you with the Python DAG and Python function details; they are far from special. Calling a Databricks Model Serving Endpoint from an Airflow DAG is like calling any other API &#8230; the only fizzbuzz being that you aren&#8217;t ever really going to be sure what comes out the other end; you have to design for that ambiguity and non-determinism. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!kSR8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F001d5d90-f567-40df-bbda-53ca97476afb_1600x1378.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!kSR8!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F001d5d90-f567-40df-bbda-53ca97476afb_1600x1378.png 424w, /__u/substackcdn.com/image/fetch/$s_!kSR8!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F001d5d90-f567-40df-bbda-53ca97476afb_1600x1378.png 848w, /__u/substackcdn.com/image/fetch/$s_!kSR8!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F001d5d90-f567-40df-bbda-53ca97476afb_1600x1378.png 1272w, /__u/substackcdn.com/image/fetch/$s_!kSR8!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F001d5d90-f567-40df-bbda-53ca97476afb_1600x1378.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!kSR8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F001d5d90-f567-40df-bbda-53ca97476afb_1600x1378.png" width="1456" height="1254" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/001d5d90-f567-40df-bbda-53ca97476afb_1600x1378.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1254,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:333387,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/209699504?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F001d5d90-f567-40df-bbda-53ca97476afb_1600x1378.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!kSR8!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F001d5d90-f567-40df-bbda-53ca97476afb_1600x1378.png 424w, /__u/substackcdn.com/image/fetch/$s_!kSR8!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F001d5d90-f567-40df-bbda-53ca97476afb_1600x1378.png 848w, /__u/substackcdn.com/image/fetch/$s_!kSR8!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F001d5d90-f567-40df-bbda-53ca97476afb_1600x1378.png 1272w, /__u/substackcdn.com/image/fetch/$s_!kSR8!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F001d5d90-f567-40df-bbda-53ca97476afb_1600x1378.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Again, the point is that you don&#8217;t need some fancy new tool(s) to add &#8220;Agentic&#8221; capabilities to your data pipelines. Sure, if you think you need to rebuild self-healing pipelines run and managed by agents, then yeah, you probably do need to go buy some SaaS. But if you have Databricks and Airflow, two of the most well-known tools known to human-data-kind, then yes, with a little fiddling around, you can add LLM calls into your data pipelines. The biggest problem posed with doing this, as I mentioned a few times above, is how to deal with the <strong>non-determinism.</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!8ZIl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc500420-2410-42c2-bf70-91591c9e9ac0_1374x632.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!8ZIl!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc500420-2410-42c2-bf70-91591c9e9ac0_1374x632.png 424w, /__u/substackcdn.com/image/fetch/$s_!8ZIl!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc500420-2410-42c2-bf70-91591c9e9ac0_1374x632.png 848w, /__u/substackcdn.com/image/fetch/$s_!8ZIl!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc500420-2410-42c2-bf70-91591c9e9ac0_1374x632.png 1272w, /__u/substackcdn.com/image/fetch/$s_!8ZIl!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc500420-2410-42c2-bf70-91591c9e9ac0_1374x632.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!8ZIl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc500420-2410-42c2-bf70-91591c9e9ac0_1374x632.png" width="1374" height="632" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cc500420-2410-42c2-bf70-91591c9e9ac0_1374x632.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:632,&quot;width&quot;:1374,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:122348,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/209699504?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc500420-2410-42c2-bf70-91591c9e9ac0_1374x632.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!8ZIl!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc500420-2410-42c2-bf70-91591c9e9ac0_1374x632.png 424w, /__u/substackcdn.com/image/fetch/$s_!8ZIl!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc500420-2410-42c2-bf70-91591c9e9ac0_1374x632.png 848w, /__u/substackcdn.com/image/fetch/$s_!8ZIl!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc500420-2410-42c2-bf70-91591c9e9ac0_1374x632.png 1272w, /__u/substackcdn.com/image/fetch/$s_!8ZIl!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc500420-2410-42c2-bf70-91591c9e9ac0_1374x632.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Most of us, alot of us, deal in <a href="https://www.databricks.com/blog/what-is-dag">Directed Acyclic Graphs</a>. We have units of work, tasks; they have relationships with other tasks, dependencies, etc. This is, in theory, in direct opposition to inserting LLMs into the mix. <mark data-color="#ff9900" style="background-color: rgb(255, 153, 0); color: rgb(0, 0, 0);">What, at the core, is a DAG?</mark></p><ul><li><p><strong><span>Directed:</span></strong><span> Lines have arrows that show a one-way path / strict dependency from one node to another node.</span></p></li><li><p><strong><span>Acyclic:</span></strong><span> There are no loops &#8230; aka feedback cycles.</span></p></li><li><p><strong><span>Graph:</span></strong><span> A collection of tasks connected together.</span></p></li></ul><p>We have to build some sort of verification into the system; at least we should, unless we are going to close our eyes and let &#8216;er rip, come what may. Which isn&#8217;t the worst idea in the world. I mean who knows what we are asking the LLM to do, it could be any number of things. Clean data, check data, make data, look for this, find that, combine this. Whatever. But, unlike the rest of our DAG, which is most likely a very strict set of code that will return a very specific thing &#8230; we can&#8217;t really say for certain an LLM will do what we ask. At least not 100%</p><blockquote><p>Indeed, a brave new world.</p></blockquote><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/quasi-agentic-pipelines-with-databricks?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Data Engineering Central! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/quasi-agentic-pipelines-with-databricks?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/p/quasi-agentic-pipelines-with-databricks?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share"><span>Share</span></a></p></div><h2>We aren&#8217;t the only ones thinking about this.</h2><p>To be sure, even if you don&#8217;t hear talking heads talking about this one, we aren&#8217;t the only ones mulling over what it means to combine Agents/LLMs with classic data tooling. Apache Airflow itself has deemed it necessary to release a <a href="https://airflow.apache.org/blog/common-ai-provider/">Common AI Provider</a>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://airflow.apache.org/blog/common-ai-provider/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!YAXl!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fd976a7-62a4-4ecd-80ec-bd755ef31c68_2230x942.png 424w, /__u/substackcdn.com/image/fetch/$s_!YAXl!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fd976a7-62a4-4ecd-80ec-bd755ef31c68_2230x942.png 848w, /__u/substackcdn.com/image/fetch/$s_!YAXl!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fd976a7-62a4-4ecd-80ec-bd755ef31c68_2230x942.png 1272w, /__u/substackcdn.com/image/fetch/$s_!YAXl!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fd976a7-62a4-4ecd-80ec-bd755ef31c68_2230x942.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!YAXl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fd976a7-62a4-4ecd-80ec-bd755ef31c68_2230x942.png" width="1456" height="615" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0fd976a7-62a4-4ecd-80ec-bd755ef31c68_2230x942.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:615,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:188719,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://airflow.apache.org/blog/common-ai-provider/&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/209699504?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fd976a7-62a4-4ecd-80ec-bd755ef31c68_2230x942.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!YAXl!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fd976a7-62a4-4ecd-80ec-bd755ef31c68_2230x942.png 424w, /__u/substackcdn.com/image/fetch/$s_!YAXl!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fd976a7-62a4-4ecd-80ec-bd755ef31c68_2230x942.png 848w, /__u/substackcdn.com/image/fetch/$s_!YAXl!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fd976a7-62a4-4ecd-80ec-bd755ef31c68_2230x942.png 1272w, /__u/substackcdn.com/image/fetch/$s_!YAXl!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fd976a7-62a4-4ecd-80ec-bd755ef31c68_2230x942.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>They provide the ability to make single Task Decorator LLM calls. </p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">from pydantic import BaseModel
from airflow.providers.common.compat.sdk import dag, task

@dag
def my_pipeline():
    class Entities(BaseModel):
        names: list[str]
        locations: list[str]

    @task.llm(
        llm_conn_id="my_openai_conn",
        system_prompt="Extract named entities.",
        output_type=Entities,
    )
    def extract(text: str):
        return f"Extract entities from: {text}"

    extract("Alice visited Paris and met Bob in London.")

my_pipeline()
</code></pre></div><p>Even multi-task Agent steps.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">from airflow.providers.common.ai.toolsets.sql import SQLToolset
from airflow.providers.common.compat.sdk import dag, task

@dag
def sql_analyst():
    @task.agent(
        llm_conn_id="my_openai_conn",
        system_prompt="You are a SQL analyst. Use tools to answer questions with data.",
        toolsets=[
            SQLToolset(
                db_conn_id="postgres_default",
                allowed_tables=["customers", "orders"],
                max_rows=20,
            )
        ],
    )
    def analyze(question: str):
        return f"Answer this question about our data: {question}"

    analyze("What are the top 5 customers by order count?")

sql_analyst()</code></pre></div><p>And possibly the scariest of all: LLM Branching, which lets the Agent decide which downstream tasks to run. Yikes!!</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">@task.llm_branch(
    llm_conn_id="my_openai_conn",
    system_prompt="Classify the support ticket priority.",
)
def route_ticket(ticket_text: str):
    return f"Classify this ticket: {ticket_text}"</code></pre></div><p>Heck, they even added Human-in-the-Loop gates!</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">LLMOperator(
    task_id="summarize_report",
    prompt="Summarize the quarterly financial report for stakeholders.",
    llm_conn_id="my_openai_conn",
    require_approval=True,
    approval_timeout=timedelta(hours=24),
    allow_modifications=True,  # reviewer can edit the output
)</code></pre></div><p>Wow, things get a little complicated fast, I methinks. Who knows what the future holds; time will tell. Even though the world of AI seems old, everyone is Clauding their way to glory, as far as REAL Agentic work that gets to be integrated into our existing tech stacks; well, I would argue that we are still in the infant stage of that. Lots of new tooling is being released into the data world for agents; only time will tell what sticks and what doesn&#8217;t.</p><div class="callout-block" data-callout="true"><p>Also, as more time goes by and demand for LLM-integrated data pipelines grows, the community will speak at large about what it likes, doesn&#8217;t like, and the best ways to move forward with integrating tools like DAGs and LLMs. Without experience running these sorts of pipelines in production, it&#8217;s hard to say what the sharp edges and pitfalls are that are hidden under the water.</p></div><p>I personally think that big question isn&#8217;t &#8230;</p><blockquote><p><em>&#8220;How do we insert LLM/Agents into pipelines.&#8221;</em></p></blockquote><p>But rather &#8230;</p><blockquote><p><em>&#8220;How do normal determanstic pipelines integrate with LLM/Agents that are non-determanstic.&#8221;</em></p></blockquote><p>What I mean by this is that it&#8217;s one thing to have a purely LLM/Agent pipeline running, because all the tasks are deemed non-deterministic and encapsulated together. <mark data-color="#6aa84f" style="background-color: rgb(106, 168, 79); color: rgb(0, 0, 0);">It&#8217;s something else to mix the two.</mark> Like I did. Kept a guy up a night, ya know. It&#8217;s walking the fine line between trusting an inherently untrustworthy entity and what were once trustworthy, deterministic pipelines. No more. This is even more important in a Data World. Trust in data is the cornerstone of many a business these days, and the downfall of many. The unknowns of LLMs/Agents getting their hands on the data pipelines definitely raise some interesting questions.</p><p><strong>Have you been playing with LLM/Agentic tasks inside your existing data pipelines? How has it gone? What tools are you using? What do you think the future holds?</strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/quasi-agentic-pipelines-with-databricks/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/p/quasi-agentic-pipelines-with-databricks/comments"><span>Leave a comment</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Solution > Problem.]]></title><description><![CDATA[Don&#8217;t say &#8220;I found a problem.&#8221; Say &#8230; &#8220;I found a problem, here&#8217;s a solution .. and proof.&#8221;]]></description><link>https://dataengineeringcentral.substack.com/p/solution-problem</link><guid isPermaLink="false">https://dataengineeringcentral.substack.com/p/solution-problem</guid><dc:creator><![CDATA[Daniel Beach]]></dc:creator><pubDate>Fri, 07 Aug 2026 11:06:06 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!shwm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdebf5aca-9201-414f-9a6c-3e069b6de813_1376x768.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!shwm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdebf5aca-9201-414f-9a6c-3e069b6de813_1376x768.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!shwm!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdebf5aca-9201-414f-9a6c-3e069b6de813_1376x768.webp 424w, /__u/substackcdn.com/image/fetch/$s_!shwm!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdebf5aca-9201-414f-9a6c-3e069b6de813_1376x768.webp 848w, /__u/substackcdn.com/image/fetch/$s_!shwm!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdebf5aca-9201-414f-9a6c-3e069b6de813_1376x768.webp 1272w, /__u/substackcdn.com/image/fetch/$s_!shwm!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdebf5aca-9201-414f-9a6c-3e069b6de813_1376x768.webp 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!shwm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdebf5aca-9201-414f-9a6c-3e069b6de813_1376x768.webp" width="1376" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/debf5aca-9201-414f-9a6c-3e069b6de813_1376x768.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1376,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:74450,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/209992878?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdebf5aca-9201-414f-9a6c-3e069b6de813_1376x768.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!shwm!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdebf5aca-9201-414f-9a6c-3e069b6de813_1376x768.webp 424w, /__u/substackcdn.com/image/fetch/$s_!shwm!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdebf5aca-9201-414f-9a6c-3e069b6de813_1376x768.webp 848w, /__u/substackcdn.com/image/fetch/$s_!shwm!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdebf5aca-9201-414f-9a6c-3e069b6de813_1376x768.webp 1272w, /__u/substackcdn.com/image/fetch/$s_!shwm!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdebf5aca-9201-414f-9a6c-3e069b6de813_1376x768.webp 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="pullquote"><p><mark data-color="rgb(201, 218, 248)" style="background-color: rgb(201, 218, 248); color: rgb(0, 0, 0);">Hello Pickles. This is a paid subscriber-only post. Thanks for your support; it means a lot. I wouldn&#8217;t be doing what I&#8217;m doing if it wasn&#8217;t for you.</mark></p></div><p>A few things have not changed in the age of AI, where the LLM has replaced 3/4 of the brain power of a whole generation of engineers who once found their meaning in the code they wrote. I mean, I hate to sa&#8230;</p>
      <p>
          <a href="/__u/dataengineeringcentral.substack.com/p/solution-problem">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Keeping Technical Skills in the Age of the LLM]]></title><description><![CDATA[the end of the era and new one beginning]]></description><link>https://dataengineeringcentral.substack.com/p/keeping-technical-skills-in-the-age</link><guid isPermaLink="false">https://dataengineeringcentral.substack.com/p/keeping-technical-skills-in-the-age</guid><dc:creator><![CDATA[Daniel Beach]]></dc:creator><pubDate>Mon, 03 Aug 2026 12:03:12 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!qoLv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f62f7a6-1259-48a6-95f1-69451dc054c2_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!qoLv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f62f7a6-1259-48a6-95f1-69451dc054c2_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!qoLv!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f62f7a6-1259-48a6-95f1-69451dc054c2_1672x941.png 424w, /__u/substackcdn.com/image/fetch/$s_!qoLv!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f62f7a6-1259-48a6-95f1-69451dc054c2_1672x941.png 848w, /__u/substackcdn.com/image/fetch/$s_!qoLv!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f62f7a6-1259-48a6-95f1-69451dc054c2_1672x941.png 1272w, /__u/substackcdn.com/image/fetch/$s_!qoLv!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f62f7a6-1259-48a6-95f1-69451dc054c2_1672x941.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!qoLv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f62f7a6-1259-48a6-95f1-69451dc054c2_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9f62f7a6-1259-48a6-95f1-69451dc054c2_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2711364,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/208586205?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f62f7a6-1259-48a6-95f1-69451dc054c2_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!qoLv!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f62f7a6-1259-48a6-95f1-69451dc054c2_1672x941.png 424w, /__u/substackcdn.com/image/fetch/$s_!qoLv!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f62f7a6-1259-48a6-95f1-69451dc054c2_1672x941.png 848w, /__u/substackcdn.com/image/fetch/$s_!qoLv!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f62f7a6-1259-48a6-95f1-69451dc054c2_1672x941.png 1272w, /__u/substackcdn.com/image/fetch/$s_!qoLv!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f62f7a6-1259-48a6-95f1-69451dc054c2_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I&#8217;ve seen this topic arise a few times, sometimes shouted from a Substack, other times running as a strong undercurrent among some unhappy technologist. Either way, it boils down to the same problem that an entire generation of software engineers and other technical folk are wrestling with ... It&#8217;s even taken on the hues of a life-and-death struggle between two factions.</p><div class="callout-block" data-callout="true"><p><mark data-color="#ffff00" style="background-color: rgb(255, 255, 0); color: rgb(0, 0, 0);">To LLM or not to LLM, that is the question.</mark></p></div><p>Being a person myself who was<span>&nbsp;and is a&nbsp;</span><a href="https://www.confessionsofadataguy.com/my-journey-from-data-analyst-to-senior-data-engineer/"><span>self-taught programmer</span></a><span>, having never taken a CS class in my life, I find the choice between the red and</span> blue pill an incredibly difficult one, depending on the day. God knows what the right answer is; I don&#8217;t know. Most likely it doesn&#8217;t matter, and I will be long gone to the sky or retirement home before the die that has been cast is actually settled. To better help you understand the <strong>epic struggle I find <span>myself battling inside myself every day when I open the terminal to do some work or exploration</span></strong><span>, and in that single split second decide whether I will type &#8220;Claude&#8221;</span> or something of my own choosing, let me take you back to young me.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/subscribe"><span>Subscribe now</span></a></p><div><hr></div><h3>The early years.</h3><p>I come from a family of tinkerers, first mechanical and then digital. <a href="/__u/prairiemeditations.substack.com/">Growing up in the heart of the Midwest</a>, beaten beneath that unforgiving sun, or frozen stiff in the cold north winds of the winter; it would not be uncommon circa 1998 to be found in two distinct places on a Saturday morning.</p><p>{ <em><a href="/__u/prairiemeditations.substack.com/">BTW. I write about those experiences on a separate Substack</a></em>. }</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/prairiemeditations.substack.com/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!50pu!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc43dd706-b8b6-4adc-a790-d70ae275137d_1708x734.png 424w, /__u/substackcdn.com/image/fetch/$s_!50pu!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc43dd706-b8b6-4adc-a790-d70ae275137d_1708x734.png 848w, /__u/substackcdn.com/image/fetch/$s_!50pu!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc43dd706-b8b6-4adc-a790-d70ae275137d_1708x734.png 1272w, /__u/substackcdn.com/image/fetch/$s_!50pu!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc43dd706-b8b6-4adc-a790-d70ae275137d_1708x734.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!50pu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc43dd706-b8b6-4adc-a790-d70ae275137d_1708x734.png" width="1456" height="626" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c43dd706-b8b6-4adc-a790-d70ae275137d_1708x734.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:626,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:669805,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://prairiemeditations.substack.com/&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/208586205?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc43dd706-b8b6-4adc-a790-d70ae275137d_1708x734.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!50pu!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc43dd706-b8b6-4adc-a790-d70ae275137d_1708x734.png 424w, /__u/substackcdn.com/image/fetch/$s_!50pu!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc43dd706-b8b6-4adc-a790-d70ae275137d_1708x734.png 848w, /__u/substackcdn.com/image/fetch/$s_!50pu!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc43dd706-b8b6-4adc-a790-d70ae275137d_1708x734.png 1272w, /__u/substackcdn.com/image/fetch/$s_!50pu!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc43dd706-b8b6-4adc-a790-d70ae275137d_1708x734.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h4><strong>First</strong> &#8230;</h4><blockquote><p>More often than not, I would find myself amusing myself amidst a vast pile of old and decaying cars piled to the sky, otherwise known as a junkyard. Often we would be on the search for a specific make and model, whos general vicinity was hand waved by some mysterious old man with a cigarette hanging out of his mouth standing next a burn barrel spewing forth the blackest smoke. Unless my skinny arms and young fingers were needed to wrench on some hidden corner of an engine, I would happily collect the spare change from the cigarette trays of 100 old cars. Then we would leave.</p></blockquote><h4><strong>Second </strong>&#8230;</h4><blockquote><p>Many a time we would end up at my uncle&#8217;s farm, a lonely spot on the undulating prairie of the North, whose vocation as a shop teacher held many delights for a young boy. He was a most unusual shop teacher for his time; not only could he explain and tear into anything mechanical with delight and knowledge, but he also had a love for computers. It turned out to be a bug that affected a fair number of others, cousins, brothers ... and the like.</p></blockquote><div><hr></div><div class="callout-block" data-callout="true"><p><span>Today&#8217;s sponsor is </span><a href="https://estuary.dev/capabilities/agent-skills/">Estuary</a><span>. Without them, this content isn&#8217;t possible. The best way to support this Substack is to click the links below and give </span><a href="https://estuary.dev/capabilities/agent-skills/">Estuary</a><span> a try.</span></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://estuary.dev/capabilities/agent-skills/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!sh9g!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F519abb6f-9f0c-41d6-9e62-e83c2ff815cb_200x200.png 424w, /__u/substackcdn.com/image/fetch/$s_!sh9g!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F519abb6f-9f0c-41d6-9e62-e83c2ff815cb_200x200.png 848w, /__u/substackcdn.com/image/fetch/$s_!sh9g!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F519abb6f-9f0c-41d6-9e62-e83c2ff815cb_200x200.png 1272w, /__u/substackcdn.com/image/fetch/$s_!sh9g!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F519abb6f-9f0c-41d6-9e62-e83c2ff815cb_200x200.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!sh9g!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F519abb6f-9f0c-41d6-9e62-e83c2ff815cb_200x200.png" width="200" height="200" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/519abb6f-9f0c-41d6-9e62-e83c2ff815cb_200x200.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:200,&quot;width&quot;:200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:13597,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://estuary.dev/capabilities/agent-skills/&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/207708512?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F519abb6f-9f0c-41d6-9e62-e83c2ff815cb_200x200.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="/__u/substackcdn.com/image/fetch/$s_!sh9g!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F519abb6f-9f0c-41d6-9e62-e83c2ff815cb_200x200.png 424w, /__u/substackcdn.com/image/fetch/$s_!sh9g!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F519abb6f-9f0c-41d6-9e62-e83c2ff815cb_200x200.png 848w, /__u/substackcdn.com/image/fetch/$s_!sh9g!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F519abb6f-9f0c-41d6-9e62-e83c2ff815cb_200x200.png 1272w, /__u/substackcdn.com/image/fetch/$s_!sh9g!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F519abb6f-9f0c-41d6-9e62-e83c2ff815cb_200x200.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p><strong><a href="https://estuary.dev/capabilities/agent-skills/">Pipelines built by an agent, orchestrated by you</a></strong></p><p>Estuary Agent Skills lets your AI assistant draft production-grade data pipelines from a plain-language description, right inside Claude Code, Cursor, or the tool you already use. The output is config in your repo, not a black box. You review the diff, approve it, version it, and roll it back like any other infrastructure. Same runtime as every other Estuary pipeline. No separate &#8220;agent mode.&#8221;</p><p><a href="https://estuary.dev/capabilities/agent-skills/">Install the skill and ship your first pipeline &#8594;</a></p></div><p>I caught that bug young. Sitting in front of his Mac II, or later in front of Netscape, I felt that dial-up tone do something to my heart and mind I cannot explain. <mark data-color="#b6d7a8" style="background-color: rgb(182, 215, 168); color: rgb(0, 0, 0);">If you know, you know.</mark> What followed in the years before and after was an ever-increasing obsession with computers and all that they could do.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!xuBY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4031965d-f387-4047-84a6-5a1c6790332d_1874x822.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!xuBY!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4031965d-f387-4047-84a6-5a1c6790332d_1874x822.png 424w, /__u/substackcdn.com/image/fetch/$s_!xuBY!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4031965d-f387-4047-84a6-5a1c6790332d_1874x822.png 848w, /__u/substackcdn.com/image/fetch/$s_!xuBY!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4031965d-f387-4047-84a6-5a1c6790332d_1874x822.png 1272w, /__u/substackcdn.com/image/fetch/$s_!xuBY!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4031965d-f387-4047-84a6-5a1c6790332d_1874x822.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!xuBY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4031965d-f387-4047-84a6-5a1c6790332d_1874x822.png" width="1456" height="639" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4031965d-f387-4047-84a6-5a1c6790332d_1874x822.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:639,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!xuBY!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4031965d-f387-4047-84a6-5a1c6790332d_1874x822.png 424w, /__u/substackcdn.com/image/fetch/$s_!xuBY!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4031965d-f387-4047-84a6-5a1c6790332d_1874x822.png 848w, /__u/substackcdn.com/image/fetch/$s_!xuBY!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4031965d-f387-4047-84a6-5a1c6790332d_1874x822.png 1272w, /__u/substackcdn.com/image/fetch/$s_!xuBY!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4031965d-f387-4047-84a6-5a1c6790332d_1874x822.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Sure, I would leave his house and drive the dirty gravel roads another five miles to my grandmother&#8217;s farm, where I would promptly seat myself on the top of the D17 Allis Chalmers (<em>a tractor</em> &#128668;) with either a shotgun or fishing pole cradled in my lap, depending on the season. This was my experience growing up, and still is to some extent today.</p><div class="callout-block" data-callout="true"><p>I spent hours, nay, days, playing Myst, Doom, Yahoo Pool, chatting on MSN Messenger trying to find a girlfriend, World of Warcraft, later Battlefield 1942, and Halo, Limewire, while at the same time perfectly content to roam the woods and waters looking for the next meal.</p></div><p>Early on, I learned about Perl from a cousin I worshipped and became enamored with the terminal. From an older brother, I learned of something called PHP. The rest, as they say, is history. I spent my high school and college years working with the LAMP stack, picking up Objective-C, Droomla, hand-rolling servers, MySQL, CSS, HTML, PHP, and my beloved Perl. Mostly as a hobby, one of many, but I never thought of it as a career.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!XnEw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab385e2f-7604-42d4-836e-e2ad7954f1fe_2032x1146.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!XnEw!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab385e2f-7604-42d4-836e-e2ad7954f1fe_2032x1146.png 424w, /__u/substackcdn.com/image/fetch/$s_!XnEw!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab385e2f-7604-42d4-836e-e2ad7954f1fe_2032x1146.png 848w, /__u/substackcdn.com/image/fetch/$s_!XnEw!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab385e2f-7604-42d4-836e-e2ad7954f1fe_2032x1146.png 1272w, /__u/substackcdn.com/image/fetch/$s_!XnEw!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab385e2f-7604-42d4-836e-e2ad7954f1fe_2032x1146.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!XnEw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab385e2f-7604-42d4-836e-e2ad7954f1fe_2032x1146.png" width="1456" height="821" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ab385e2f-7604-42d4-836e-e2ad7954f1fe_2032x1146.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:821,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3718784,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/208586205?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab385e2f-7604-42d4-836e-e2ad7954f1fe_2032x1146.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!XnEw!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab385e2f-7604-42d4-836e-e2ad7954f1fe_2032x1146.png 424w, /__u/substackcdn.com/image/fetch/$s_!XnEw!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab385e2f-7604-42d4-836e-e2ad7954f1fe_2032x1146.png 848w, /__u/substackcdn.com/image/fetch/$s_!XnEw!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab385e2f-7604-42d4-836e-e2ad7954f1fe_2032x1146.png 1272w, /__u/substackcdn.com/image/fetch/$s_!XnEw!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab385e2f-7604-42d4-836e-e2ad7954f1fe_2032x1146.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/keeping-technical-skills-in-the-age?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Data Engineering Central! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/keeping-technical-skills-in-the-age?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/p/keeping-technical-skills-in-the-age?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share"><span>Share</span></a></p></div><div><hr></div><h2>How do we save our souls from the Agentic Devil(s)?</h2><p>So, with that long-winded and highly short view to the past, from the days before we even had StackOverflow to tell us we were absolute idiots not worthy to touch the keyboard for asking a question; we come to the crux of the position programmers find ourselves in. In some respects I envy the new breed of developers who come of age when Claudius Maximus reigns supreme; they don&#8217;t know what they don&#8217;t know; those little buggers probably sleep like logs.</p><p>Not me.</p><p>The existential crisis we find ourselves in, much like Neo, is: do we accept what we don't like, or do we fight back against the Machine? Like <a href="https://matrix.fandom.com/wiki/Cypher">Cypher</a> do we sell our birthright for a bowl of porridge, or in his case, a nice juicy steak?</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!awLl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb97a3868-1a91-4aae-9ec4-9d649d50003c_336x140.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!awLl!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb97a3868-1a91-4aae-9ec4-9d649d50003c_336x140.gif 424w, /__u/substackcdn.com/image/fetch/$s_!awLl!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb97a3868-1a91-4aae-9ec4-9d649d50003c_336x140.gif 848w, /__u/substackcdn.com/image/fetch/$s_!awLl!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb97a3868-1a91-4aae-9ec4-9d649d50003c_336x140.gif 1272w, /__u/substackcdn.com/image/fetch/$s_!awLl!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb97a3868-1a91-4aae-9ec4-9d649d50003c_336x140.gif 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!awLl!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb97a3868-1a91-4aae-9ec4-9d649d50003c_336x140.gif" width="336" height="140" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b97a3868-1a91-4aae-9ec4-9d649d50003c_336x140.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:140,&quot;width&quot;:336,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!awLl!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb97a3868-1a91-4aae-9ec4-9d649d50003c_336x140.gif 424w, /__u/substackcdn.com/image/fetch/$s_!awLl!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb97a3868-1a91-4aae-9ec4-9d649d50003c_336x140.gif 848w, /__u/substackcdn.com/image/fetch/$s_!awLl!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb97a3868-1a91-4aae-9ec4-9d649d50003c_336x140.gif 1272w, /__u/substackcdn.com/image/fetch/$s_!awLl!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb97a3868-1a91-4aae-9ec4-9d649d50003c_336x140.gif 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><blockquote><p>Chew on that AI goodness, that sloppy code spewed out, just close your eyes and tab your way to a PR.</p></blockquote><p>Look, we programmers have to eat. That&#8217;s what the luddites and witch hunters of old who refuse to dain to bend the knee to the AI gods are missing.<strong> It&#8217;s the context that matters. </strong>Some of us are gainfully employed by companies who, fully within their rights, have decided that the use of Agents in coding is the way forward and the future. If you refuse to drink from the cup, you are sealing your own fate. <mark data-color="#ff9900" style="background-color: rgb(255, 153, 0); color: rgb(0, 0, 0);">We can&#8217;t simply bite the hand that feeds us. </mark> We don&#8217;t have that luxury. We have mortgage payments, kids, cars, gas, healthcare, Big Slurps from the corner store; ya know, we don&#8217;t want to live in a van down by the river. At least not yet.</p><div class="callout-block" data-callout="true"><p>We do what we are paid to do. If we are inside a culture that encourages and tells you to use Agents for all aspects of the Software Lifecycle &#8230; then we do what we are told.</p></div><p>You can&#8217;t put the cat back in the bag. Indeed, at least in the short term, there are many aspects of the Software Lifecycle that benefit greatly with the use of LLMs.</p><ul><li><p>Infra as Code</p></li><li><p>Documentation</p></li><li><p>Testing</p></li><li><p>Research</p></li><li><p>Finding edge cases</p></li><li><p>Exploring architectures and options</p></li><li><p>Generating boilerplate</p></li><li><p>Projecting planning</p></li></ul><p>Even for those people that hate LLMs for coding can&#8217;t reasonably deny the use of Agents in these basic concepts. An LLM paired with a Senior+ Engineer is a sight to behold; the speed of what can be researched, planned, and built&#8230; is amazing. <mark data-color="#e06666" style="background-color: rgb(224, 102, 102); color: rgb(0, 0, 0);">Yet, the very elixer we drink can posion us.</mark></p><p>Yes, of course, with a few decades of experience and Claude, I can single-handedly output unthinkable amounts of code, features, research, plans, etc. But I do think all is as it seems. We have known, collectively, for some time that software solutions are more than just code. Software involves end users, engineers, product-market fit, cost, infra, on-call, alerts, monitoring, data, analytics, teams, inter-team communication, stakeholders, <em>and the list goes on</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Data Engineering Central is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h2>The core issue(s) with The Vibes.</h2><p>There is a time to vibe, and a time not to vibe. We have to be realistic about the business we operate in and the Vibes that call out to us from the terminal. A person/team can get into serious trouble without strong boundaries and leadership in the age of The Agent. You can very quickly vibe yourself into a corner that is hard to get out of. All of a sudden, those sweet tokens that were once an offering of incense sent up to Saint Anthropic will become a bitter pill.</p><blockquote><p>Here are some extermely obvious gotchas.</p></blockquote><div class="callout-block" data-callout="true"><ul><li><p>In a codebase with lots of Vibes &#8230; no one really understands what&#8217;s happening and why.</p></li><li><p>Over time, The Vibes will erode the skills of those you depend on to keep &#8220;things running.&#8221;</p></li><li><p>The Vibes will cause you to move faster than you should. Solutions will come before thoughts.</p></li><li><p>Less code means fewer bugs and a better overall experience; The Vibes will have the opposite effect.</p></li><li><p>It isn&#8217;t possible to review the amount of Vibes that are produced.</p></li><li><p>The Vibes can become a serious lynchpin and breaking point. (think something breaks and Claude is down)</p></li><li><p>You're one bad Vibe away from production destruction or security breach.</p></li></ul></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://scet.berkeley.edu/the-next-next-big-thing-agentic-ais-opportunities-and-risks/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!u2FF!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a0b8b3e-35c2-4370-bdfb-fa6e682770ea_2246x1150.png 424w, /__u/substackcdn.com/image/fetch/$s_!u2FF!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a0b8b3e-35c2-4370-bdfb-fa6e682770ea_2246x1150.png 848w, /__u/substackcdn.com/image/fetch/$s_!u2FF!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a0b8b3e-35c2-4370-bdfb-fa6e682770ea_2246x1150.png 1272w, /__u/substackcdn.com/image/fetch/$s_!u2FF!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a0b8b3e-35c2-4370-bdfb-fa6e682770ea_2246x1150.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!u2FF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a0b8b3e-35c2-4370-bdfb-fa6e682770ea_2246x1150.png" width="1456" height="746" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6a0b8b3e-35c2-4370-bdfb-fa6e682770ea_2246x1150.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:746,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:190360,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://scet.berkeley.edu/the-next-next-big-thing-agentic-ais-opportunities-and-risks/&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/208586205?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a0b8b3e-35c2-4370-bdfb-fa6e682770ea_2246x1150.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!u2FF!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a0b8b3e-35c2-4370-bdfb-fa6e682770ea_2246x1150.png 424w, /__u/substackcdn.com/image/fetch/$s_!u2FF!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a0b8b3e-35c2-4370-bdfb-fa6e682770ea_2246x1150.png 848w, /__u/substackcdn.com/image/fetch/$s_!u2FF!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a0b8b3e-35c2-4370-bdfb-fa6e682770ea_2246x1150.png 1272w, /__u/substackcdn.com/image/fetch/$s_!u2FF!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a0b8b3e-35c2-4370-bdfb-fa6e682770ea_2246x1150.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://economics.mit.edu/sites/default/files/2026-02/AI%2C%20Human%20Cognition%20and%20Knowledge%20Collapse%2002-20-26.pdf" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!j3Qy!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16779cf1-bd96-4edf-ba3a-2d4772aab333_1404x758.png 424w, /__u/substackcdn.com/image/fetch/$s_!j3Qy!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16779cf1-bd96-4edf-ba3a-2d4772aab333_1404x758.png 848w, /__u/substackcdn.com/image/fetch/$s_!j3Qy!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16779cf1-bd96-4edf-ba3a-2d4772aab333_1404x758.png 1272w, /__u/substackcdn.com/image/fetch/$s_!j3Qy!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16779cf1-bd96-4edf-ba3a-2d4772aab333_1404x758.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!j3Qy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16779cf1-bd96-4edf-ba3a-2d4772aab333_1404x758.png" width="1404" height="758" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/16779cf1-bd96-4edf-ba3a-2d4772aab333_1404x758.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:758,&quot;width&quot;:1404,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:157563,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://economics.mit.edu/sites/default/files/2026-02/AI%2C%20Human%20Cognition%20and%20Knowledge%20Collapse%2002-20-26.pdf&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/208586205?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16779cf1-bd96-4edf-ba3a-2d4772aab333_1404x758.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!j3Qy!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16779cf1-bd96-4edf-ba3a-2d4772aab333_1404x758.png 424w, /__u/substackcdn.com/image/fetch/$s_!j3Qy!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16779cf1-bd96-4edf-ba3a-2d4772aab333_1404x758.png 848w, /__u/substackcdn.com/image/fetch/$s_!j3Qy!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16779cf1-bd96-4edf-ba3a-2d4772aab333_1404x758.png 1272w, /__u/substackcdn.com/image/fetch/$s_!j3Qy!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16779cf1-bd96-4edf-ba3a-2d4772aab333_1404x758.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The problem is that Agentic Coding is a new frontier, pun intended; we don&#8217;t know, and won&#8217;t know the full effects until years from now. We know that it&#8217;s not going anywhere; businesses everywhere are scrambling to get on the Agentic Bandwagon without much thought for the unintended side effects &#8230; if there are some.</p><blockquote><p>I can feel the change in my bones, can you?</p></blockquote><p>After weeks of the Vibes planning a new project, researching, MVPs, spewing out code that works, understanding what went wrong, trying to tweak a complicated piece I never wrote, incorporating more business logic &#8230;&nbsp;<strong>I can FEEL the difference.</strong> I can feel the difference in the solution; I can also feel the difference inside myself when I start on the next project.</p><p>I&#8217;m not as sharp. My mind is overcrowded, foggy, dull.</p><p>Maybe it&#8217;s the speed at which we are now required to attempt to comprehend complex solutions and their various impacts on the business, people, and projects. Technical and non-technical processes that took days and weeks collapsed down into ten minutes of tokens. How can you really understand the impacts of what is happening, the side effects, the best choice? Talk to the relevant stakeholders and read between the lines of what they need and want. <strong>You can&#8217;t. </strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/keeping-technical-skills-in-the-age?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/p/keeping-technical-skills-in-the-age?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share"><span>Share</span></a></p><div><hr></div><h2>How to not lose your technical skills when Vibing.</h2><p>There is a time to vibe, and a time not to vibe. We have to be realistic about the business we operate in and the vibes that are expected of us. We have to pay The Piper that pays us; do what they want. <mark data-color="#6aa84f" style="background-color: rgb(106, 168, 79); color: rgb(0, 0, 0);">But you do have skin in the game. </mark><em><mark data-color="#6aa84f" style="background-color: rgb(106, 168, 79); color: rgb(0, 0, 0);">You have your technical skills and abilities hanging in the balance.</mark></em> One must remember that most of us are just little pawns acting within a cosmic game of chess. You should be wise and understand that your technical skills gleaned over years and decades are what make you &#8230; you. They are what make you valuable in the marketplace, set you apart.</p><blockquote><p>Do you really want to walk away from all actions that caused you to learn and grow, just so you can meet a token budget and get the Vibes out 6 hours faster than your coworker? That is short term thinking that will bit you in the !@#$ later.</p></blockquote><p>Say what you want, if you write no code yourself, and simply review code, barely, for weeks, months &#8230; a year; will you still be the same programmer a year later? No, you will not. It&#8217;s not magic. Practice makes perfect; if you don&#8217;t practice, you will lose the skill(s) over time. All that research, talking to stakeholders, writing the minutiae of code, thinking about tradeoffs, MVPs, POCs; when you put your hand to the plow, you get calluses that help you the next time around.</p><div class="callout-block" data-callout="true"><p>So, getting down to brass tacks, how can we not lose technical skills in the Age of AI?</p></div><div><hr></div><h3>5 steps to keep your skills sharp.</h3><p>Remember, you are your own best investment; putting time into you will give the best ROI. No one else is sitting around thinking about the you that will exist 10 years from now, what your professional life and skills will look like. Will you be stronger, or atrophy into oblivion?</p><ul><li><p><mark data-color="#a2c4c9" style="background-color: rgb(162, 196, 201); color: rgb(0, 0, 0);">Here is what I do to keep my technical skills sharp.</mark></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!HVfJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad463142-de42-44ca-b161-330c6b011bfc_1522x1076.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!HVfJ!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad463142-de42-44ca-b161-330c6b011bfc_1522x1076.png 424w, /__u/substackcdn.com/image/fetch/$s_!HVfJ!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad463142-de42-44ca-b161-330c6b011bfc_1522x1076.png 848w, /__u/substackcdn.com/image/fetch/$s_!HVfJ!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad463142-de42-44ca-b161-330c6b011bfc_1522x1076.png 1272w, /__u/substackcdn.com/image/fetch/$s_!HVfJ!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad463142-de42-44ca-b161-330c6b011bfc_1522x1076.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!HVfJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad463142-de42-44ca-b161-330c6b011bfc_1522x1076.png" width="1456" height="1029" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ad463142-de42-44ca-b161-330c6b011bfc_1522x1076.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1029,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:208597,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/208586205?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad463142-de42-44ca-b161-330c6b011bfc_1522x1076.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!HVfJ!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad463142-de42-44ca-b161-330c6b011bfc_1522x1076.png 424w, /__u/substackcdn.com/image/fetch/$s_!HVfJ!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad463142-de42-44ca-b161-330c6b011bfc_1522x1076.png 848w, /__u/substackcdn.com/image/fetch/$s_!HVfJ!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad463142-de42-44ca-b161-330c6b011bfc_1522x1076.png 1272w, /__u/substackcdn.com/image/fetch/$s_!HVfJ!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad463142-de42-44ca-b161-330c6b011bfc_1522x1076.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>No rocket science involved, or double backflips; just the simple exercises of your skills and mind that will keep it sharp and on point. Not dulled down by King Claude after handing over some of the most valuable skills you have. We learn through experience, through struggle &#8230; Agents will steal this from you if you are not careful. You will hand over your critical thinking skills, research skills, desire and willingness to learn new languages and concepts, and communication with others. Stop doing things at your own peril. You will truly become a mindless tab engineer, no matter how pretty your prompts are, if you stop learning and growing. Don&#8217;t let the LLM learn for you.</p><h4>1. Write some code by hand.</h4><ul><li><p>Take the time to write some code by hand, even if it is on the weekend. It will force you to think, read, fail, try again, and remember the fundamentals. <em>Things you forget about when you no longer write code.</em></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!ojLT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94c4eca9-37a9-416b-9e02-e8e85c28483b_1522x658.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!ojLT!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94c4eca9-37a9-416b-9e02-e8e85c28483b_1522x658.png 424w, /__u/substackcdn.com/image/fetch/$s_!ojLT!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94c4eca9-37a9-416b-9e02-e8e85c28483b_1522x658.png 848w, /__u/substackcdn.com/image/fetch/$s_!ojLT!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94c4eca9-37a9-416b-9e02-e8e85c28483b_1522x658.png 1272w, /__u/substackcdn.com/image/fetch/$s_!ojLT!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94c4eca9-37a9-416b-9e02-e8e85c28483b_1522x658.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!ojLT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94c4eca9-37a9-416b-9e02-e8e85c28483b_1522x658.png" width="1456" height="629" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/94c4eca9-37a9-416b-9e02-e8e85c28483b_1522x658.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:629,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:456182,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/208586205?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94c4eca9-37a9-416b-9e02-e8e85c28483b_1522x658.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!ojLT!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94c4eca9-37a9-416b-9e02-e8e85c28483b_1522x658.png 424w, /__u/substackcdn.com/image/fetch/$s_!ojLT!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94c4eca9-37a9-416b-9e02-e8e85c28483b_1522x658.png 848w, /__u/substackcdn.com/image/fetch/$s_!ojLT!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94c4eca9-37a9-416b-9e02-e8e85c28483b_1522x658.png 1272w, /__u/substackcdn.com/image/fetch/$s_!ojLT!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94c4eca9-37a9-416b-9e02-e8e85c28483b_1522x658.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h4>2. Read and consume good technical materials.</h4><p>I know there is a lot of &#8220;AI Slop&#8221; out there, some good, some bad; either way, reading and consuming material about other problems people are working on and solving is something that pays back in spades later on down the road. All of the information is like money in the bank that you can draw on later. I read a lot, but a few Substacks like these will keep you informed about what is going on in the greater data and software community.</p><ul><li><p><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Ananth Packkildurai&quot;,&quot;id&quot;:3520227,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ba91c8a2-df2b-4429-91aa-906827650fc7_1792x1792.png&quot;,&quot;uuid&quot;:&quot;ec34e2b5-7889-4e0d-8348-0df81b50560d&quot;}" data-component-name="MentionToDOM"></span> and the <a href="https://www.dataengineeringweekly.com/">Data Engineering Weekly</a> is a must.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.dataengineeringweekly.com/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!Bd1v!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc534316e-c408-4a40-9089-ec79e7da0b68_1522x552.png 424w, /__u/substackcdn.com/image/fetch/$s_!Bd1v!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc534316e-c408-4a40-9089-ec79e7da0b68_1522x552.png 848w, /__u/substackcdn.com/image/fetch/$s_!Bd1v!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc534316e-c408-4a40-9089-ec79e7da0b68_1522x552.png 1272w, /__u/substackcdn.com/image/fetch/$s_!Bd1v!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc534316e-c408-4a40-9089-ec79e7da0b68_1522x552.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!Bd1v!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc534316e-c408-4a40-9089-ec79e7da0b68_1522x552.png" width="1456" height="528" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c534316e-c408-4a40-9089-ec79e7da0b68_1522x552.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:528,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:90542,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.dataengineeringweekly.com/&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/208586205?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc534316e-c408-4a40-9089-ec79e7da0b68_1522x552.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!Bd1v!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc534316e-c408-4a40-9089-ec79e7da0b68_1522x552.png 424w, /__u/substackcdn.com/image/fetch/$s_!Bd1v!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc534316e-c408-4a40-9089-ec79e7da0b68_1522x552.png 848w, /__u/substackcdn.com/image/fetch/$s_!Bd1v!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc534316e-c408-4a40-9089-ec79e7da0b68_1522x552.png 1272w, /__u/substackcdn.com/image/fetch/$s_!Bd1v!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc534316e-c408-4a40-9089-ec79e7da0b68_1522x552.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p>The <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Gergely Orosz&quot;,&quot;id&quot;:30107029,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/58fed27c-f331-4ff3-ba47-135c5a0be0ba_400x400.png&quot;,&quot;uuid&quot;:&quot;ca5de357-97e8-4af3-bc32-87f06d1bfce6&quot;}" data-component-name="MentionToDOM"></span> and <a href="https://newsletter.pragmaticengineer.com/">The Pragmatic Engineer</a> is gold.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://newsletter.pragmaticengineer.com/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!XXQO!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F985b81ee-04eb-47a4-a7bd-78809059ef03_1522x552.png 424w, /__u/substackcdn.com/image/fetch/$s_!XXQO!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F985b81ee-04eb-47a4-a7bd-78809059ef03_1522x552.png 848w, /__u/substackcdn.com/image/fetch/$s_!XXQO!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F985b81ee-04eb-47a4-a7bd-78809059ef03_1522x552.png 1272w, /__u/substackcdn.com/image/fetch/$s_!XXQO!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F985b81ee-04eb-47a4-a7bd-78809059ef03_1522x552.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!XXQO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F985b81ee-04eb-47a4-a7bd-78809059ef03_1522x552.png" width="1456" height="528" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/985b81ee-04eb-47a4-a7bd-78809059ef03_1522x552.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:528,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:373998,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://newsletter.pragmaticengineer.com/&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/208586205?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F985b81ee-04eb-47a4-a7bd-78809059ef03_1522x552.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!XXQO!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F985b81ee-04eb-47a4-a7bd-78809059ef03_1522x552.png 424w, /__u/substackcdn.com/image/fetch/$s_!XXQO!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F985b81ee-04eb-47a4-a7bd-78809059ef03_1522x552.png 848w, /__u/substackcdn.com/image/fetch/$s_!XXQO!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F985b81ee-04eb-47a4-a7bd-78809059ef03_1522x552.png 1272w, /__u/substackcdn.com/image/fetch/$s_!XXQO!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F985b81ee-04eb-47a4-a7bd-78809059ef03_1522x552.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;rmoff&quot;,&quot;id&quot;:75407097,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/f158b62e-f00d-450f-9350-fd8e2895e33d_477x477.png&quot;,&quot;uuid&quot;:&quot;a10194f2-b458-4a4d-8456-79e0f022d093&quot;}" data-component-name="MentionToDOM"></span> and <a href="/__u/interestinglinks.substack.com/?utm_source=substack&amp;utm_campaign=publication_embed&amp;utm_medium=web">Intersting Links in the Data and AI World</a>.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/interestinglinks.substack.com/?utm_source=substack&amp;utm_campaign=publication_embed&amp;utm_medium=web" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!t1t9!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97928964-79db-44c0-9640-4197d59ced4f_1818x678.png 424w, /__u/substackcdn.com/image/fetch/$s_!t1t9!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97928964-79db-44c0-9640-4197d59ced4f_1818x678.png 848w, /__u/substackcdn.com/image/fetch/$s_!t1t9!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97928964-79db-44c0-9640-4197d59ced4f_1818x678.png 1272w, /__u/substackcdn.com/image/fetch/$s_!t1t9!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97928964-79db-44c0-9640-4197d59ced4f_1818x678.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!t1t9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97928964-79db-44c0-9640-4197d59ced4f_1818x678.png" width="1456" height="543" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/97928964-79db-44c0-9640-4197d59ced4f_1818x678.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:543,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:674302,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://interestinglinks.substack.com/?utm_source=substack&amp;utm_campaign=publication_embed&amp;utm_medium=web&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/208586205?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97928964-79db-44c0-9640-4197d59ced4f_1818x678.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!t1t9!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97928964-79db-44c0-9640-4197d59ced4f_1818x678.png 424w, /__u/substackcdn.com/image/fetch/$s_!t1t9!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97928964-79db-44c0-9640-4197d59ced4f_1818x678.png 848w, /__u/substackcdn.com/image/fetch/$s_!t1t9!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97928964-79db-44c0-9640-4197d59ced4f_1818x678.png 1272w, /__u/substackcdn.com/image/fetch/$s_!t1t9!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97928964-79db-44c0-9640-4197d59ced4f_1818x678.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Of course there are many more; I wrote this article on <a href="/__u/dataengineeringcentral.substack.com/p/data-engineering-blogs-to-follow">other blogs I follow</a> if you want some more ideas.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/dataengineeringcentral.substack.com/p/data-engineering-blogs-to-follow" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!LF9h!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bbd8d1e-1b02-423b-9f4a-6e1caf6cf493_1818x678.png 424w, /__u/substackcdn.com/image/fetch/$s_!LF9h!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bbd8d1e-1b02-423b-9f4a-6e1caf6cf493_1818x678.png 848w, /__u/substackcdn.com/image/fetch/$s_!LF9h!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bbd8d1e-1b02-423b-9f4a-6e1caf6cf493_1818x678.png 1272w, /__u/substackcdn.com/image/fetch/$s_!LF9h!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bbd8d1e-1b02-423b-9f4a-6e1caf6cf493_1818x678.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!LF9h!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bbd8d1e-1b02-423b-9f4a-6e1caf6cf493_1818x678.png" width="1456" height="543" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6bbd8d1e-1b02-423b-9f4a-6e1caf6cf493_1818x678.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:543,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:264611,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://dataengineeringcentral.substack.com/p/data-engineering-blogs-to-follow&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/208586205?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bbd8d1e-1b02-423b-9f4a-6e1caf6cf493_1818x678.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!LF9h!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bbd8d1e-1b02-423b-9f4a-6e1caf6cf493_1818x678.png 424w, /__u/substackcdn.com/image/fetch/$s_!LF9h!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bbd8d1e-1b02-423b-9f4a-6e1caf6cf493_1818x678.png 848w, /__u/substackcdn.com/image/fetch/$s_!LF9h!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bbd8d1e-1b02-423b-9f4a-6e1caf6cf493_1818x678.png 1272w, /__u/substackcdn.com/image/fetch/$s_!LF9h!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bbd8d1e-1b02-423b-9f4a-6e1caf6cf493_1818x678.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>It&#8217;s fair to say that you can&#8217;t read enough, and that is the truth. It expands your horizons, opens you up to new technologies and solutions, and what other people are working on; it gets you out of the box that you work inside. </p><div><hr></div><h4>3. Learn new tools and languages. Anything new.</h4><p>When I mean anything, I mean anything. The reason it&#8217;s important to learn new things is that there is usually a fair amount of struggle and work involved. You can&#8217;t ask for a better teacher than something hard that you have to earn. It could be a whole new programming language, maybe a new package you haven&#8217;t tried; sometimes the simple act of solving a &#8220;new-to-you problem&#8221;, even in a caveman-like way, is going to keep your wits sharp.</p><blockquote><p>The worst place youd could possibily be is waking up 1 year from now, with a wonderful Agentic workflow, using the same old prompts and same old tools. <mark data-color="#ea9999" style="background-color: rgb(234, 153, 153); color: rgb(0, 0, 0);">Realizing you &#8230; I mean YOU &#8230; haven&#8217;t hard to struggle to learn a new concept or tool once. </mark></p></blockquote><p>Fight against that tendency to be lazy; push yourself to be uncomfortable; find yourself in a position where you don&#8217;t know what you are doing or what the right answer is. This is the best place you could possibly be. Others will be growing lazy and overfed on their generous allowance of tokens, unable to program their own way out of a box within a short time.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/subscribe"><span>Subscribe now</span></a></p><div><hr></div><h4>4. High-level project planning + critical thinking.</h4><p>The other important part of software projects that is only quasi-technical but core to the way we can deliver good solutions, on time, on budget, that meet our end-users' needs &#8230; is project planning &#8230; and the closely tied skill of critical thinking. Project planning in software requires not only technical know-how, but a wide array of soft skills that reach far into other areas and groups inside whatever business you find yourself in.</p><ul><li><p><em>Understanding and obtaining user requirements and desires.</em></p></li><li><p><em>Understanding the C-Suite and how to play their games.</em></p></li><li><p><em>Thinking about the best solution that can be delivered and how to say no.</em></p></li><li><p><em>How to communicate with others, how to lead by example, and how to bring others along.</em></p></li><li><p><em>Making critical tradeoffs in technical areas and business areas, weighing options and making decisions.</em></p></li><li><p><em>The list goes on.</em></p></li></ul><p>I have used Claude many times to help me plan and suss out the details of many large-scale projects involving multiple people. Sure, it feels good at first; you feel like you&#8217;re getting somewhere without much effort &#8230; the only problem being YOU didn&#8217;t put the time or effort in to think through the options and plan yourself, so you get to watch it slowly unravel, show cracks, and generally feel ill-prepared for the future ahead or answering questions and solving problems that inevitably come.</p><div><hr></div><h4>5. Write and communicate with LLMs.</h4><p>I want to let you in on a little secret. Shhh &#8230; don&#8217;t tell anyone; it&#8217;s a superpower. Did you know that when trying to communicate an idea or message yourself, when you actually write it out yourself or speak it, you actually have to understand it at a deeper level than if an LLM does the work for you?</p><blockquote><p>Shocker, I know.</p></blockquote><p>For example, when I wrote to you about <a href="/__u/dataengineeringcentral.substack.com/p/cloudflare-as-a-data-platform">Cloudflare as a Data Platform</a>, I knew exactly what you did beforehand. Nothing. Zilch. Nada. You know what I knew when I finished? More than I did when I started. Also, alot more than some talking head on Reddit who&#8217;s never actually DONE ANYTHING without Cloudflare. Suprise.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!Djn5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd01c7a2c-a9f2-4dc5-9bc3-3967ba3a10d3_1818x678.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!Djn5!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd01c7a2c-a9f2-4dc5-9bc3-3967ba3a10d3_1818x678.png 424w, /__u/substackcdn.com/image/fetch/$s_!Djn5!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd01c7a2c-a9f2-4dc5-9bc3-3967ba3a10d3_1818x678.png 848w, /__u/substackcdn.com/image/fetch/$s_!Djn5!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd01c7a2c-a9f2-4dc5-9bc3-3967ba3a10d3_1818x678.png 1272w, /__u/substackcdn.com/image/fetch/$s_!Djn5!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd01c7a2c-a9f2-4dc5-9bc3-3967ba3a10d3_1818x678.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!Djn5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd01c7a2c-a9f2-4dc5-9bc3-3967ba3a10d3_1818x678.png" width="1456" height="543" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d01c7a2c-a9f2-4dc5-9bc3-3967ba3a10d3_1818x678.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:543,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:481813,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/208586205?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd01c7a2c-a9f2-4dc5-9bc3-3967ba3a10d3_1818x678.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!Djn5!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd01c7a2c-a9f2-4dc5-9bc3-3967ba3a10d3_1818x678.png 424w, /__u/substackcdn.com/image/fetch/$s_!Djn5!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd01c7a2c-a9f2-4dc5-9bc3-3967ba3a10d3_1818x678.png 848w, /__u/substackcdn.com/image/fetch/$s_!Djn5!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd01c7a2c-a9f2-4dc5-9bc3-3967ba3a10d3_1818x678.png 1272w, /__u/substackcdn.com/image/fetch/$s_!Djn5!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd01c7a2c-a9f2-4dc5-9bc3-3967ba3a10d3_1818x678.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>If you&#8217;re writing a Slack message to a co-worker or boss, and you have to explain why you did something the way you did &#8230; it makes you stop, think, consider. Does this communicate what I want? How will they take it? Do I need to do something else to make this clearer? There are few people more valuable in the marketplace than those who can communicate clearly and are good at it from practice.</p><div><hr></div><h2>At the end of the day.</h2><p>Do what you want at the end of the day; you are your own boss, and you get what you put in. We must just learn to ride the winds and waves of popular opinion in the world of CTOs and do what we are told like good little hobbits. But we must remember that if we turn over the minutiae of how we go about our work day to day, we might wake up and find ourselves worse for wear. I suspect in a year or two, many a once mighty Senior Engineer will find themselves slipped back into the <a href="https://en.wikipedia.org/wiki/Slough_of_Despond">Slough of Despond</a> to wrestle and battle with the Juniors.</p><div class="callout-block" data-callout="true"><p>This will not be the fault of Claude or Anthropic, or your boss. It&#8217;s your fault.</p></div><p>You are smart; you know how you learned and gained experience to land where you are today; it&#8217;s not a secret. You are the one who did it after all. Consider those things. Remember your first love. Code. Read. Learn. Grow.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Data Engineering Central is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[So, is data modeling dead?]]></title><description><![CDATA[was it never alive?]]></description><link>https://dataengineeringcentral.substack.com/p/so-is-data-modeling-dead</link><guid isPermaLink="false">https://dataengineeringcentral.substack.com/p/so-is-data-modeling-dead</guid><dc:creator><![CDATA[Daniel Beach]]></dc:creator><pubDate>Mon, 27 Jul 2026 12:20:21 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!hp0s!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe89e4fd6-d18c-4019-89cd-74d6a118953f_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!hp0s!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe89e4fd6-d18c-4019-89cd-74d6a118953f_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!hp0s!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe89e4fd6-d18c-4019-89cd-74d6a118953f_1672x941.png 424w, /__u/substackcdn.com/image/fetch/$s_!hp0s!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe89e4fd6-d18c-4019-89cd-74d6a118953f_1672x941.png 848w, /__u/substackcdn.com/image/fetch/$s_!hp0s!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe89e4fd6-d18c-4019-89cd-74d6a118953f_1672x941.png 1272w, /__u/substackcdn.com/image/fetch/$s_!hp0s!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe89e4fd6-d18c-4019-89cd-74d6a118953f_1672x941.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!hp0s!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe89e4fd6-d18c-4019-89cd-74d6a118953f_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e89e4fd6-d18c-4019-89cd-74d6a118953f_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2184464,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/207708512?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe89e4fd6-d18c-4019-89cd-74d6a118953f_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!hp0s!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe89e4fd6-d18c-4019-89cd-74d6a118953f_1672x941.png 424w, /__u/substackcdn.com/image/fetch/$s_!hp0s!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe89e4fd6-d18c-4019-89cd-74d6a118953f_1672x941.png 848w, /__u/substackcdn.com/image/fetch/$s_!hp0s!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe89e4fd6-d18c-4019-89cd-74d6a118953f_1672x941.png 1272w, /__u/substackcdn.com/image/fetch/$s_!hp0s!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe89e4fd6-d18c-4019-89cd-74d6a118953f_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I know, probably giving whiplash: one week I'm <a href="/__u/dataengineeringcentral.substack.com/p/aws-lambda-microvms-what-new-devilry">pontificating on some new tool</a>, the next, like this, writing a thesis on the philosophical question of &#8220;<mark data-color="#e06666" style="background-color: rgb(224, 102, 102); color: rgb(0, 0, 0);">Is data modeling dead?</mark>&#8221;</p><p>I've been thinking about this more recently, <a href="https://www.youtube.com/watch?v=nNp1jul4QFs&amp;feature=youtu.be">after talking with Andreas</a> and hearing the strong reactions he has to his belief that <a href="https://www.linkedin.com/posts/andreas-kretz_data-modeling-is-the-most-overrated-then-activity-7474022030116528128-83Ig?utm_source=share&amp;utm_medium=member_desktop&amp;rcm=ACoAACCGWeMBpzyTjCHWjac5iobhsbGE41GBhto">data modeling is (dead) overrated</a>. Maybe he's right. But we also have the indelible <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Joe Reis&quot;,&quot;id&quot;:3531217,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6e4716b1-c223-41e3-b943-def0291bf217_1175x783.jpeg&quot;,&quot;uuid&quot;:&quot;e7e13c77-b286-4e98-b56e-110be27bb38f&quot;}" data-component-name="MentionToDOM"></span> finishing a book on data modeling, and <a href="https://joereis.xyz/">he's the premier thinker of this data decade</a>.</p><p>Truth be told, differing opinions in the data space about pretty much any topic are common and widespread. We all are just the victims of the technologies and jobs/work we&#8217;ve been a part of. Data Modeling is as old as the &#8220;data profession&#8221;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.engineering.upenn.edu/~zives/03f/cis550/codd.pdf" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!usCe!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85a06d21-42a7-4efe-a9d4-b528bcd4f0e1_1472x692.png 424w, /__u/substackcdn.com/image/fetch/$s_!usCe!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85a06d21-42a7-4efe-a9d4-b528bcd4f0e1_1472x692.png 848w, /__u/substackcdn.com/image/fetch/$s_!usCe!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85a06d21-42a7-4efe-a9d4-b528bcd4f0e1_1472x692.png 1272w, /__u/substackcdn.com/image/fetch/$s_!usCe!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85a06d21-42a7-4efe-a9d4-b528bcd4f0e1_1472x692.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!usCe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85a06d21-42a7-4efe-a9d4-b528bcd4f0e1_1472x692.png" width="1456" height="684" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/85a06d21-42a7-4efe-a9d4-b528bcd4f0e1_1472x692.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:684,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:259189,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.engineering.upenn.edu/~zives/03f/cis550/codd.pdf&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/207708512?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85a06d21-42a7-4efe-a9d4-b528bcd4f0e1_1472x692.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!usCe!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85a06d21-42a7-4efe-a9d4-b528bcd4f0e1_1472x692.png 424w, /__u/substackcdn.com/image/fetch/$s_!usCe!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85a06d21-42a7-4efe-a9d4-b528bcd4f0e1_1472x692.png 848w, /__u/substackcdn.com/image/fetch/$s_!usCe!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85a06d21-42a7-4efe-a9d4-b528bcd4f0e1_1472x692.png 1272w, /__u/substackcdn.com/image/fetch/$s_!usCe!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85a06d21-42a7-4efe-a9d4-b528bcd4f0e1_1472x692.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><a href="https://www.engineering.upenn.edu/~zives/03f/cis550/codd.pdf">data modeling circa 1970</a></figcaption></figure></div><p>I mean, if the classic &#8220;relational model&#8221; for data was being written about in 1970, then we are indeed handling a topic that has withstood the sands and flying bytes of time and space. <em>It makes one wonder if in another 50 years, on Mars, someone will be writing another article about the death of data modeling.</em></p><p>Anyways, back to today.</p><p>Clearly, there has been an increased conversation around the topic of data modeling over the last handful of years; it seems like COVID got deep into the brain and made us question everything. <span>It seems like the conversation around data modeling has not been&nbsp;</span><strong>how to do it</strong><span>, but&nbsp;</span><strong>whether it is even relevant</strong><span>.</span></p><div><hr></div><div class="callout-block" data-callout="true"><p>Todays sponsor is <a href="https://estuary.dev/capabilities/agent-skills/">Estuary</a>. Without them this content isn&#8217;t possible. The best way to support this Substack is to click the links below and give <a href="https://estuary.dev/capabilities/agent-skills/">Estuary</a> a try.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://estuary.dev/capabilities/agent-skills/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!sh9g!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F519abb6f-9f0c-41d6-9e62-e83c2ff815cb_200x200.png 424w, /__u/substackcdn.com/image/fetch/$s_!sh9g!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F519abb6f-9f0c-41d6-9e62-e83c2ff815cb_200x200.png 848w, /__u/substackcdn.com/image/fetch/$s_!sh9g!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F519abb6f-9f0c-41d6-9e62-e83c2ff815cb_200x200.png 1272w, /__u/substackcdn.com/image/fetch/$s_!sh9g!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F519abb6f-9f0c-41d6-9e62-e83c2ff815cb_200x200.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!sh9g!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F519abb6f-9f0c-41d6-9e62-e83c2ff815cb_200x200.png" width="200" height="200" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/519abb6f-9f0c-41d6-9e62-e83c2ff815cb_200x200.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:200,&quot;width&quot;:200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:13597,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://estuary.dev/capabilities/agent-skills/&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/207708512?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F519abb6f-9f0c-41d6-9e62-e83c2ff815cb_200x200.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!sh9g!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F519abb6f-9f0c-41d6-9e62-e83c2ff815cb_200x200.png 424w, /__u/substackcdn.com/image/fetch/$s_!sh9g!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F519abb6f-9f0c-41d6-9e62-e83c2ff815cb_200x200.png 848w, /__u/substackcdn.com/image/fetch/$s_!sh9g!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F519abb6f-9f0c-41d6-9e62-e83c2ff815cb_200x200.png 1272w, /__u/substackcdn.com/image/fetch/$s_!sh9g!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F519abb6f-9f0c-41d6-9e62-e83c2ff815cb_200x200.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p><strong><a href="https://estuary.dev/capabilities/agent-skills/">Pipelines built by an agent, orchestrated by you</a></strong></p><p>Estuary Agent Skills lets your AI assistant draft production-grade data pipelines from a plain-language description, right inside Claude Code, Cursor, or the tool you already use. The output is config in your repo, not a black box. You review the diff, approve it, version it, and roll it back like any other infrastructure. Same runtime as every other Estuary pipeline. No separate &#8220;agent mode.&#8221;</p><p><a href="https://estuary.dev/capabilities/agent-skills/">Install the skill and ship your first pipeline &#8594;</a></p></div><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.linkedin.com/posts/andreas-kretz_data-modeling-is-the-most-overrated-then-activity-7474022030116528128-83Ig?utm_source=share&amp;utm_medium=member_desktop&amp;rcm=ACoAACCGWeMBpzyTjCHWjac5iobhsbGE41GBhto" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!9yaM!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c68c304-d50d-4a59-855a-c347fe6944f5_1118x670.png 424w, /__u/substackcdn.com/image/fetch/$s_!9yaM!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c68c304-d50d-4a59-855a-c347fe6944f5_1118x670.png 848w, /__u/substackcdn.com/image/fetch/$s_!9yaM!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c68c304-d50d-4a59-855a-c347fe6944f5_1118x670.png 1272w, /__u/substackcdn.com/image/fetch/$s_!9yaM!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c68c304-d50d-4a59-855a-c347fe6944f5_1118x670.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!9yaM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c68c304-d50d-4a59-855a-c347fe6944f5_1118x670.png" width="1118" height="670" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4c68c304-d50d-4a59-855a-c347fe6944f5_1118x670.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:670,&quot;width&quot;:1118,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:157284,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.linkedin.com/posts/andreas-kretz_data-modeling-is-the-most-overrated-then-activity-7474022030116528128-83Ig?utm_source=share&amp;utm_medium=member_desktop&amp;rcm=ACoAACCGWeMBpzyTjCHWjac5iobhsbGE41GBhto&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/207708512?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c68c304-d50d-4a59-855a-c347fe6944f5_1118x670.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!9yaM!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c68c304-d50d-4a59-855a-c347fe6944f5_1118x670.png 424w, /__u/substackcdn.com/image/fetch/$s_!9yaM!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c68c304-d50d-4a59-855a-c347fe6944f5_1118x670.png 848w, /__u/substackcdn.com/image/fetch/$s_!9yaM!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c68c304-d50d-4a59-855a-c347fe6944f5_1118x670.png 1272w, /__u/substackcdn.com/image/fetch/$s_!9yaM!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c68c304-d50d-4a59-855a-c347fe6944f5_1118x670.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>Is data modeling dead? Overrated? Will it ever return to its former glory as in the days of yore? Was it ever really alive? These questions have been making the rounds for a few years now; maybe it was COVID that did it.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.linkedin.com/posts/josephreis_ryan-dolley-and-i-had-a-great-chat-on-his-ugcPost-7483996824685412352--1VP/?utm_source=share&amp;utm_medium=member_desktop&amp;rcm=ACoAACCGWeMBpzyTjCHWjac5iobhsbGE41GBhto" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!VQqq!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7576cb5-05a4-4b2f-a325-db34aed0da83_1416x490.png 424w, /__u/substackcdn.com/image/fetch/$s_!VQqq!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7576cb5-05a4-4b2f-a325-db34aed0da83_1416x490.png 848w, /__u/substackcdn.com/image/fetch/$s_!VQqq!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7576cb5-05a4-4b2f-a325-db34aed0da83_1416x490.png 1272w, /__u/substackcdn.com/image/fetch/$s_!VQqq!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7576cb5-05a4-4b2f-a325-db34aed0da83_1416x490.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!VQqq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7576cb5-05a4-4b2f-a325-db34aed0da83_1416x490.png" width="1416" height="490" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e7576cb5-05a4-4b2f-a325-db34aed0da83_1416x490.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:490,&quot;width&quot;:1416,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:392922,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.linkedin.com/posts/josephreis_ryan-dolley-and-i-had-a-great-chat-on-his-ugcPost-7483996824685412352--1VP/?utm_source=share&amp;utm_medium=member_desktop&amp;rcm=ACoAACCGWeMBpzyTjCHWjac5iobhsbGE41GBhto&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/207708512?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7576cb5-05a4-4b2f-a325-db34aed0da83_1416x490.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!VQqq!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7576cb5-05a4-4b2f-a325-db34aed0da83_1416x490.png 424w, /__u/substackcdn.com/image/fetch/$s_!VQqq!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7576cb5-05a4-4b2f-a325-db34aed0da83_1416x490.png 848w, /__u/substackcdn.com/image/fetch/$s_!VQqq!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7576cb5-05a4-4b2f-a325-db34aed0da83_1416x490.png 1272w, /__u/substackcdn.com/image/fetch/$s_!VQqq!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7576cb5-05a4-4b2f-a325-db34aed0da83_1416x490.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Even in recent years on Reddit this has come up. Ah &#8230; Reddit, methinks it&#8217;s the new StackOverflow. A place to get raked over the coals and hangout inside an echo chamber. Yet, I do find myself often scrolling that mucky muck.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.reddit.com/r/dataengineering/comments/15gf97e/is_traditional_data_modeling_dead/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!18rd!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F134a8727-e85a-4795-b56a-5f48d9b9a2f1_1606x584.png 424w, /__u/substackcdn.com/image/fetch/$s_!18rd!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F134a8727-e85a-4795-b56a-5f48d9b9a2f1_1606x584.png 848w, /__u/substackcdn.com/image/fetch/$s_!18rd!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F134a8727-e85a-4795-b56a-5f48d9b9a2f1_1606x584.png 1272w, /__u/substackcdn.com/image/fetch/$s_!18rd!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F134a8727-e85a-4795-b56a-5f48d9b9a2f1_1606x584.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!18rd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F134a8727-e85a-4795-b56a-5f48d9b9a2f1_1606x584.png" width="1456" height="529" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/134a8727-e85a-4795-b56a-5f48d9b9a2f1_1606x584.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:529,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:169439,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.reddit.com/r/dataengineering/comments/15gf97e/is_traditional_data_modeling_dead/&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/207708512?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F134a8727-e85a-4795-b56a-5f48d9b9a2f1_1606x584.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!18rd!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F134a8727-e85a-4795-b56a-5f48d9b9a2f1_1606x584.png 424w, /__u/substackcdn.com/image/fetch/$s_!18rd!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F134a8727-e85a-4795-b56a-5f48d9b9a2f1_1606x584.png 848w, /__u/substackcdn.com/image/fetch/$s_!18rd!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F134a8727-e85a-4795-b56a-5f48d9b9a2f1_1606x584.png 1272w, /__u/substackcdn.com/image/fetch/$s_!18rd!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F134a8727-e85a-4795-b56a-5f48d9b9a2f1_1606x584.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h3>Why is the question even being asked?</h3><p>I don&#8217;t know if data modeling is dead or not. Sorry, if that is what you came here trying to find, might as well go back to scrolling Instagram or TikTok, maybe YouTube Shorts if you&#8217;re a gray-bearded millennial like me. I will just attempt to present and explore the idea of data modeling, and if it is dead, and let you make up your own mind. Maybe do a survey at the end.</p><blockquote><p>Let&#8217;s start by asking the simple question of &#8220;<em><strong>Why is this even being asked?</strong></em>&#8221;</p></blockquote><p>There has to be some logical explanation, somewhere, of why this has become a topic to even discuss, and seemingly a hot one at that. I believe the answer to this question is fairly obvious. As per this Reddit comment about the reason for data modeling being seen as dead &#8230; it&#8217;s just become a skill that hasn&#8217;t been valued, or at the very least, less valued than it once was.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!FUF-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9900874-87c8-4391-bcbd-4a0cf5a23e44_1410x152.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!FUF-!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9900874-87c8-4391-bcbd-4a0cf5a23e44_1410x152.png 424w, /__u/substackcdn.com/image/fetch/$s_!FUF-!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9900874-87c8-4391-bcbd-4a0cf5a23e44_1410x152.png 848w, /__u/substackcdn.com/image/fetch/$s_!FUF-!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9900874-87c8-4391-bcbd-4a0cf5a23e44_1410x152.png 1272w, /__u/substackcdn.com/image/fetch/$s_!FUF-!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9900874-87c8-4391-bcbd-4a0cf5a23e44_1410x152.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!FUF-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9900874-87c8-4391-bcbd-4a0cf5a23e44_1410x152.png" width="1410" height="152" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e9900874-87c8-4391-bcbd-4a0cf5a23e44_1410x152.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:152,&quot;width&quot;:1410,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:58296,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/207708512?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9900874-87c8-4391-bcbd-4a0cf5a23e44_1410x152.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!FUF-!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9900874-87c8-4391-bcbd-4a0cf5a23e44_1410x152.png 424w, /__u/substackcdn.com/image/fetch/$s_!FUF-!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9900874-87c8-4391-bcbd-4a0cf5a23e44_1410x152.png 848w, /__u/substackcdn.com/image/fetch/$s_!FUF-!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9900874-87c8-4391-bcbd-4a0cf5a23e44_1410x152.png 1272w, /__u/substackcdn.com/image/fetch/$s_!FUF-!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9900874-87c8-4391-bcbd-4a0cf5a23e44_1410x152.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><div class="callout-block" data-callout="true"><p>Why would data modeling have become a less valued skill?</p></div><p>Well, skills rise and fall in time with the popular technologies of choice. Where have we come from the last few decades? SQL Server, MySQL, Oracle, the data warehouse toolkit. Data was SQL. Data was data warehouse. Kimball. OLTP and OLAP. You couldn&#8217;t really be a &#8220;data professional&#8221; in the early 2000&#8217;s and before unless you were an expert in data modeling.</p><blockquote><p>The data didn&#8217;t live in S3. It wasn&#8217;t found in Parquet or JSON files. <strong>The data was, by in large, found in relational databases.</strong></p></blockquote><p>Then the data lake happened; the lake house soon followed. Spark arrived on the scene. We wanted better programmers, systems designers, APIs, streaming; the relational databases were, and are, still here, but they moved from the top of the popularity stack to the bottom &#8230; and so did those skills &#8230; like data modeling. I&#8217;m not saying this was right or wrong; I&#8217;m just saying this is what most likely happened. <em>People spent time on LeetCode writing Linked Lists and doing palindromes&#8230; and less time talking about the finer points of 3rd normal form.</em></p><p>I would suppose this is fairly normal, as technology and abstractions change and morph, the required skills to be successful, or perceived required skills, are going to change as well.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!IG52!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cc76b80-b1b8-42a5-85b8-84f9c48782cc_1272x832.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!IG52!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cc76b80-b1b8-42a5-85b8-84f9c48782cc_1272x832.png 424w, /__u/substackcdn.com/image/fetch/$s_!IG52!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cc76b80-b1b8-42a5-85b8-84f9c48782cc_1272x832.png 848w, /__u/substackcdn.com/image/fetch/$s_!IG52!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cc76b80-b1b8-42a5-85b8-84f9c48782cc_1272x832.png 1272w, /__u/substackcdn.com/image/fetch/$s_!IG52!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cc76b80-b1b8-42a5-85b8-84f9c48782cc_1272x832.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!IG52!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cc76b80-b1b8-42a5-85b8-84f9c48782cc_1272x832.png" width="1272" height="832" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9cc76b80-b1b8-42a5-85b8-84f9c48782cc_1272x832.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:832,&quot;width&quot;:1272,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:169696,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/207708512?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cc76b80-b1b8-42a5-85b8-84f9c48782cc_1272x832.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!IG52!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cc76b80-b1b8-42a5-85b8-84f9c48782cc_1272x832.png 424w, /__u/substackcdn.com/image/fetch/$s_!IG52!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cc76b80-b1b8-42a5-85b8-84f9c48782cc_1272x832.png 848w, /__u/substackcdn.com/image/fetch/$s_!IG52!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cc76b80-b1b8-42a5-85b8-84f9c48782cc_1272x832.png 1272w, /__u/substackcdn.com/image/fetch/$s_!IG52!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cc76b80-b1b8-42a5-85b8-84f9c48782cc_1272x832.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>What we are trying to figure out is this.</p><div class="callout-block" data-callout="true"><p><mark data-color="#fff2cc" style="background-color: rgb(255, 242, 204); color: rgb(0, 0, 0);">Is data modeling a required skill to be a data professional today in the average job at the average company?</mark></p></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/so-is-data-modeling-dead?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Data Engineering Central! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/so-is-data-modeling-dead?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/p/so-is-data-modeling-dead?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share"><span>Share</span></a></p></div><div><hr></div><h3>What does the data actually say?</h3><p>The only way I know of if we are all just victims of the talking heads convincing us one way or the other, probably because they have a bent one way or the other, if data modeling is dead &#8230; would be to look at the average Senior Data Engineering job requirement we can find online, just take a random sample, and found out if compaines are requesting skills like <strong>data modeling</strong> or <strong>data model</strong>. I am not saying that all companies are competent and even know what they need, but at the end of the day, we get hired to do a thing. It&#8217;s as good a place to start as any other.</p><ul><li><p><em>So, I went and got myself 30 data job descriptions off of LinkedIn for Senior Data Engineer, or close to it.</em></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!cosQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae58af5b-8596-443a-a2cd-ff71080a86ec_1216x694.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!cosQ!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae58af5b-8596-443a-a2cd-ff71080a86ec_1216x694.png 424w, /__u/substackcdn.com/image/fetch/$s_!cosQ!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae58af5b-8596-443a-a2cd-ff71080a86ec_1216x694.png 848w, /__u/substackcdn.com/image/fetch/$s_!cosQ!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae58af5b-8596-443a-a2cd-ff71080a86ec_1216x694.png 1272w, /__u/substackcdn.com/image/fetch/$s_!cosQ!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae58af5b-8596-443a-a2cd-ff71080a86ec_1216x694.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!cosQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae58af5b-8596-443a-a2cd-ff71080a86ec_1216x694.png" width="1216" height="694" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ae58af5b-8596-443a-a2cd-ff71080a86ec_1216x694.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:694,&quot;width&quot;:1216,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:154440,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/207708512?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae58af5b-8596-443a-a2cd-ff71080a86ec_1216x694.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!cosQ!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae58af5b-8596-443a-a2cd-ff71080a86ec_1216x694.png 424w, /__u/substackcdn.com/image/fetch/$s_!cosQ!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae58af5b-8596-443a-a2cd-ff71080a86ec_1216x694.png 848w, /__u/substackcdn.com/image/fetch/$s_!cosQ!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae58af5b-8596-443a-a2cd-ff71080a86ec_1216x694.png 1272w, /__u/substackcdn.com/image/fetch/$s_!cosQ!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae58af5b-8596-443a-a2cd-ff71080a86ec_1216x694.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I recently did an exercise where I proved to myself I&#8217;m not a complete idioit <a href="/__u/dataengineeringcentral.substack.com/p/warning-this-rust-code-was-written">and went back to the old days of writing Rust without an LLM</a> (<em>video and audio processing at that</em>) &#8230; since that is how I learned it in the first place. Let&#8217;s do the same here to find out out of 30 data jobs, how many require data modeling as a skill.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:&quot;7ed458a6-59e1-459f-95b8-b29d44cb9558&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">cargo init datajobs
cd datajobs
cargo add glob</code></pre></div><p>We should be able to write a simple Rust program that &#8230;</p><ul><li><p>list a directory of files</p></li><li><p>read a text file</p></li><li><p>look through text for a word(s)</p></li><li><p>accumlate a counter for jobs that have that word</p></li></ul><p>Ok, since I&#8217;m a Python guy at heart, we will use the <a href="https://docs.rs/glob/latest/glob/">glob</a> create.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;rust&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-rust">use glob::glob;

fn main() {
    let files = glob("data jobs/*.txt").expect("Failed to get list of files");
    for file in files {
        println!("{:?}", file);
    }
}</code></pre></div><p>Yah, Yah, I hear ya, quit messing around and get to the point.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;bash&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-bash">danielbeach@Daniels-MacBook-Pro-2 datajobs % cargo run       
   Compiling datajobs v0.1.0 (/Users/danielbeach/code/datajobs)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.53s
     Running `target/debug/datajobs`
Ok("data jobs/1.txt")
Ok("data jobs/10.txt")
Ok("data jobs/11.txt")
Ok("data jobs/12.txt")</code></pre></div><p>Ok, let&#8217;s get to it.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;rust&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-rust">use std::i32;
use std::path;
use std::vec;
use std::fs;
use glob::glob;


fn main() {
    let files = glob("data jobs/*.txt").expect("Failed to get list of files");
    let looking_for = "data modeling";
    let mut job_counter:  i32 = 0;
    for file in files {
        let text = read_txt_file(file.expect("bloody bugger"));
        let in_there = contain_words(text, &amp;looking_for);
        if in_there {
            job_counter += 1
        }
    }
    println!("Out of 30 jobs, {} asked for {}", job_counter, looking_for);
}

fn read_txt_file(path: path::PathBuf) -&gt; String {
    let contents = fs::read_to_string(path).expect("Dang file, dang it");
    return contents
}

fn contain_words(text: String, pat: &amp;&amp;str) -&gt; bool {
    let contained = text.to_lowercase().contains(pat);
    return contained;
}</code></pre></div><p><a href="https://github.com/danielbeach/datajobs/tree/main">Nasty little piece of work</a> if I do say so myself. Unlike my friendly local Anonamyous Rust Dev, no on pays me to write Rust. Dang, not what I expected to be honest. <a href="https://github.com/danielbeach/datajobs/tree/main">All this, including source data is on GitHub if you think I&#8217;m lying.</a></p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;bash&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-bash">warning: `datajobs` (bin "datajobs") generated 1 warning (run `cargo fix --bin "datajobs" -p datajobs` to apply 1 suggestion)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.17s
     Running `target/debug/datajobs`
Out of 30 jobs, 16 asked for data modeling</code></pre></div><p>Over 50% of the jobs asked for data modeling, that is a lot more than I expected, and is a very good sign for all the folk who started out this article by saying in their mind &#8230; &#8220;<strong>You bloody fool, of course data modeling is not dead.</strong>&#8221; For all you on the other end of the specrtum, it is what it is, not exactly scientific, but hard to argue with. At the very least, one would have to say that if you are in the market for a data job, and you don&#8217;t think data modeling is a required skill, than you are severally limiting your pool of jobs. To cut out over %50 of something before you even start is usually not a good sign.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/subscribe"><span>Subscribe now</span></a></p><div><hr></div><h3>Polling the LinkedIn data professionals.</h3><p>To make sure I was covering my bases and giving both sides of the argument a fair shake at coming out on top, I decided to post and informal poll, well, not even a poll, but ask the question of my 20k+ LinkedIn followers along with the 37k+ followers on Substack what they think about the topic. I kinda wanted to simply lick my finger, put it in the air and see which way the winds of popular opinion were blowing. I figured it would skew one way or the other, and that is at the very least another good bone to throw on the pile.</p><p>Here is the <a href="https://www.linkedin.com/posts/danieldavidbeach_im-working-on-a-piece-exploring-the-idea-share-7486569322904096768-8H3w/?utm_source=share&amp;utm_medium=member_desktop&amp;rcm=ACoAACCGWeMBpzyTjCHWjac5iobhsbGE41GBhto">link to the LinkedIn post</a>, and <a href="/__u/substack.com/@dataengineeringcentral/note/c-301225366">here to the Substack post</a>. I can so that it&#8217;s another 80/20 split, most folk affirm that data modeling is an important skill that it is not dead or obsolete.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!q0Gc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f4eead0-d8dc-4300-b94c-d9b822238325_1334x1466.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!q0Gc!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f4eead0-d8dc-4300-b94c-d9b822238325_1334x1466.png 424w, /__u/substackcdn.com/image/fetch/$s_!q0Gc!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f4eead0-d8dc-4300-b94c-d9b822238325_1334x1466.png 848w, /__u/substackcdn.com/image/fetch/$s_!q0Gc!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f4eead0-d8dc-4300-b94c-d9b822238325_1334x1466.png 1272w, /__u/substackcdn.com/image/fetch/$s_!q0Gc!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f4eead0-d8dc-4300-b94c-d9b822238325_1334x1466.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!q0Gc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f4eead0-d8dc-4300-b94c-d9b822238325_1334x1466.png" width="1334" height="1466" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7f4eead0-d8dc-4300-b94c-d9b822238325_1334x1466.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1466,&quot;width&quot;:1334,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:309788,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/207708512?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f4eead0-d8dc-4300-b94c-d9b822238325_1334x1466.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!q0Gc!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f4eead0-d8dc-4300-b94c-d9b822238325_1334x1466.png 424w, /__u/substackcdn.com/image/fetch/$s_!q0Gc!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f4eead0-d8dc-4300-b94c-d9b822238325_1334x1466.png 848w, /__u/substackcdn.com/image/fetch/$s_!q0Gc!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f4eead0-d8dc-4300-b94c-d9b822238325_1334x1466.png 1272w, /__u/substackcdn.com/image/fetch/$s_!q0Gc!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f4eead0-d8dc-4300-b94c-d9b822238325_1334x1466.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!v0cB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F614a7489-c927-41a0-8b92-850f5170259b_1120x716.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!v0cB!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F614a7489-c927-41a0-8b92-850f5170259b_1120x716.png 424w, /__u/substackcdn.com/image/fetch/$s_!v0cB!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F614a7489-c927-41a0-8b92-850f5170259b_1120x716.png 848w, /__u/substackcdn.com/image/fetch/$s_!v0cB!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F614a7489-c927-41a0-8b92-850f5170259b_1120x716.png 1272w, /__u/substackcdn.com/image/fetch/$s_!v0cB!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F614a7489-c927-41a0-8b92-850f5170259b_1120x716.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!v0cB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F614a7489-c927-41a0-8b92-850f5170259b_1120x716.png" width="1120" height="716" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/614a7489-c927-41a0-8b92-850f5170259b_1120x716.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:716,&quot;width&quot;:1120,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:158296,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/207708512?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F614a7489-c927-41a0-8b92-850f5170259b_1120x716.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!v0cB!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F614a7489-c927-41a0-8b92-850f5170259b_1120x716.png 424w, /__u/substackcdn.com/image/fetch/$s_!v0cB!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F614a7489-c927-41a0-8b92-850f5170259b_1120x716.png 848w, /__u/substackcdn.com/image/fetch/$s_!v0cB!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F614a7489-c927-41a0-8b92-850f5170259b_1120x716.png 1272w, /__u/substackcdn.com/image/fetch/$s_!v0cB!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F614a7489-c927-41a0-8b92-850f5170259b_1120x716.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>That&#8217;s probably not a suprise to most people, but it was interesting to see the response of folk who leaned maybe more towards what I would call the data modeling is sorta obsolete in the Lake House era. At least from what I could tell reading between the lines. The arguments in this vector seem to stem from a few totally reasonable areas and schools of thought.</p><ul><li><p><em>New tools are very fast and &#8220;cover up&#8221; the need for good data modeling.</em></p></li><li><p><em>Small data with no data modeling isn&#8217;t that problematic.</em></p></li><li><p><em>Distributed compute with something like Spark and OBT (<a href="/__u/dataengineeringcentral.substack.com/p/one-big-table-data-modeling">One Big Table</a>) works well enough.</em></p></li></ul><p>To be fair, we must give this school of thought some serious attention, because if nothing else, there is a prevading sense in the data community that data modeling is not taken as seriously as it once was. Things like <a href="/__u/dataengineeringcentral.substack.com/p/medallion-architecture-truth-or-fiction">Medallion Architecture</a> are often passed off as &#8220;good enough&#8221; for a data model in the Lake House, no more work needed.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/dataengineeringcentral.substack.com/p/medallion-architecture-truth-or-fiction" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!g_ZL!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe60b9ef4-3ecf-4e2a-8ffe-ca88feed427c_1650x658.png 424w, /__u/substackcdn.com/image/fetch/$s_!g_ZL!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe60b9ef4-3ecf-4e2a-8ffe-ca88feed427c_1650x658.png 848w, /__u/substackcdn.com/image/fetch/$s_!g_ZL!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe60b9ef4-3ecf-4e2a-8ffe-ca88feed427c_1650x658.png 1272w, /__u/substackcdn.com/image/fetch/$s_!g_ZL!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe60b9ef4-3ecf-4e2a-8ffe-ca88feed427c_1650x658.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!g_ZL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe60b9ef4-3ecf-4e2a-8ffe-ca88feed427c_1650x658.png" width="1456" height="581" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e60b9ef4-3ecf-4e2a-8ffe-ca88feed427c_1650x658.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:581,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:199920,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://dataengineeringcentral.substack.com/p/medallion-architecture-truth-or-fiction&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/207708512?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe60b9ef4-3ecf-4e2a-8ffe-ca88feed427c_1650x658.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!g_ZL!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe60b9ef4-3ecf-4e2a-8ffe-ca88feed427c_1650x658.png 424w, /__u/substackcdn.com/image/fetch/$s_!g_ZL!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe60b9ef4-3ecf-4e2a-8ffe-ca88feed427c_1650x658.png 848w, /__u/substackcdn.com/image/fetch/$s_!g_ZL!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe60b9ef4-3ecf-4e2a-8ffe-ca88feed427c_1650x658.png 1272w, /__u/substackcdn.com/image/fetch/$s_!g_ZL!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe60b9ef4-3ecf-4e2a-8ffe-ca88feed427c_1650x658.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I have a few thoughts and takes on why we are even having this dicussion, and I think most discussion are valid and worth having. Sure, from what we&#8217;ve seen so far, data modeling as a technical skill is far from dead. Over %50 of data job listings ask specifically for that skill, and the powers and thought leaders of our time seem to lean towards the view that data modeling is indeed crucial.</p><div class="callout-block" data-callout="true"><p>But, to be fair and open, most people would say the same thing about Data Quality and Data Contracts, yet we&#8217;ve seen very little to no serious movement in those categories besides white papers and the odd tool here and there. Seen as important but used practically on a daily basis are two different things. <strong>So, where and why does this idea that data modeling is dead come from?</strong></p></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/so-is-data-modeling-dead?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Data Engineering Central! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/so-is-data-modeling-dead?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/p/so-is-data-modeling-dead?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share"><span>Share</span></a></p></div><div><hr></div><h3>The origins of the &#8220;Data Modeling is Dead Theory&#8221;</h3><p>I think to explore both sides of this argument fully, we have to park on the data modeling is dead theory for a little bit and try to understand that point of view, and where it comes from. Either way, we can better argue for our viewpoint if we are fully versed on both sides, rather than just propping up our strawman. </p><p>I&#8217;m going to list some bullet points that I read in online comments to my posts, and others, that are more in favor of the data modeling is dead theory. You can take them as you will.</p><ul><li><p><em>The last &#8220;bible&#8221; of data modeling (Kimball&#8217;s Tookit) was published in 1996.</em></p></li><li><p><em>15 years ago we lived in a SQL Server, Postgres, Oracle, MySQL dominated relational database world in data land. That is no longer the case.</em></p></li><li><p><em>Many relational database data modeling techniques were designed for performance bottlenecks that no longer exist.</em></p></li><li><p><em>Data technology and compute has changed siginficantly; think DuckDB, Polars, Datafusion, Spark, blah, blah.</em></p></li><li><p><em>The hot choice for data storage is now the Lake House &#8230; aka Iceberg and Delta Lake which are file storage systems.</em></p></li><li><p><em>As compared to two decades ago, data has become more complicated in both size, volume, and velocity.</em></p></li><li><p><em>Many people are running Lake Houses with a hodge podge of data modeling, or none at all, and it works*.</em></p></li></ul><p>Again, you can have a totally different viewpoint on these bullet points, but we must deal with that at some level, argue against them, just try to generally understand them and how to fit into our metal model that data modeling does indeed hold an important part of the data platform. <strong>Back in the day, our Data Warehouse exsisted on SQL Server and if our data model sucked, our queries didn&#8217;t run, the reports were slow, and you would get fired by the CTO.</strong></p><p>Today you can have One Big Table sitting in parquet files on GCS, point Big Query at them, and get the answers you need well enough. It might not be cost effective, but it&#8217;s possible the CTO as such an organziation could care less, as long as that line item stays in the same spot of the budget and doesn&#8217;t get out of hand.</p><div><hr></div><h2>Does the data model need to change with tecnology?</h2><p>This is a valid question that comes up often as well. Does the data model; Kimball, <a href="https://rajanand.org/data-modeling/inmon-data-model">Imon</a>, dreamed up decades ago need to be adjusted for the new world we live in? I&#8217;m not saying yes or no, I&#8217;m just asking the question. I&#8217;ve lived through these data changes, I cut my teeth on data teams running the Data Warehouse on SQL Server clusters, where we tuned every index and query, and were manical about the data models at every layer.</p><blockquote><p>We didn&#8217;t have a choice, the whole ship would slow to a halt if we screwed up the data model.</p></blockquote><p>No one has become the data modeling messiah of the 2000&#8217;s. It&#8217;s been an empty void of talking heads regurgitating the OLTP and OLAP bullet points we learned from our forefathers. When is the last time I read an article with some data influncer going over the finer points of Third Normal Form? Yeah &#8230; doesn&#8217;t happen. So, if we want data modeling to be taken seriously, then the data community needs to teach it and apply it to the Lake House archteciture so the data engineers are not left in the dark to feel their way about the bits and bytes finding their own way.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/subscribe"><span>Subscribe now</span></a></p><div><hr></div><h2>What if data modeling is more about the <mark data-color="#93c47d" style="background-color: rgb(147, 196, 125); color: rgb(0, 0, 0);">business</mark> (than the technology)?</h2><p>For someone like me who grew up with the Data Warehouse Toolkit next to my literal Bible on my nightstand, I feel like it&#8217;s possible the entire data modeling conversation, in all its technical glory around DuckDB, Spark, Databricks, Snowflake &#8230; or whatever, is missing a core componet.</p><p>This componet rarely gets brought up in the argument from the &#8220;Data Modeling is Dead&#8221; crowd. That part is &#8230; <strong>The Business. </strong>I would like to quote <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Joe Reis&quot;,&quot;id&quot;:3531217,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6e4716b1-c223-41e3-b943-def0291bf217_1175x783.jpeg&quot;,&quot;uuid&quot;:&quot;a8b48d16-d228-4427-8c2c-ff19d8f13a3a&quot;}" data-component-name="MentionToDOM"></span> who&#8217;s written extensively on this topic and is the defacto expert of our age.</p><div class="pullquote"><p>&#8220;<strong><mark data-color="#ff9900" style="background-color: rgb(255, 153, 0); color: rgb(0, 0, 0);">We Model the Business, Not Just Data Systems</mark>&#8221; <br>- <a href="/__u/practicaldatamodeling.substack.com/p/modeling-business-processes-and-domains">Joe Reis</a></strong></p></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/practicaldatamodeling.substack.com/p/modeling-business-processes-and-domains" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!pW6B!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8aabea8-0a64-4c68-9c6a-9cbf896c4eb1_1782x1026.png 424w, /__u/substackcdn.com/image/fetch/$s_!pW6B!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8aabea8-0a64-4c68-9c6a-9cbf896c4eb1_1782x1026.png 848w, /__u/substackcdn.com/image/fetch/$s_!pW6B!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8aabea8-0a64-4c68-9c6a-9cbf896c4eb1_1782x1026.png 1272w, /__u/substackcdn.com/image/fetch/$s_!pW6B!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8aabea8-0a64-4c68-9c6a-9cbf896c4eb1_1782x1026.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!pW6B!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8aabea8-0a64-4c68-9c6a-9cbf896c4eb1_1782x1026.png" width="1456" height="838" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c8aabea8-0a64-4c68-9c6a-9cbf896c4eb1_1782x1026.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:838,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:254058,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://practicaldatamodeling.substack.com/p/modeling-business-processes-and-domains&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/207708512?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8aabea8-0a64-4c68-9c6a-9cbf896c4eb1_1782x1026.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!pW6B!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8aabea8-0a64-4c68-9c6a-9cbf896c4eb1_1782x1026.png 424w, /__u/substackcdn.com/image/fetch/$s_!pW6B!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8aabea8-0a64-4c68-9c6a-9cbf896c4eb1_1782x1026.png 848w, /__u/substackcdn.com/image/fetch/$s_!pW6B!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8aabea8-0a64-4c68-9c6a-9cbf896c4eb1_1782x1026.png 1272w, /__u/substackcdn.com/image/fetch/$s_!pW6B!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8aabea8-0a64-4c68-9c6a-9cbf896c4eb1_1782x1026.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This has always been the problem of engineers who focus to much on the technical aspect of any topic, not that any of those technical things are not important. It&#8217;s just that to create good Data Platforms and code, we must remember we are here to serve &#8220;the business.&#8221; Everything we do happens within a context. All those annoying data models are only half for tools, the other half are for the &#8230; <strong>PEOPLE. </strong>Us. Me. You. The collective <strong>WE</strong>.</p><blockquote><p><em>We model our data after business logic to reduce errors, help humans and AI trained on humans, better understand context, answer questions, and make sense of the unknown using good data models. </em></p></blockquote><div class="callout-block" data-callout="true"><p>Good data models increase accuracy, reduce errors, and generally reduce the burden on humans and agentic solutions tasked with bringing answers out of the chaos that has always been data.</p></div><div><hr></div><h2>Is data modeling overrated?</h2><p>Beauty is in the eye of the beholder, it depends on the context of you, the company you work at, the tools you find yourself using every day. I think it&#8217;s a sliding scale. Maybe you find yourself in Postgres or SQL Server, than of course you&#8217;re going to have a high view of data modeling. Maybe you&#8217;re working at some marketing company who dumps stuff into JSON files on GCS and just throws BigQuery on top and is off to the races. Maybe they don&#8217;t want you to spend time data modeling.</p><p><em><strong>I guess you have your answer then.</strong></em></p><p>But, maybe you&#8217;re working on a Databricks or Snowflake platform, your data is large, there is a new wave of agentic solutions that need to be given access to a complex and vast array of data. Than the data modeling is probably going to make or break your data platform success.</p><p>Can you get away with not data modeling &#8220;very much.&#8221; Yeah, if you are using Spark ontop of Iceberg with just a handful of tables, yeah &#8230; you will probably survive &#8230; but not thrive. Maybe you have 100GB of data and you are using DuckDB and Polars ontop of Parquet files in cloud storage, and it&#8217;s just easier to and faster to get the answers the way the data landed.</p><ul><li><p>Sure, it probably works, as long as you have 5 reports that no one looks at.</p></li></ul><div class="callout-block" data-callout="true"><p>Again, you get out of your data what you put into it.</p></div><p>If you spend time to curate your data, understand it, massage it into meaningful formats and models, yeah, you&#8217;re probably in the top 10% and you get returns on your data modeling investment. I myself eat my own words, today, I work in a place were we made the concious decision to run a Kimball style data modeled Lake House with Facts and Dimensions as if it was SQL Server form 30 years ago. That was probably just my pre-concieved notions and background playing into it. </p><div class="poll-embed" data-attrs="{&quot;id&quot;:859359}" data-component-name="PollToDOM"></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/so-is-data-modeling-dead?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Data Engineering Central! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/so-is-data-modeling-dead?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/p/so-is-data-modeling-dead?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share"><span>Share</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[WARNING: This Rust code was written by hand.]]></title><description><![CDATA[back to the old days]]></description><link>https://dataengineeringcentral.substack.com/p/warning-this-rust-code-was-written</link><guid isPermaLink="false">https://dataengineeringcentral.substack.com/p/warning-this-rust-code-was-written</guid><dc:creator><![CDATA[Daniel Beach]]></dc:creator><pubDate>Thu, 23 Jul 2026 12:47:19 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!63_e!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ff3b761-e090-4b94-9b7b-76ef15c8a322_1280x720.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!63_e!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ff3b761-e090-4b94-9b7b-76ef15c8a322_1280x720.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!63_e!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ff3b761-e090-4b94-9b7b-76ef15c8a322_1280x720.png 424w, /__u/substackcdn.com/image/fetch/$s_!63_e!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ff3b761-e090-4b94-9b7b-76ef15c8a322_1280x720.png 848w, /__u/substackcdn.com/image/fetch/$s_!63_e!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ff3b761-e090-4b94-9b7b-76ef15c8a322_1280x720.png 1272w, /__u/substackcdn.com/image/fetch/$s_!63_e!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ff3b761-e090-4b94-9b7b-76ef15c8a322_1280x720.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!63_e!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ff3b761-e090-4b94-9b7b-76ef15c8a322_1280x720.png" width="1280" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7ff3b761-e090-4b94-9b7b-76ef15c8a322_1280x720.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1026048,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/205878996?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ff3b761-e090-4b94-9b7b-76ef15c8a322_1280x720.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!63_e!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ff3b761-e090-4b94-9b7b-76ef15c8a322_1280x720.png 424w, /__u/substackcdn.com/image/fetch/$s_!63_e!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ff3b761-e090-4b94-9b7b-76ef15c8a322_1280x720.png 848w, /__u/substackcdn.com/image/fetch/$s_!63_e!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ff3b761-e090-4b94-9b7b-76ef15c8a322_1280x720.png 1272w, /__u/substackcdn.com/image/fetch/$s_!63_e!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ff3b761-e090-4b94-9b7b-76ef15c8a322_1280x720.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I recently had a bit of a self-identity crisis; of course, it was tied to spending way too much time on social media. I do try to avoid the worst of it, got rid of Twitter (X) this year, and mostly stick to Substack, <a href="https://www.linkedin.com/in/danieldavidbeach/">LinkedIn</a>, <a href="https://www.youtube.com/@dataengineeringdan">YouTube</a>, occasional Reddit, and Hacker News. Probably still too much.</p><p>Anyways, I&#8217;ve always been one to keep as close to the bleeding edge as possible throughout my career, at least from my view, without wandering over the edge. I&#8217;ve always seen it as a form of self-preservation, probably due to growing up the youngest of five in the middle of the prairie next to the river, in the only county without a working stoplight.</p><blockquote><p><em>I try to be pragmatic and never dogmatic, except when someone says &#8220;Production&#8221; and &#8220;Notebook&#8221; in the same sentence.</em></p></blockquote><div class="callout-block" data-callout="true"><p>Oh, back to my identity crisis. I probably just need to turn off social media, but I&#8217;m constantly torn about my future as a data and code person. In my heart of hearts, I believe things will be fine for those who care for their craft, as applied to the business of software, but that could just be wishful thinking.</p></div><p>Again, I digress; what I&#8217;m trying to say is that I miss writing code. Myself. Without a machine looking over my shoulder. Rust, I miss that nasty little borrow checker and compiler. <strong>I miss struggling.</strong></p><p>If life writing code for two decades has taught me anything, it&#8217;s that struggle and exercising one&#8217;s mind are critical to success, personal and professional, and I&#8217;ve felt it sorta creeping up on me, slowly and sneakily.</p><ul><li><p><em>Don&#8217;t get me wrong: spending time on systems design, architecture, business requirements, project planning, the big picture, nitpicking Claude solutions, and providing value through software solutions &#8230; it&#8217;s important work.</em></p></li></ul><p>But I can only accomplish those tasks well insofar as my current mind is continually exercised and acquainted with the <strong>intricacies of software used to solve data problems and provide value</strong>. Building systems that run well, are cost-effective, and are generally a pleasure to work with.</p><div><hr></div><h3><a href="https://cube.dev/?utm_source=dataengineeringcentral&amp;utm_medium=newsletter&amp;utm_campaign=cube-general-promotion&amp;utm_content=v5-trusted">Customer-facing analytics that ship in days, not quarters</a></h3><div class="callout-block" data-callout="true"><p>Thanks to <a href="https://cube.dev/?utm_source=dataengineeringcentral&amp;utm_medium=newsletter&amp;utm_campaign=cube-general-promotion&amp;utm_content=v5-trusted">Cube</a> for sponsoring today&#8217;s post! Without companies like Cube, this content wouldn&#8217;t be possible. The best way to support this Substack is to <a href="https://cube.dev/?utm_source=dataengineeringcentral&amp;utm_medium=newsletter&amp;utm_campaign=cube-general-promotion&amp;utm_content=v5-trusted">click the links below and check out Cube!</a></p></div><p><mark data-color="rgb(180, 167, 214)" style="background-color: rgb(180, 167, 214); color: rgb(0, 0, 0);">Customer-facing analytics are slow, the warehouse bill keeps climbing, and every new chart turns into an engineering project. </mark><a href="https://cube.dev/?utm_source=dataengineeringcentral&amp;utm_medium=newsletter&amp;utm_campaign=cube-general-promotion&amp;utm_content=v5-trusted"><mark data-color="rgb(180, 167, 214)" style="background-color: rgb(180, 167, 214); color: rgb(0, 0, 0);">Cube is the agentic analytics platform</mark></a><mark data-color="rgb(180, 167, 214)" style="background-color: rgb(180, 167, 214); color: rgb(0, 0, 0);"> built for embedding: drop governed dashboards and an AI analyst into your product in days, with built-in caching that keeps queries fast and warehouse costs down. Pelago, Constant Contact, GoFundMe, and 400+ other SaaS companies ship customer-facing analytics on it.</mark></p><p><strong><a href="https://cube.dev/?utm_source=dataengineeringcentral&amp;utm_medium=newsletter&amp;utm_campaign=cube-general-promotion&amp;utm_content=v5-trusted">Get started for free.</a></strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://cube.dev/?utm_source=dataengineeringcentral&amp;utm_medium=newsletter&amp;utm_campaign=cube-general-promotion&amp;utm_content=v5-trusted" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!o1ZB!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63910509-a279-4d77-8d81-4141151137eb_2048x1024.png 424w, /__u/substackcdn.com/image/fetch/$s_!o1ZB!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63910509-a279-4d77-8d81-4141151137eb_2048x1024.png 848w, /__u/substackcdn.com/image/fetch/$s_!o1ZB!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63910509-a279-4d77-8d81-4141151137eb_2048x1024.png 1272w, /__u/substackcdn.com/image/fetch/$s_!o1ZB!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63910509-a279-4d77-8d81-4141151137eb_2048x1024.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!o1ZB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63910509-a279-4d77-8d81-4141151137eb_2048x1024.png" width="1456" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/63910509-a279-4d77-8d81-4141151137eb_2048x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:728,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://cube.dev/?utm_source=dataengineeringcentral&amp;utm_medium=newsletter&amp;utm_campaign=cube-general-promotion&amp;utm_content=v5-trusted&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="/__u/substackcdn.com/image/fetch/$s_!o1ZB!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63910509-a279-4d77-8d81-4141151137eb_2048x1024.png 424w, /__u/substackcdn.com/image/fetch/$s_!o1ZB!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63910509-a279-4d77-8d81-4141151137eb_2048x1024.png 848w, /__u/substackcdn.com/image/fetch/$s_!o1ZB!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63910509-a279-4d77-8d81-4141151137eb_2048x1024.png 1272w, /__u/substackcdn.com/image/fetch/$s_!o1ZB!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63910509-a279-4d77-8d81-4141151137eb_2048x1024.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><a href="https://cube.dev/?utm_source=dataengineeringcentral&amp;utm_medium=newsletter&amp;utm_campaign=cube-general-promotion&amp;utm_content=v5-trusted"><mark data-color="#b4a7d6" style="background-color: rgb(180, 167, 214); color: rgb(0, 0, 0);">Check out Cube today!</mark></a></p><div><hr></div><p>I, for one, find it surprising how quickly those finer details seem to fog over in the Cold Claude War we find ourselves in. Sure, it&#8217;s hard to erase 20+ years of code and experience, but it can get a little opaque.</p><p>So today, I&#8217;m here to do a simple thing with you. Bust out the terminal, vim, Rust, cargo &#8230; and <em>solve a problem I deal with daily and find annoying</em>. The most important part is that my own two fingers, with a few Google searches, are going to do this work.</p><blockquote><p><strong><mark data-color="#ff0000" style="background-color: rgb(255, 0, 0); color: rgb(255, 255, 255);">WARNING! No LLMs were used in generating the following code.</mark></strong></p></blockquote><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/warning-this-rust-code-was-written?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Data Engineering Central! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/warning-this-rust-code-was-written?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/p/warning-this-rust-code-was-written?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share"><span>Share</span></a></p></div><div><hr></div><h3>The problem.</h3><p>So, what is this itching problem I deal with way too often each week? Well, I&#8217;m sure, or I hope you are, that, along with the written word I produce for you, more than I should, includes a lot of Video/Podcasting content. <a href="/__u/dataengineeringcentral.substack.com/podcast">Substack Podcasts</a>, YouTube, etc.</p><p>The problem is simple: <strong>I need the transcripts from my video and podcast recordings.</strong> For all sorts of reasons. I need the transcript to summarize and find &#8230;</p><ul><li><p><em>What I/we talked about, aka topics covered</em></p></li><li><p><em>figure out a good title and description</em></p></li><li><p><em>etc</em></p></li></ul><p>There are a lot of AI tools I can pay for to do this for me, but I want my own, My Precious. So, we are going to whip out Rust and bang our heads against a wall until we figure this out.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;bash&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-bash">cargo init transcription-rs
cargo add unbundle</code></pre></div><p>I&#8217;m thinking we just want to accomplish a few simple things &#8230;</p><ul><li><p><em>command-line CLI to run this tool</em></p></li><li><p><em>reduce dependencies</em></p></li><li><p><em>rip out audio media from a video file</em></p></li><li><p><em>&#8230; try to transcribe the audio file</em></p></li></ul><p><span>I&#8217;m excited to write some Rust code without any LLMs, to think through the problems and struggle on my own,&nbsp;</span><em><strong><span>like the good old days.</span></strong></em></p><ul><li><p><span>I found a Rust crate that uses the powerful and apparently popular </span><a href="https://docs.rs/unbundle/latest/unbundle/index.html"><span>FFmpeg</span></a><span>, which has been used since the beginning of time.</span></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://docs.rs/unbundle/latest/unbundle/index.htmlhttps://docs.rs/unbundle/latest/unbundle/index.html" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!-FLu!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7834e754-dc54-40b8-b164-d2f060726b43_2440x704.png 424w, /__u/substackcdn.com/image/fetch/$s_!-FLu!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7834e754-dc54-40b8-b164-d2f060726b43_2440x704.png 848w, /__u/substackcdn.com/image/fetch/$s_!-FLu!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7834e754-dc54-40b8-b164-d2f060726b43_2440x704.png 1272w, /__u/substackcdn.com/image/fetch/$s_!-FLu!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7834e754-dc54-40b8-b164-d2f060726b43_2440x704.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!-FLu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7834e754-dc54-40b8-b164-d2f060726b43_2440x704.png" width="1456" height="420" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7834e754-dc54-40b8-b164-d2f060726b43_2440x704.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:420,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:189886,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://docs.rs/unbundle/latest/unbundle/index.htmlhttps://docs.rs/unbundle/latest/unbundle/index.html&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/205878996?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7834e754-dc54-40b8-b164-d2f060726b43_2440x704.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!-FLu!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7834e754-dc54-40b8-b164-d2f060726b43_2440x704.png 424w, /__u/substackcdn.com/image/fetch/$s_!-FLu!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7834e754-dc54-40b8-b164-d2f060726b43_2440x704.png 848w, /__u/substackcdn.com/image/fetch/$s_!-FLu!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7834e754-dc54-40b8-b164-d2f060726b43_2440x704.png 1272w, /__u/substackcdn.com/image/fetch/$s_!-FLu!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7834e754-dc54-40b8-b164-d2f060726b43_2440x704.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/warning-this-rust-code-was-written?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Data Engineering Central! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/warning-this-rust-code-was-written?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/p/warning-this-rust-code-was-written?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share"><span>Share</span></a></p></div><div><hr></div><h3>Re-learning Rust without LLMs.</h3><p>Let&#8217;s start our journey by using this crate to do something simple, knowing it probably won&#8217;t be our final solution. But can we open an MP4 video file, a clip from one of my podcasts, and have an audio file ripped from it?</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;rust&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-rust">use unbundle::{self, MediaFile, AudioFormat};
use std::env;

fn main() {
    let args: Vec&lt;String&gt; = env::args().collect();
    let input_file = &amp;args[1];
    println!("Starting to work on {input_file}");
    let video_data = unbundle::MediaFile::open(&amp;input_file).expect("Failed to open video file");
    process_video(video_data);
}

fn process_video(mut video_data: MediaFile) {
    video_data.audio().save("output.wav", AudioFormat::Wav).unwrap();
}</code></pre></div><p>We will probably need to use <a href="https://crates.io/crates/clap">clap</a> for proper CLI features at some point, but raw arg input parsing will work for now. So far, it&#8217;s pretty straightforward, at least in proving out our idea.</p><ul><li><p><em>It&#8217;s a good reminder of Rust's core principles.</em></p></li></ul><p>When it comes to <strong>mutable</strong> and <strong>immutable</strong>, we can think of our data and variables in such terms. This is far from the land of Python, where everything can be anything and do whatever. Also, another Rust beauty is <strong>borrowing</strong>: <em>can we borrow a copy of a pointer to some data or thing?</em> For example, our argument and variable for <em>input_file</em> should be immutable and borrowable. No need for it to change.</p><blockquote><p>This is in contrast to our <em>video_data</em>, which holds the data from our MP4 file; it is mutable because we need to extract the audio data from it.</p></blockquote><div><hr></div><h3><mark data-color="#d9ead3" style="background-color: rgb(217, 234, 211); color: rgb(0, 0, 0);">&lt; Always thinking about data and how it&#8217;s used. &gt;</mark></h3><ul><li><p><strong>Immutable data</strong> &#8230;</p><ul><li><p>A <em>file_name</em> would/should have no need to ever change.</p></li><li><p>We should probably always just borrow the <em>file_name </em>if we need it</p></li></ul></li><li><p><strong>Mutable data &#8230;</strong></p><ul><li><p>If you scroll down a little, you will see we eventually declare video_data as mutable, because we need to rip the audio off it.</p></li></ul></li></ul><div class="callout-block" data-callout="true"><p>If you work with data, you should train yourself to think of data points like Rust does: Is this piece of data changeable? Should it ever change? Does it become something else if I change or consume it? Where is the data used and how is it used?</p><p></p><p>It forces a deeper understanding of the data problem space you&#8217;re working on.</p></div><div><hr></div><p>One thing I noticed was that this solution depends on the machine having a proper installation of <a href="https://www.ffmpeg.org/">FFmpeg</a>. I would prefer a pure Rust implementation, but maybe we can deal with that later. Let&#8217;s run our little bitty pieces of Rust and see what happens.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;bash&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-bash">danielbeach@Daniels-MacBook-Pro-2 transcription-rs % cargo run -- test.mp4
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.06s
     Running `target/debug/transcription-rs test.mp4`
Starting to work on test.mp4</code></pre></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!a7Dj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F758d8107-dbad-40c8-91ab-3a7e0141b7b2_1486x194.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!a7Dj!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F758d8107-dbad-40c8-91ab-3a7e0141b7b2_1486x194.png 424w, /__u/substackcdn.com/image/fetch/$s_!a7Dj!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F758d8107-dbad-40c8-91ab-3a7e0141b7b2_1486x194.png 848w, /__u/substackcdn.com/image/fetch/$s_!a7Dj!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F758d8107-dbad-40c8-91ab-3a7e0141b7b2_1486x194.png 1272w, /__u/substackcdn.com/image/fetch/$s_!a7Dj!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F758d8107-dbad-40c8-91ab-3a7e0141b7b2_1486x194.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!a7Dj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F758d8107-dbad-40c8-91ab-3a7e0141b7b2_1486x194.png" width="1456" height="190" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/758d8107-dbad-40c8-91ab-3a7e0141b7b2_1486x194.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:190,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:77316,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/205878996?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F758d8107-dbad-40c8-91ab-3a7e0141b7b2_1486x194.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!a7Dj!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F758d8107-dbad-40c8-91ab-3a7e0141b7b2_1486x194.png 424w, /__u/substackcdn.com/image/fetch/$s_!a7Dj!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F758d8107-dbad-40c8-91ab-3a7e0141b7b2_1486x194.png 848w, /__u/substackcdn.com/image/fetch/$s_!a7Dj!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F758d8107-dbad-40c8-91ab-3a7e0141b7b2_1486x194.png 1272w, /__u/substackcdn.com/image/fetch/$s_!a7Dj!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F758d8107-dbad-40c8-91ab-3a7e0141b7b2_1486x194.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><ul><li><p><em>Well, our hacky little Rust script works; here is our output.wav audio file ripped from a video MP4.</em></p></li></ul><p>Next, transcription: hackey is fine, but we need to pull text from the audio file. </p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/warning-this-rust-code-was-written?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Data Engineering Central! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/warning-this-rust-code-was-written?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/p/warning-this-rust-code-was-written?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share"><span>Share</span></a></p></div><div><hr></div><h3>Transcription with whisper-rs.</h3><p>One thing I enjoy about hand-rolling code is not handing off the thinking part to our benevolent master Cladius Maximus. Working on scratching out a version of what I want <em>requires me to do my own research</em> into what others have found useful for solving problems.</p><p>The problem with <mark data-color="#00ff00" style="background-color: rgb(0, 255, 0); color: rgb(0, 0, 0);">The Vibes</mark> is that we don&#8217;t question the LLM&#8217;s choices enough. We tab and move on. What causes the invisible gremlins, the weights trained in some dark evil frontier lab, to pick one tool over another for solving a problem?</p><ul><li><p><em>Those reasons won&#8217;t be the same for a human.</em></p></li></ul><p><a href="https://github.com/openai/whisper">OpenAI has a model, Whisper</a>, that is a general-purpose speech recognition. Look, maybe we will turn back to the models, but not for our code.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://github.com/openai/whisper" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!sV0E!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F442b9fe2-b280-4313-9115-6b89ce15be51_1988x550.png 424w, /__u/substackcdn.com/image/fetch/$s_!sV0E!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F442b9fe2-b280-4313-9115-6b89ce15be51_1988x550.png 848w, /__u/substackcdn.com/image/fetch/$s_!sV0E!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F442b9fe2-b280-4313-9115-6b89ce15be51_1988x550.png 1272w, /__u/substackcdn.com/image/fetch/$s_!sV0E!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F442b9fe2-b280-4313-9115-6b89ce15be51_1988x550.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!sV0E!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F442b9fe2-b280-4313-9115-6b89ce15be51_1988x550.png" width="1456" height="403" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/442b9fe2-b280-4313-9115-6b89ce15be51_1988x550.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:403,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:119984,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://github.com/openai/whisper&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/205878996?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F442b9fe2-b280-4313-9115-6b89ce15be51_1988x550.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!sV0E!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F442b9fe2-b280-4313-9115-6b89ce15be51_1988x550.png 424w, /__u/substackcdn.com/image/fetch/$s_!sV0E!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F442b9fe2-b280-4313-9115-6b89ce15be51_1988x550.png 848w, /__u/substackcdn.com/image/fetch/$s_!sV0E!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F442b9fe2-b280-4313-9115-6b89ce15be51_1988x550.png 1272w, /__u/substackcdn.com/image/fetch/$s_!sV0E!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F442b9fe2-b280-4313-9115-6b89ce15be51_1988x550.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"></figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!YW6x!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98c37801-1c40-4085-ac1f-6157271fa9c5_1776x966.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!YW6x!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98c37801-1c40-4085-ac1f-6157271fa9c5_1776x966.png 424w, /__u/substackcdn.com/image/fetch/$s_!YW6x!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98c37801-1c40-4085-ac1f-6157271fa9c5_1776x966.png 848w, /__u/substackcdn.com/image/fetch/$s_!YW6x!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98c37801-1c40-4085-ac1f-6157271fa9c5_1776x966.png 1272w, /__u/substackcdn.com/image/fetch/$s_!YW6x!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98c37801-1c40-4085-ac1f-6157271fa9c5_1776x966.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!YW6x!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98c37801-1c40-4085-ac1f-6157271fa9c5_1776x966.png" width="1456" height="792" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/98c37801-1c40-4085-ac1f-6157271fa9c5_1776x966.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:792,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:257479,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/205878996?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98c37801-1c40-4085-ac1f-6157271fa9c5_1776x966.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!YW6x!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98c37801-1c40-4085-ac1f-6157271fa9c5_1776x966.png 424w, /__u/substackcdn.com/image/fetch/$s_!YW6x!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98c37801-1c40-4085-ac1f-6157271fa9c5_1776x966.png 848w, /__u/substackcdn.com/image/fetch/$s_!YW6x!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98c37801-1c40-4085-ac1f-6157271fa9c5_1776x966.png 1272w, /__u/substackcdn.com/image/fetch/$s_!YW6x!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98c37801-1c40-4085-ac1f-6157271fa9c5_1776x966.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Looks like we have some pretty small <a href="https://github.com/openai/whisper">Whisper</a> models available, which is great; we can probably use anything from <em><strong>tiny</strong></em> to <em><strong>base</strong></em>.</p><blockquote><p>Of course, we could find the <a href="https://crates.io/crates/whisper-rs">Rust wrapper</a> for this tool, basically the Rust bindings to whisper.cpp</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://crates.io/crates/whisper-rs" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!wnE-!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07e2c404-8d03-4cb6-8d64-90d37105895c_1772x914.png 424w, /__u/substackcdn.com/image/fetch/$s_!wnE-!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07e2c404-8d03-4cb6-8d64-90d37105895c_1772x914.png 848w, /__u/substackcdn.com/image/fetch/$s_!wnE-!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07e2c404-8d03-4cb6-8d64-90d37105895c_1772x914.png 1272w, /__u/substackcdn.com/image/fetch/$s_!wnE-!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07e2c404-8d03-4cb6-8d64-90d37105895c_1772x914.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!wnE-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07e2c404-8d03-4cb6-8d64-90d37105895c_1772x914.png" width="1456" height="751" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/07e2c404-8d03-4cb6-8d64-90d37105895c_1772x914.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:751,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:135907,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://crates.io/crates/whisper-rs&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/205878996?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07e2c404-8d03-4cb6-8d64-90d37105895c_1772x914.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!wnE-!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07e2c404-8d03-4cb6-8d64-90d37105895c_1772x914.png 424w, /__u/substackcdn.com/image/fetch/$s_!wnE-!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07e2c404-8d03-4cb6-8d64-90d37105895c_1772x914.png 848w, /__u/substackcdn.com/image/fetch/$s_!wnE-!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07e2c404-8d03-4cb6-8d64-90d37105895c_1772x914.png 1272w, /__u/substackcdn.com/image/fetch/$s_!wnE-!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07e2c404-8d03-4cb6-8d64-90d37105895c_1772x914.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Ok, so let&#8217;s see if we can add some more hacky Rust code to get <a href="https://crates.io/crates/whisper-rs">whisper-rs</a> to extract a transcript from our audio file. Don&#8217;t worry, we will revisit the code at some point to do some refactoring, but I&#8217;m mostly just thinking about getting the end-to-end working at the moment.</p><ul><li><p><em>Doing things &#8220;right&#8221; can come later.</em></p></li></ul><p>Ok, let&#8217;s download one of the Whisper models onto our machine. </p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;bash&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-bash">mkdir -p models
curl -L -o models/ggml-small.en.bin \
  https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-small.en.bin</code></pre></div><p>Easy enough, now for the Rust bindings.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;rust&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-rust">use unbundle::{self, MediaFile, AudioFormat, AudioHandle};
use std::env;
use whisper_rs::{WhisperContext, WhisperContextParameters, FullParams, SamplingStrategy};


fn main() {
    let args: Vec&lt;String&gt; = env::args().collect();
    let input_file = &amp;args[1];
    println!("Starting to work on {input_file}");
    let mut video_data = unbundle::MediaFile::open(&amp;input_file).expect("Failed to open video file");
    let audio_data = process_video(&amp;mut video_data);
    
    let path_to_model = "models/ggml-small.en.bin";
    let audio_samples = pull_audio_samples(audio_data);
    pull_transcript(path_to_model, &amp;audio_samples);
}


fn process_video(mut video_data: &amp;mut MediaFile) -&gt; AudioHandle&lt;'_&gt; {
    return video_data.audio();
}

fn pull_audio_samples(audio_data: AudioHandle&lt;'_&gt;) -&gt; Vec&lt;f32&gt; {
    let samples: Vec&lt;f32&gt; = audio_data
      .sample_iter().expect("Failed sampling")
      .flat_map(|chunk| chunk.unwrap().samples)
      .collect();
    return samples;
}


fn pull_transcript(path_to_model: &amp;str, audio_sample: &amp;Vec&lt;f32&gt;) {
    let ctx = WhisperContext::new_with_params(
        path_to_model,
        WhisperContextParameters::default()
    ).expect("failed to load model");

    let params = FullParams::new(SamplingStrategy::BeamSearch {
        beam_size: 5,
        patience: -1.0,
    });

    let mut state = ctx.create_state().expect("failed to create state");
    state
        .full(params, &amp;audio_sample[..])
        .expect("failed to run model");

    let mut transcript = String::new();
    for segment in state.as_iter() {
        transcript.push_str(&amp;segment.to_string());
    }
    println!("{transcript}");
}</code></pre></div><p>You can see that not much has changed, just the addition of <em>whisper</em>. When we <em><strong>process_video</strong></em> we return the raw audio, then we chunk that raw audio data out into a Vector, this allows us to <em><strong>pull_transcript</strong></em> with <em>whisper.</em></p><p>Running the command.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;bash&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-bash">PATH="/opt/homebrew/bin:$PATH" \
  PKG_CONFIG_PATH="/opt/homebrew/opt/ffmpeg/lib/pkgconfig" \
  cargo run -- test.mp4</code></pre></div><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;90a9ecd1-fa8a-49e4-a3ee-97abe926f99c&quot;,&quot;duration&quot;:null}"></div><p>This is hilarious.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">whisper_full_with_state: decoder  4: score = -5.57022, result_len =   4, avg_logprobs = -5.57022, entropy =  1.38629
whisper_full_with_state: best decoder = 0
single timestamp ending - skip entire chunk
seek = 36985, seek_delta = 2141
 I live in the capital of Twerba and Trutar. [growling] I am a woman. I am... my wife. 
[sigh] [growling] [growling] [growling] [growling] [growling] [growling]
 [growling] [growling] [growling] [growling] [growling] [growling]
 [growling] [growling] [growling] [growling] [growling] [growling] 
[growling] [growling] [growling] [growling] [growling] [growling]
 [growling] [growling] [growling] [growling] [growling] [growling] 
[growling] [growling] [growling] [growling]</code></pre></div><p>So, apparently, we have something running end-to-end, although I can tell you this is not how the conversation went. Maybe with the exception of &#8220;my wife. [sigh].&#8221;</p><blockquote><p><em>Clearly, we have a frigging in the rigging somewhere, but I see this as a positive: the fact we have ~50 lines of Rust code and can take a video file and get something that is supposed to be a transcript out &#8230; well, that&#8217;s fun!</em></p></blockquote><p>I&#8217;m no audio or video expert, but one can imagine this has something to do with the audio or video format, probably the audio being pulled from the video. From what I can tell, the Whisper model requires &#8220;<strong>16 kHz sample rate, 16-bit samples for audio.</strong>&#8221;</p><ul><li><p>Great, now I, who know nothing, need to figure out how to resample audio data.</p></li></ul><p>Of course, a quick Google search shows <a href="https://docs.rs/rubato/latest/rubato/">rubato</a>, a small Rust package we can use to resample. The <a href="https://docs.rs/rubato/latest/rubato/https://docs.rs/rubato/latest/rubato/">rubato</a> docs show a simple example of how to do the resampling, so hopefully this shouldn&#8217;t be too bad.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://docs.rs/rubato/latest/rubato/https://docs.rs/rubato/latest/rubato/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!c4SH!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8c58f20-7feb-435c-aba8-a495086d920e_2408x674.png 424w, /__u/substackcdn.com/image/fetch/$s_!c4SH!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8c58f20-7feb-435c-aba8-a495086d920e_2408x674.png 848w, /__u/substackcdn.com/image/fetch/$s_!c4SH!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8c58f20-7feb-435c-aba8-a495086d920e_2408x674.png 1272w, /__u/substackcdn.com/image/fetch/$s_!c4SH!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8c58f20-7feb-435c-aba8-a495086d920e_2408x674.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!c4SH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8c58f20-7feb-435c-aba8-a495086d920e_2408x674.png" width="1456" height="408" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a8c58f20-7feb-435c-aba8-a495086d920e_2408x674.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:408,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:170676,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://docs.rs/rubato/latest/rubato/https://docs.rs/rubato/latest/rubato/&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/205878996?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8c58f20-7feb-435c-aba8-a495086d920e_2408x674.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!c4SH!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8c58f20-7feb-435c-aba8-a495086d920e_2408x674.png 424w, /__u/substackcdn.com/image/fetch/$s_!c4SH!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8c58f20-7feb-435c-aba8-a495086d920e_2408x674.png 848w, /__u/substackcdn.com/image/fetch/$s_!c4SH!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8c58f20-7feb-435c-aba8-a495086d920e_2408x674.png 1272w, /__u/substackcdn.com/image/fetch/$s_!c4SH!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8c58f20-7feb-435c-aba8-a495086d920e_2408x674.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>One thing we should also do is add a check to get the current sample rate, then convert it to the 16Hz required for Whisper to work. I download video files from all sorts of sources: Riverside.fm, Substack, etc. Ok, <span>let&#8217;s update our&nbsp;</span><em><span>pull_audio_samples</span></em><span>&nbsp;method to determine the sample rate of the chunks we are working with</span>.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;rust&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-rust">fn pull_audio_samples(audio_data: AudioHandle&lt;'_&gt;) -&gt; (Vec&lt;f32&gt;, u32) {
     let mut sample_rate = 0u32;
     let mut samples = Vec::new();
     for chunk in audio_data.sample_iter().expect("Failed sampling") {
         let chunk = chunk.unwrap();
         sample_rate = chunk.sample_rate; // same on every chunk
         samples.extend(chunk.samples);
     }
     (samples, sample_rate)
 }</code></pre></div><p>Then, the nasty old complicated resampling; it&#8217;s ugly to look at, too verbose for my liking, but it works.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;rust&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-rust">fn resample(input: &amp;[f32], from: u32, to: u32) -&gt; Vec&lt;f32&gt; {
    let mut resampler = Fft::&lt;f32&gt;::new(
        from as usize, // input rate
        to as usize,      // output rate (16000)
        1024, // chunk size in frames
        1,                  
        1,   // channels = mono
        FixedSync::Both,
    )
    .expect("resampler construction failed");

    let in_len = input.len();
    let out_len = resampler.process_all_needed_output_len(in_len);

    let input_buf = InterleavedOwned::new_from(input.to_vec(), 1, in_len)
        .expect("input buffer construction failed");
    let mut output_buf = InterleavedOwned::new(0.0f32, 1, out_len);

    let (_nbr_in, nbr_out) = resampler
        .process_all_into_buffer(&amp;input_buf, &amp;mut output_buf, in_len, None)
        .expect("resample failed");

    let mut out = output_buf.take_data(); // mono =&gt; frames == samples
    out.truncate(nbr_out);
    out
}</code></pre></div><p>Can you imagine some Rust wizard sitting in a dark basement somewhere who thought it was fun to write a Rust crate for resampling audio? <em><strong>Good Lord.</strong></em></p><p>Anyways, with these two update/new methods, let&#8217;s re-run our script and see if we can get a real transcript back, and not &#8220;<em>I live in the capital of Twerba and Trutar. [growling].&#8221;</em></p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;43449cdc-f9d0-4872-95ff-0793b1483faa&quot;,&quot;duration&quot;:null}"></div><div class="pullquote"><p>single timestamp ending - skip entire chunk<br>seek = 12328, seek_delta = 852</p></div><div class="callout-block" data-callout="true"><p>Yeah, so I predict that companies are gonna continue to struggle to get return. They&#8217;re gonna pay a lot of money to Enthropic and to OpenAI and wonder where are the results. I mean, I think there are results, but there&#8217;s some results that are positive, but there&#8217;s also a lot of waste and slop and consequences of the slop. And yeah, and again, right, I think the foundation labs, like as long as they sell tokens, like as long as people are still paying for the tokens, like they&#8217;re happy, but I think as companies put like harder constraints on token budgets and things like that, it&#8217;s gonna be really interesting to see how things evolve. But maybe there&#8217;ll be some radical technological innovation that makes like producing tokens a lot cheaper, such that what I really want is I got my hands on GLM 5.2, kind of like one of the latest open weights Chinese models and running on physical infrastructure, and it worked great. And I&#8217;m just like, how long will it be till I can just have like a server in my closet that runs one of these, one trillion parameter models, open weights models, and I don&#8217;t have to, I can just pay for the power for that server, and I don&#8217;t have to, it&#8217;d be nice for that server to like not cost 50 or $100,000. I think that&#8217;s how much a server that can run these models costs right now, but maybe in the fullness of time, like the open weights models would get good enough, and the hardware will become affordable enough that there won&#8217;t be a need to send all of our money to Dario or Sam Altman, and just plug those in, put the machine into the wall and get coding. I think I&#8217;m looking forward to that.</p></div><p>Well, look at that! <strong>We got our own decent video-to-text transcription tool!</strong> Of course, we could have used a slower, more accurate Whisper model, but this looks good enough for what I need! All I need to do is maybe add another command-line argument to write the transcript to a text file.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;rust&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-rust">use std::fs;

let ouput_file = &amp;args[2];
...
let transcript = pull_transcript(path_to_model, &amp;samples);
fs::write(ouput_file, transcript).expect("Should be able to write to {output_file}");</code></pre></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Data Engineering Central is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h3>Thoughts and more.</h3><p>Well, that was fun, wasn&#8217;t it? A little wandering down memory lane to the good old days of fighting the borrow checker and compiler. Trust me, there was plenty of that going on that I didn&#8217;t show you.</p><p>If you want, as always, you can get this <a href="https://github.com/danielbeach/transcribe-rs">codebase on GitHub</a>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://github.com/danielbeach/transcribe-rshttps://github.com/danielbeach/transcribe-rs" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!hA0g!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ca36a45-5dac-4737-b2c1-e91cb704e43d_2026x1068.png 424w, /__u/substackcdn.com/image/fetch/$s_!hA0g!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ca36a45-5dac-4737-b2c1-e91cb704e43d_2026x1068.png 848w, /__u/substackcdn.com/image/fetch/$s_!hA0g!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ca36a45-5dac-4737-b2c1-e91cb704e43d_2026x1068.png 1272w, /__u/substackcdn.com/image/fetch/$s_!hA0g!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ca36a45-5dac-4737-b2c1-e91cb704e43d_2026x1068.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!hA0g!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ca36a45-5dac-4737-b2c1-e91cb704e43d_2026x1068.png" width="1456" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2ca36a45-5dac-4737-b2c1-e91cb704e43d_2026x1068.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:237855,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://github.com/danielbeach/transcribe-rshttps://github.com/danielbeach/transcribe-rs&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/205878996?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ca36a45-5dac-4737-b2c1-e91cb704e43d_2026x1068.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!hA0g!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ca36a45-5dac-4737-b2c1-e91cb704e43d_2026x1068.png 424w, /__u/substackcdn.com/image/fetch/$s_!hA0g!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ca36a45-5dac-4737-b2c1-e91cb704e43d_2026x1068.png 848w, /__u/substackcdn.com/image/fetch/$s_!hA0g!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ca36a45-5dac-4737-b2c1-e91cb704e43d_2026x1068.png 1272w, /__u/substackcdn.com/image/fetch/$s_!hA0g!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ca36a45-5dac-4737-b2c1-e91cb704e43d_2026x1068.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>To be honest, it was good to have those old feelings of not being able to figure something out right away. It took me two days, off and on, during my free time to hack this code together. Remember to exercise my brain about data, mutable or not, borrow it or not, data types &#8230; you know &#8230; just programming stuff.</p><p>Sure, I bet Claude could write this Rust code way better than I, much prettier, catch all the rough edges, who knows what path it would have chosen. That&#8217;s ok. I enjoyed the process of researching and thinking myself. Not worried about anyone else but me.</p><p>It was a nice reminder of minimalist code: not everything needs a ton of boilerplate, &#8220;to be done right,&#8221; or anything fancy. Seems like Rust is like riding a bike; it comes back awful quick. Maybe I will make it a habit.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/warning-this-rust-code-was-written?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Data Engineering Central! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/warning-this-rust-code-was-written?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/p/warning-this-rust-code-was-written?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share"><span>Share</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[Agentic Data Engineering Is Here — But Can It Close the Loop?]]></title><description><![CDATA[a conversation with Hugo Lu]]></description><link>https://dataengineeringcentral.substack.com/p/agentic-data-engineering-is-here</link><guid isPermaLink="false">https://dataengineeringcentral.substack.com/p/agentic-data-engineering-is-here</guid><dc:creator><![CDATA[Daniel Beach]]></dc:creator><pubDate>Wed, 22 Jul 2026 14:05:27 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/204554354/03cc2dfeb71fd4df5b6121eb2bd1bd86.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>AI can now write SQL, generate Python, review pull requests, and build entire applications with a few well-crafted prompts. Yet despite all of that progress, data engineering still feels oddly resistant to the full AI revolution. Pipelines break. Data models drift. Production data needs validation. Someone still has to close the loop.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.linkedin.com/in/hugo-lu-confirmed/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!R7WY!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ef8741d-c934-4d04-bf23-250f52db7dab_1566x572.png 424w, /__u/substackcdn.com/image/fetch/$s_!R7WY!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ef8741d-c934-4d04-bf23-250f52db7dab_1566x572.png 848w, /__u/substackcdn.com/image/fetch/$s_!R7WY!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ef8741d-c934-4d04-bf23-250f52db7dab_1566x572.png 1272w, /__u/substackcdn.com/image/fetch/$s_!R7WY!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ef8741d-c934-4d04-bf23-250f52db7dab_1566x572.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!R7WY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ef8741d-c934-4d04-bf23-250f52db7dab_1566x572.png" width="1456" height="532" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7ef8741d-c934-4d04-bf23-250f52db7dab_1566x572.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:532,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:610426,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.linkedin.com/in/hugo-lu-confirmed/&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/204554354?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ef8741d-c934-4d04-bf23-250f52db7dab_1566x572.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!R7WY!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ef8741d-c934-4d04-bf23-250f52db7dab_1566x572.png 424w, /__u/substackcdn.com/image/fetch/$s_!R7WY!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ef8741d-c934-4d04-bf23-250f52db7dab_1566x572.png 848w, /__u/substackcdn.com/image/fetch/$s_!R7WY!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ef8741d-c934-4d04-bf23-250f52db7dab_1566x572.png 1272w, /__u/substackcdn.com/image/fetch/$s_!R7WY!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ef8741d-c934-4d04-bf23-250f52db7dab_1566x572.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><blockquote><p>In this episode of the Data Engineering Central Podcast, I sat down with <strong><a href="https://www.linkedin.com/in/hugo-lu-confirmed/">Hugo Lu</a></strong>, founder and CEO of Orchestra, to talk about what &#8220;agentic data engineering&#8221; actually means beyond the buzzwords. Rather than another conversation about AI replacing engineers, we dug into the infrastructure that&#8217;s still missing before autonomous data platforms become reality.</p></blockquote><ul><li><p>Hugo shares his unlikely path into data engineering, from investment banking to helping build data systems at Juul, before eventually founding Orchestra. </p></li></ul><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/agentic-data-engineering-is-here?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Data Engineering Central! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/agentic-data-engineering-is-here?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/p/agentic-data-engineering-is-here?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share"><span>Share</span></a></p></div><p>What started as an effort to simplify orchestration has evolved into a broader vision where AI agents don&#8217;t just generate code, but can safely execute work, observe the results, validate changes, and iteratively improve pipelines inside secure environments. </p><ul><li><p>That ability to observe outcomes, what many are calling &#8220;closing the loop,&#8221; may be the missing ingredient preventing today&#8217;s coding agents from becoming truly autonomous.</p></li></ul><p>We also explore why data engineering has not experienced the same AI disruption as traditional software engineering. While AI can produce application code remarkably well, production data systems introduce a completely different set of problems. Branching production data, validating schema changes, testing transformations against realistic datasets, and understanding business semantics all remain difficult challenges that require much more than simply generating code.</p><p>The conversation naturally turns toward the future of the profession itself. We discuss whether junior engineers are losing the traditional apprenticeship path, how senior engineers are shifting from writing code to reviewing AI-generated work, and why decades of experience debugging production systems may actually become even more valuable in an AI-first world. Rather than eliminating engineering expertise, AI may simply be changing where that expertise is applied.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Data Engineering Central is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><blockquote><p><em>Finally, we dive into the rapidly changing data infrastructure landscape. From DuckDB and Polars to serverless compute, Iceberg, semantic layers, AI-native orchestration, and the growing concern over rising LLM token costs, we discuss where the industry appears to be heading and which trends are likely to stick long after today&#8217;s hype cycle fades.</em></p></blockquote><p>If you&#8217;ve been wondering what comes after Orchestration, how AI agents will actually manage production data pipelines, or whether data engineering itself is about to undergo its biggest transformation in a decade, I think you&#8217;ll enjoy this conversation.</p><h4>In this episode we discuss</h4><ul><li><p>What &#8220;agentic data engineering&#8221; actually means.</p></li><li><p>Why AI still struggles to fully automate data engineering.</p></li><li><p>The importance of closing the loop with production feedback.</p></li><li><p>Why orchestration may become the operating system for AI agents.</p></li><li><p>The changing role of data engineers in an AI-first world.</p></li><li><p>Why junior engineers face a very different career path than previous generations.</p></li><li><p>DuckDB, Polars, serverless data platforms, and where modern infrastructure is heading.</p></li><li><p>Whether today&#8217;s dependence on proprietary LLMs will create tomorrow&#8217;s vendor lock-in.</p></li><li><p>How Orchestra is building infrastructure for AI-native data platforms.</p></li></ul><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/agentic-data-engineering-is-here?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Data Engineering Central! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/agentic-data-engineering-is-here?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/p/agentic-data-engineering-is-here?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share"><span>Share</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[ADBC?]]></title><description><![CDATA[Guest Post by Anonymous Rust Dev]]></description><link>https://dataengineeringcentral.substack.com/p/adbc</link><guid isPermaLink="false">https://dataengineeringcentral.substack.com/p/adbc</guid><dc:creator><![CDATA[Daniel Beach]]></dc:creator><pubDate>Mon, 20 Jul 2026 13:57:32 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!LGgK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa874b871-dd61-40ab-8ac5-90029a197fdf_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!LGgK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa874b871-dd61-40ab-8ac5-90029a197fdf_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!LGgK!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa874b871-dd61-40ab-8ac5-90029a197fdf_1536x1024.png 424w, /__u/substackcdn.com/image/fetch/$s_!LGgK!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa874b871-dd61-40ab-8ac5-90029a197fdf_1536x1024.png 848w, /__u/substackcdn.com/image/fetch/$s_!LGgK!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa874b871-dd61-40ab-8ac5-90029a197fdf_1536x1024.png 1272w, /__u/substackcdn.com/image/fetch/$s_!LGgK!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa874b871-dd61-40ab-8ac5-90029a197fdf_1536x1024.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!LGgK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa874b871-dd61-40ab-8ac5-90029a197fdf_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a874b871-dd61-40ab-8ac5-90029a197fdf_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1813063,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/207601807?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa874b871-dd61-40ab-8ac5-90029a197fdf_1536x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!LGgK!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa874b871-dd61-40ab-8ac5-90029a197fdf_1536x1024.png 424w, /__u/substackcdn.com/image/fetch/$s_!LGgK!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa874b871-dd61-40ab-8ac5-90029a197fdf_1536x1024.png 848w, /__u/substackcdn.com/image/fetch/$s_!LGgK!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa874b871-dd61-40ab-8ac5-90029a197fdf_1536x1024.png 1272w, /__u/substackcdn.com/image/fetch/$s_!LGgK!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa874b871-dd61-40ab-8ac5-90029a197fdf_1536x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>You might think I, your friendly neighborhood Anonymous Rust Dev, am having some dyslexic trouble with the alphabet, but alas, no mistake was made. Arrow&#8217;s answer to cross-platform database connectivity, the Arrow Database Connectivity API is, to quote <a href="https://arrow.apache.org/docs/format/ADBC.html">Arrow&#8217;s docs</a>:</p><div class="callout-block" data-callout="true"><p><em>A set of abstract APIs in different languages (C/C++, Go, and Java, with more on the way) for working with databases and Arrow data. For example, query results in ADBC are all returned as Arrow data streams, not row-by-row.<br>&#8212;&#8212;&#8212;&#8212;&#8212;</em></p><p><em>A set of implementations of that API in different languages (C/C++, C#/.NET, Go, Java, Python, and Ruby) that target different databases (e.g. PostgreSQL, SQLite, any database supporting Flight SQL).</em></p></div><p>What makes this API special, and why would anyone use it over any other available tool? Let&#8217;s find out together as we look under the hood of this thing.</p><div><hr></div><h2>Overview</h2><p>Arrow&#8217;s <a href="https://arrow.apache.org/blog/2023/01/05/introducing-arrow-adbc/">blog</a> introduced ADBC in early 2023. At the top, in the first sentences, they offer two compelling reasons you might care:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!L559!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48d882c2-1365-4021-93a1-ca6a116cec92_1660x748.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!L559!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48d882c2-1365-4021-93a1-ca6a116cec92_1660x748.png 424w, /__u/substackcdn.com/image/fetch/$s_!L559!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48d882c2-1365-4021-93a1-ca6a116cec92_1660x748.png 848w, /__u/substackcdn.com/image/fetch/$s_!L559!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48d882c2-1365-4021-93a1-ca6a116cec92_1660x748.png 1272w, /__u/substackcdn.com/image/fetch/$s_!L559!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48d882c2-1365-4021-93a1-ca6a116cec92_1660x748.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!L559!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48d882c2-1365-4021-93a1-ca6a116cec92_1660x748.png" width="1456" height="656" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/48d882c2-1365-4021-93a1-ca6a116cec92_1660x748.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:656,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:178494,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/207601807?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48d882c2-1365-4021-93a1-ca6a116cec92_1660x748.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!L559!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48d882c2-1365-4021-93a1-ca6a116cec92_1660x748.png 424w, /__u/substackcdn.com/image/fetch/$s_!L559!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48d882c2-1365-4021-93a1-ca6a116cec92_1660x748.png 848w, /__u/substackcdn.com/image/fetch/$s_!L559!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48d882c2-1365-4021-93a1-ca6a116cec92_1660x748.png 1272w, /__u/substackcdn.com/image/fetch/$s_!L559!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48d882c2-1365-4021-93a1-ca6a116cec92_1660x748.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p><em>ADBC is a columnar, minimal-overhead alternative to JDBC/ODBC for analytical applications.</em></p></li><li><p><em>In other words, ADBC is a single API for loading and unloading Arrow data across different databases. (emphasis mine)</em></p></li></ul><p>I&#8217;ll admit, when I first heard about this, I was hoping it was ODBC-compatible. Being able to point any of my existing applications at it simply by modifying the connection string seems appealing to me, but that&#8217;s not quite how it works. Though technically, I guess that&#8217;s not really a good way to think about it, anyway; consider the <a href="https://arrow.apache.org/adbc/current/faq.html">FAQ</a> on some of the benefits of the ADBC approach:</p><blockquote><p>JDBC uses row-based interfaces like ResultSet. When working with columnar data, like Arrow data, this means that we have to convert the data at least once and possibly twice...</p></blockquote><p>In keeping with Arrow&#8217;s &#8220;zero-copy&#8221; or &#8220;minimal-copy&#8221; ethos, we would like to avoid these unnecessary conversions. [...] ODBC uses caller-allocated buffers (<em>which often means forcing a data copy</em>), and ODBC specifies data layouts that are not quite Arrow-compatible (<em>requiring a data conversion anyway</em>).</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/adbc?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Data Engineering Central! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/adbc?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/p/adbc?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share"><span>Share</span></a></p></div><div><hr></div><p><em><strong><span>Thanks to </span><a href="http://www.delta.io/">Delta</a><span> for sponsoring this newsletter! I use Delta Lake daily, and I believe it represents the future of Data Engineering. Content like this would not be possible without their support. Check out </span><a href="http://www.delta.io/">their website</a><span> below.</span></strong></em></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="http://www.delta.io" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!wmd9!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F708be49f-dfaa-498f-a862-8e9810a5fc58_600x123.webp 424w, /__u/substackcdn.com/image/fetch/$s_!wmd9!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F708be49f-dfaa-498f-a862-8e9810a5fc58_600x123.webp 848w, /__u/substackcdn.com/image/fetch/$s_!wmd9!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F708be49f-dfaa-498f-a862-8e9810a5fc58_600x123.webp 1272w, /__u/substackcdn.com/image/fetch/$s_!wmd9!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F708be49f-dfaa-498f-a862-8e9810a5fc58_600x123.webp 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!wmd9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F708be49f-dfaa-498f-a862-8e9810a5fc58_600x123.webp" width="600" height="123" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/708be49f-dfaa-498f-a862-8e9810a5fc58_600x123.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:123,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4196,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:&quot;http://www.delta.io&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="/__u/substackcdn.com/image/fetch/$s_!wmd9!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F708be49f-dfaa-498f-a862-8e9810a5fc58_600x123.webp 424w, /__u/substackcdn.com/image/fetch/$s_!wmd9!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F708be49f-dfaa-498f-a862-8e9810a5fc58_600x123.webp 848w, /__u/substackcdn.com/image/fetch/$s_!wmd9!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F708be49f-dfaa-498f-a862-8e9810a5fc58_600x123.webp 1272w, /__u/substackcdn.com/image/fetch/$s_!wmd9!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F708be49f-dfaa-498f-a862-8e9810a5fc58_600x123.webp 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><div><hr></div><p>Hey, as a Rustacean, I love zero-copy. Still, all I&#8217;ve seen so far is what ADBC <em>isn&#8217;t</em>. Let&#8217;s keep reading:</p><p>ADBC is a client API specification. It doesn&#8217;t define what goes on between your client and the database, just the API calls that you make as an application developer. Under the hood, a driver must handle those API calls and communicate with the actual database.</p><p>...<em>an ADBC driver can be written for a database purely as a client library.</em></p><p>Maybe I&#8217;m just dense; I&#8217;m still not quite getting it. There&#8217;s a lot of energy spent in the FAQ comparing ADBC to Arrow Flight SQL, but that still doesn&#8217;t quite click for me. It&#8217;s not until I encounter the following that I think I understand what&#8217;s going on:</p><p><strong>What is the ADBC SQL dialect?</strong></p><div class="callout-block" data-callout="true"><p>Trick question! ADBC is not an SQL dialect. All an ADBC driver needs to do is pass your query string to the database and return the result set as Arrow data. In that respect, it&#8217;s like JDBC. (ODBC has a &#8220;standard&#8221; SQL dialect that it defines; ADBC does not do this.)</p></div><p>So, in a nutshell, it seems ADBC&#8217;s job is to abstract the work of running a query and returning a result set in a consistent (Arrow-based) form. It seemingly doesn&#8217;t care about the query itself, but rather primarily marshals your request to its destination and back.</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Data Engineering Central is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>Getting Started</h2><h3>Rust</h3><p>I&#8217;m gonna start by looking at <a href="https://arrow.apache.org/adbc/current/rust/quickstart.html#running-queries">Rust&#8217;s quickstart</a>, since that&#8217;s what I know; here&#8217;s some copy-pasta demonstrating an ADBC query against DataFusion:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;rust&quot;,&quot;nodeId&quot;:&quot;2b2ee440-33bb-4ca1-8311-d1ce2367b6aa&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-rust">// These traits must be in scope
use adbc_core::{Connection, Database, Driver, Statement};

let mut driver = adbc_datafusion::DataFusionDriver {};
let db = driver.new_database().expect("Failed to create database handle");
let mut conn = db.new_connection().expect("Failed to create connection");</code></pre></div><blockquote><p>To run queries, we can create a statement and set a query:</p></blockquote><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;rust&quot;,&quot;nodeId&quot;:&quot;fa2c83e9-acbe-43f4-9d53-93d8ef8e5617&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-rust">let mut stmt = conn.new_statement().expect("Failed to create statement");
stmt.set_sql_query("SELECT 1").expect("Failed to set SQL query");</code></pre></div><blockquote><p>We can then execute the query to get an Arrow <code>RecordBatchReader</code>:</p></blockquote><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;rust&quot;,&quot;nodeId&quot;:&quot;06a1ec34-4dfa-47d7-ab00-962bcbbbe7e4&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-rust">let reader = stmt.execute().expect("Failed to execute statement");
for batch in reader {
    let batch = batch.expect("Failed to read batch");
    println!("{:?}", batch);
}</code></pre></div><p>If you don&#8217;t know Rust well, that&#8217;s fine, it&#8217;s more the flow of the application I&#8217;m interested in than the language itself.<strong> As with ODBC/JDBC, it&#8217;s as simple as establishing a connection, executing a query, and traversing the resulting recordset.</strong> It&#8217;s a pretty familiar formula for anyone who&#8217;s done garden-variety SQL queries against a database.</p><p>Preceding this query, we have the one-time setup necessary to get this working:</p><div class="callout-block" data-callout="true"><p>Add a dependency on adbc_core and adbc_datafusion: $ cargo add adbc_core adbc_datafusion</p></div><p>This is because ADBC depends on drivers, which are provided via Rust&#8217;s Cargo ecosystem.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/adbc?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/p/adbc?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share"><span>Share</span></a></p><div><hr></div><h3>Python</h3><p>If you&#8217;re looking to do things via Python, it&#8217;s similarly easy. I&#8217;ll pick on DuckDB this time...</p><blockquote><p><em>Note: According to the <a href="https://arrow.apache.org/adbc/current/driver/duckdb.html#supported-features">ADBC docs</a>, DuckDB work is still in progress; however looking at the <a href="https://github.com/duckdb/duckdb/issues/7141">referenced PR</a> it seems like it&#8217;s been fully implemented.</em></p></blockquote><p>First, you&#8217;ll need to install <code>lib duckdb</code>. The DuckDB <a href="https://duckdb.org/install/?environment=python">docs</a> will point you in the right direction, which for Python consists of:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;bash&quot;,&quot;nodeId&quot;:&quot;20dc16ae-97ff-44e2-9151-2a94fec67356&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-bash">$ pip install duckdb</code></pre></div><p>Feel free to wipe the sweat from your brow, you&#8217;ve earned it. Now, let&#8217;s dig into the <a href="https://duckdb.org/docs/current/clients/adbc#python">ADBC documentation for DuckDB</a>. More installation stuff:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;bash&quot;,&quot;nodeId&quot;:&quot;0b02246b-bd8f-4056-9dd1-2a2e9b44be25&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-bash">$ pip install adbc_driver_manager pyarrow</code></pre></div><p>It should be pretty apparent by now, but because our recordset comes back in Arrow format, we have a dependency on Arrow. After this, it&#8217;s ready to go; shown below is their example:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;3f7ed9dd-038a-4fbd-8116-176df2765f84&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">import adbc_driver_duckdb.dbapi
import pyarrow

data = pyarrow.record_batch(
    [[1, 2, 3, 4], ["a", "b", "c", "d"]],
    names = ["ints", "strs"],
)

with adbc_driver_duckdb.dbapi.connect("test.db") as conn, conn.cursor() as cur:
    cur.adbc_ingest("AnswerToEverything", data)</code></pre></div><div><hr></div><h3>Other languages</h3><p>ADBC driver support for various platforms is available <a href="https://arrow.apache.org/adbc/current/driver/status.html">here</a>. Of note, the stable platforms, which generally have PyPI packages available, currently include:</p><ul><li><p><em>Apache Arrow Flight SQL</em></p></li><li><p><em>DuckDB</em></p></li><li><p><em>PostgreSQL</em></p></li><li><p><em>SQLite</em></p></li><li><p><em>Snowflake</em></p></li></ul><h2>How it works</h2><p>Just a forewarning, the <a href="https://arrow.apache.org/adbc/current/format/specification.html">ADBC API Standard</a> documentation focuses primarily on the following languages: C/C++, Java, and Go.</p><blockquote><p><em>Other languages, such as Python&#8217;s </em><code>adbc_driver_manager</code><em>, <a href="https://github.com/apache/arrow-adbc/blob/0e8ee4df72d680218f2931d93728c8b1a29fb7c6/python/adbc_driver_manager/adbc_driver_manager/__init__.py#L20-L21">wrap around the C API</a> and offer low-level bindings.</em></p></blockquote><p>The <a href="https://arrow.apache.org/adbc/current/glossary.html">glossary</a> is also helpful at understanding what the moving parts are. In particular, the <a href="https://arrow.apache.org/adbc/current/glossary.html#term-driver">driver</a>, <a href="https://arrow.apache.org/adbc/current/glossary.html#term-driver-manager">driver manager</a>, and <a href="https://arrow.apache.org/adbc/current/glossary.html#term-wire-protocol">wire protocol</a> terms are helpful to understand when dealing with ADBC; in a nutshell: you use a driver manager to handle the selection of drivers (<em>the libraries responsible for connecting to a particular database engine</em>), which themselves implement the correct wire protocol (<em>the implementation details of connecting and transferring data specific to a given database platform</em>).</p><p>Or, to put it another way, the driver manager abstracts away the work of interfacing directly with the driver; see the following from the <a href="https://arrow.apache.org/adbc/main/format/how_manager.html">How Drivers and the Driver Manager Work Together</a> document:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://arrow.apache.org/adbc/main/format/how_manager.html" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!zBXn!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a0c8ce6-0f8c-4a7a-a193-d8d713f4b9cb_1490x342.png 424w, /__u/substackcdn.com/image/fetch/$s_!zBXn!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a0c8ce6-0f8c-4a7a-a193-d8d713f4b9cb_1490x342.png 848w, /__u/substackcdn.com/image/fetch/$s_!zBXn!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a0c8ce6-0f8c-4a7a-a193-d8d713f4b9cb_1490x342.png 1272w, /__u/substackcdn.com/image/fetch/$s_!zBXn!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a0c8ce6-0f8c-4a7a-a193-d8d713f4b9cb_1490x342.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!zBXn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a0c8ce6-0f8c-4a7a-a193-d8d713f4b9cb_1490x342.png" width="1456" height="334" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7a0c8ce6-0f8c-4a7a-a193-d8d713f4b9cb_1490x342.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:334,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:41387,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://arrow.apache.org/adbc/main/format/how_manager.html&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/207601807?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a0c8ce6-0f8c-4a7a-a193-d8d713f4b9cb_1490x342.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!zBXn!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a0c8ce6-0f8c-4a7a-a193-d8d713f4b9cb_1490x342.png 424w, /__u/substackcdn.com/image/fetch/$s_!zBXn!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a0c8ce6-0f8c-4a7a-a193-d8d713f4b9cb_1490x342.png 848w, /__u/substackcdn.com/image/fetch/$s_!zBXn!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a0c8ce6-0f8c-4a7a-a193-d8d713f4b9cb_1490x342.png 1272w, /__u/substackcdn.com/image/fetch/$s_!zBXn!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a0c8ce6-0f8c-4a7a-a193-d8d713f4b9cb_1490x342.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><blockquote><p>...the overall recommended approach is to use the ADBC driver manager. This is a library that <strong>pretends to be a single driver</strong> that can be linked to and used &#8220;like normal&#8221;. Internally, it loads the table of function pointers and tracks which database/connection/statement objects need which &#8220;actual&#8221; driver, making it easy to dynamically load drivers at runtime and use multiple drivers from the same application...</p></blockquote><p>As seen in the Rust and Python examples, the workflow is similar to many OLTP workflows (e.g. ADO or JDBC): establish a connection, prepare a query, execute or fetch results, and enumerate data over a reader interface.</p><p>While it&#8217;s tough to find in the documentation, my impression is that for row-based data (e.g. PostgreSQL), the ADBC driver is performing a conversion into columnar Arrow data. Google&#8217;s AI doesn&#8217;t really seem to echo this, though:</p><div class="callout-block" data-callout="true"><p>&#8212; AI Overview -</p><p>Arrow Database Connectivity (ADBC) is an open-source, API-standard library designed by the Apache Arrow community to stream datasets directly between applications and databases without row-by-row translation overhead.</p><p>The PostgreSQL ADBC Driver wraps the standard libpq client library to read and write PostgreSQL data using highly efficient, columnar Arrow RecordBatches. </p><p>It achieves massive speedups over traditional drivers (like psycopg2 or JDBC) by leveraging the PostgreSQL COPY binary protocol natively.</p><p>Core Benefits</p><ul><li><p>Zero Copy Data Movement: Eliminates row-to-column serialization costs by treating incoming bytes as Arrow memory pointers.</p></li><li><p>High-Performance Ingestion: Drastically accelerates bulk data insertion or updating via database tables.</p></li><li><p>Unified Analytical Language: Seamlessly integrates with modern data tools like Pandas, Polars, DuckDB, and PyArrow.</p></li></ul></div><p>My suspicion is that the conversion is happening somewhere down the line, but the AI overview separately describes the Arrow format as a distinct selling point.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/subscribe"><span>Subscribe now</span></a></p><div><hr></div><h2>Why ADBC?</h2><p>As shown above, Arrow's zero-copy nature provides direct access to the dataset returned by the drivers. <strong>One of Arrow&#8217;s big promises is that it&#8217;s an in-memory format that can be transferred between layers as-is</strong>... I mean, it&#8217;s literally on the Arrow landing page:</p><blockquote><p><em>Apache Arrow defines a language-independent columnar memory format for flat and nested data, organized for efficient analytic operations on modern hardware like CPUs and GPUs. The Arrow memory format also supports zero-copy reads for lightning-fast data access without serialization overhead.</em></p></blockquote><p><strong>This is the lingua franca of ADBC.</strong> Where another typical database driver might need to fetch data using a C library, and then convert it for use in another language like Python, with Arrow it&#8217;s merely a matter of passing a memory pointer around and letting the Arrow library for a given language make sense of it.</p><p>Another selling point is the <a href="https://arrow.apache.org/adbc/current/format/specification.html">consistent API</a>. In practice, each language has its own concerns and may take some liberties, but just like Arrow itself, if you can master the ADBC API in one language, that knowledge transfers over to the others.</p><div class="callout-block" data-callout="true"><p>In my opinion, the greatest advantage is the backing of the Apache Foundation. When it comes to FOSS ownership, Apache has repeatedly shown itself to be a good steward of the tools people depend on.</p></div><p><em>I&#8217;d also remind you of a recent interview between Dan and <a href="https://youtu.be/wdFt2F9uTZU">Wes McKinney</a>, one of the principal authors of Arrow.</em></p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;676353e6-2847-4cea-9e18-281ef68276d8&quot;,&quot;caption&quot;:&quot;The creator of Pandas and co-creator of Apache Arrow, Wes McKinney, joins the Data Engineering Central Podcast for an in-depth conversation about how modern data engineering came to exist, where AI is taking software development, and why good engineering still matters more than ever.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;The Creator of Pandas on AI, Apache Arrow, and the Future of Software Engineering&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:21715962,&quot;name&quot;:&quot;Daniel Beach&quot;,&quot;bio&quot;:&quot;Long time data engineer, with a passion. &quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F81caaeec-9053-487c-a59c-ba5f8e4644ad_256x256.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:100}],&quot;post_date&quot;:&quot;2026-07-08T12:16:09.105Z&quot;,&quot;cover_image&quot;:&quot;https://substack-video.s3.amazonaws.com/video_upload/post/203446550/98fa147f-f50e-4abd-9137-1e612bfff42c/transcoded-1782328581.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://dataengineeringcentral.substack.com/p/the-creator-of-pandas-on-ai-apache&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:&quot;98fa147f-f50e-4abd-9137-1e612bfff42c&quot;,&quot;id&quot;:203446550,&quot;type&quot;:&quot;podcast&quot;,&quot;reaction_count&quot;:5,&quot;comment_count&quot;:0,&quot;publication_id&quot;:1224799,&quot;publication_name&quot;:&quot;Data Engineering Central&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!pIVQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F880c179a-d4f4-4f41-a70c-48e557c48f38_256x256.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/adbc?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Data Engineering Central! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/adbc?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/p/adbc?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share"><span>Share</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[What Happens When a Software Engineer Builds a Company Alone?]]></title><description><![CDATA[A Conversation with Michael Drogalis]]></description><link>https://dataengineeringcentral.substack.com/p/what-happens-when-a-software-engineer</link><guid isPermaLink="false">https://dataengineeringcentral.substack.com/p/what-happens-when-a-software-engineer</guid><dc:creator><![CDATA[Daniel Beach]]></dc:creator><pubDate>Wed, 15 Jul 2026 13:24:12 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/203777075/229d04a563ed372f7850ba7913a772e2.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>When people think about starting a software company, they usually imagine raising venture capital, hiring engineers, and growing a team as quickly as possible.</p><blockquote><p><a href="https://www.linkedin.com/in/michael-drogalis/">Michael Drogalis</a> chose a different path.</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.linkedin.com/in/michael-drogalis/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!mh59!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4454f6da-8233-4ab6-849d-c3f820294289_1572x828.png 424w, /__u/substackcdn.com/image/fetch/$s_!mh59!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4454f6da-8233-4ab6-849d-c3f820294289_1572x828.png 848w, /__u/substackcdn.com/image/fetch/$s_!mh59!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4454f6da-8233-4ab6-849d-c3f820294289_1572x828.png 1272w, /__u/substackcdn.com/image/fetch/$s_!mh59!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4454f6da-8233-4ab6-849d-c3f820294289_1572x828.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!mh59!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4454f6da-8233-4ab6-849d-c3f820294289_1572x828.png" width="1456" height="767" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4454f6da-8233-4ab6-849d-c3f820294289_1572x828.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:767,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:529314,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.linkedin.com/in/michael-drogalis/&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/203777075?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4454f6da-8233-4ab6-849d-c3f820294289_1572x828.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!mh59!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4454f6da-8233-4ab6-849d-c3f820294289_1572x828.png 424w, /__u/substackcdn.com/image/fetch/$s_!mh59!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4454f6da-8233-4ab6-849d-c3f820294289_1572x828.png 848w, /__u/substackcdn.com/image/fetch/$s_!mh59!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4454f6da-8233-4ab6-849d-c3f820294289_1572x828.png 1272w, /__u/substackcdn.com/image/fetch/$s_!mh59!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4454f6da-8233-4ab6-849d-c3f820294289_1572x828.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>After helping build technology in the Kafka ecosystem, founding a startup that was ultimately acquired by Confluent, and leading product for stream processing, he walked away from big tech to see if one person could build a serious B2B software company.</p><ul><li><p><em>The result became <a href="https://shadowtraffic.io/">ShadowTraffic</a>, a product that helps engineering teams generate realistic production traffic for testing, demos, and development.</em></p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Data Engineering Central is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>In this conversation, we talk about much more than streaming systems. We discuss why most engineers underestimate the importance of understanding customers, how AI is changing software development without replacing experienced engineers, what it takes to market technical products, and why writing publicly can become one of the biggest accelerators of your career.</p><blockquote><p>If you&#8217;ve ever considered building your own product, becoming a solopreneur, or simply becoming a better engineer, this conversation is packed with practical advice from someone who&#8217;s actually done it.</p></blockquote><p>I think this episode has broad appeal beyond data engineering. It&#8217;s really about engineering careers, entrepreneurship, and building products that solve real problems, which should make it one of your more accessible interviews.</p><ul><li><p>Building and selling a Kafka startup</p></li><li><p>Life inside Confluent during its rapid growth</p></li><li><p>Why Michael left big tech to become a solopreneur</p></li><li><p>Building ShadowTraffic from scratch</p></li><li><p>Finding customers before writing code</p></li><li><p>Why marketing matters more than most engineers think</p></li><li><p>Using AI without becoming dependent on it</p></li><li><p>The future of software engineering</p></li><li><p>Writing online and building an audience</p></li><li><p>Advice for engineers who want to start their own business</p></li></ul><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/what-happens-when-a-software-engineer?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Data Engineering Central! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/what-happens-when-a-software-engineer?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/p/what-happens-when-a-software-engineer?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share"><span>Share</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[Cloudflare as a Data Platform?]]></title><description><![CDATA[new kid on the block]]></description><link>https://dataengineeringcentral.substack.com/p/cloudflare-as-a-data-platform</link><guid isPermaLink="false">https://dataengineeringcentral.substack.com/p/cloudflare-as-a-data-platform</guid><dc:creator><![CDATA[Daniel Beach]]></dc:creator><pubDate>Mon, 13 Jul 2026 12:39:09 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!_XeH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc3b1d78-c20d-4b40-88fa-e9e8ec2032eb_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!_XeH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc3b1d78-c20d-4b40-88fa-e9e8ec2032eb_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!_XeH!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc3b1d78-c20d-4b40-88fa-e9e8ec2032eb_1536x1024.png 424w, /__u/substackcdn.com/image/fetch/$s_!_XeH!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc3b1d78-c20d-4b40-88fa-e9e8ec2032eb_1536x1024.png 848w, /__u/substackcdn.com/image/fetch/$s_!_XeH!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc3b1d78-c20d-4b40-88fa-e9e8ec2032eb_1536x1024.png 1272w, /__u/substackcdn.com/image/fetch/$s_!_XeH!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc3b1d78-c20d-4b40-88fa-e9e8ec2032eb_1536x1024.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!_XeH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc3b1d78-c20d-4b40-88fa-e9e8ec2032eb_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bc3b1d78-c20d-4b40-88fa-e9e8ec2032eb_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2238457,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/203115648?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc3b1d78-c20d-4b40-88fa-e9e8ec2032eb_1536x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!_XeH!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc3b1d78-c20d-4b40-88fa-e9e8ec2032eb_1536x1024.png 424w, /__u/substackcdn.com/image/fetch/$s_!_XeH!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc3b1d78-c20d-4b40-88fa-e9e8ec2032eb_1536x1024.png 848w, /__u/substackcdn.com/image/fetch/$s_!_XeH!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc3b1d78-c20d-4b40-88fa-e9e8ec2032eb_1536x1024.png 1272w, /__u/substackcdn.com/image/fetch/$s_!_XeH!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc3b1d78-c20d-4b40-88fa-e9e8ec2032eb_1536x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I know calling <a href="https://blog.cloudflare.com/">Cloudflare</a> the new kid on the block is a little tongue-in-cheek, but it seems fair when applied to Data Platform tooling. My guess is that when someone says <a href="https://en.wikipedia.org/wiki/Cloudflare"><span>"Cloudflare</span></a><span>," the first thing that comes to mind isn't</span> data. They&#8217;ve become a household name with the literal power to take down the internet with no notice.</p><blockquote><p>Best known as a digital middleman between a website's server and its visitors, it seems they are sticking their fingers into other honeypots &#8230; namely <strong>Data</strong>.</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://blog.cloudflare.com/cloudflare-data-platform/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!hML5!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc370fde8-ee74-40e4-b1a8-3243fb6ae651_1074x380.png 424w, /__u/substackcdn.com/image/fetch/$s_!hML5!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc370fde8-ee74-40e4-b1a8-3243fb6ae651_1074x380.png 848w, /__u/substackcdn.com/image/fetch/$s_!hML5!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc370fde8-ee74-40e4-b1a8-3243fb6ae651_1074x380.png 1272w, /__u/substackcdn.com/image/fetch/$s_!hML5!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc370fde8-ee74-40e4-b1a8-3243fb6ae651_1074x380.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!hML5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc370fde8-ee74-40e4-b1a8-3243fb6ae651_1074x380.png" width="1074" height="380" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c370fde8-ee74-40e4-b1a8-3243fb6ae651_1074x380.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:380,&quot;width&quot;:1074,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:74316,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://blog.cloudflare.com/cloudflare-data-platform/&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/203115648?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc370fde8-ee74-40e4-b1a8-3243fb6ae651_1074x380.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!hML5!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc370fde8-ee74-40e4-b1a8-3243fb6ae651_1074x380.png 424w, /__u/substackcdn.com/image/fetch/$s_!hML5!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc370fde8-ee74-40e4-b1a8-3243fb6ae651_1074x380.png 848w, /__u/substackcdn.com/image/fetch/$s_!hML5!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc370fde8-ee74-40e4-b1a8-3243fb6ae651_1074x380.png 1272w, /__u/substackcdn.com/image/fetch/$s_!hML5!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc370fde8-ee74-40e4-b1a8-3243fb6ae651_1074x380.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>In the past, <a href="/__u/dataengineeringcentral.substack.com/p/cloudflare-r2-apache-iceberg-r2-data?utm_source=publication-search">I <span>poked at Cloudflare&#8217;s R2 Iceberg setup</span></a><span>, but that was at least a year ago, and it was more about Apache Iceberg than about Cloudflare as a proper Data Platform</span>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/dataengineeringcentral.substack.com/p/cloudflare-r2-apache-iceberg-r2-data?utm_source=publication-search" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!JGMz!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F564b302d-a8cb-4e6d-9344-a4e5dfa55ace_1074x380.png 424w, /__u/substackcdn.com/image/fetch/$s_!JGMz!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F564b302d-a8cb-4e6d-9344-a4e5dfa55ace_1074x380.png 848w, /__u/substackcdn.com/image/fetch/$s_!JGMz!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F564b302d-a8cb-4e6d-9344-a4e5dfa55ace_1074x380.png 1272w, /__u/substackcdn.com/image/fetch/$s_!JGMz!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F564b302d-a8cb-4e6d-9344-a4e5dfa55ace_1074x380.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!JGMz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F564b302d-a8cb-4e6d-9344-a4e5dfa55ace_1074x380.png" width="1074" height="380" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/564b302d-a8cb-4e6d-9344-a4e5dfa55ace_1074x380.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:380,&quot;width&quot;:1074,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:144157,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://dataengineeringcentral.substack.com/p/cloudflare-r2-apache-iceberg-r2-data?utm_source=publication-search&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/203115648?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F564b302d-a8cb-4e6d-9344-a4e5dfa55ace_1074x380.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!JGMz!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F564b302d-a8cb-4e6d-9344-a4e5dfa55ace_1074x380.png 424w, /__u/substackcdn.com/image/fetch/$s_!JGMz!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F564b302d-a8cb-4e6d-9344-a4e5dfa55ace_1074x380.png 848w, /__u/substackcdn.com/image/fetch/$s_!JGMz!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F564b302d-a8cb-4e6d-9344-a4e5dfa55ace_1074x380.png 1272w, /__u/substackcdn.com/image/fetch/$s_!JGMz!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F564b302d-a8cb-4e6d-9344-a4e5dfa55ace_1074x380.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>To be honest, it&#8217;s probably one of those &#8220;<em>better late than never</em>&#8221; situations, but they sure are late to the &#8220;one-stop shop for data&#8221; party. Everyone else has been on the Lake House bandwagon for a good, solid 5 years now. All the big players need to have a hand in the data space. </p><blockquote><p><em>We live in the age of AI, and data is the gold behind the Agents/LLMs, so it makes sense that players like Cloudflare don&#8217;t want all the data to leave their systems to other players. It makes sense as a business to provide customers the entire Data Stack, so they have at the very least, the option to stay put.</em></p></blockquote><p>This is what I want to cover today; it&#8217;s as much for me as for you. I want to know &#8230;</p><ul><li><p>What data products does Cloudflare offer?</p></li><li><p>What it looks like to build on each of those products.</p></li><li><p>Can I build a complete Data Stack with those tools?</p></li><li><p>Pricing.</p></li></ul><p>Who knows if we will make it through all of that before I run out of patience and start ranting. You know me; it&#8217;s a toss-up. You can trust me to call it like it is. I&#8217;ve built plenty of Data Stacks from scratch, so I plan to approach this like I would anything else. </p><p>We will see what works, what doesn&#8217;t, what&#8217;s missing. Or it will all be rainbows and butterflies. Never say never; it&#8217;s possible.</p><div><hr></div><h3><a href="https://cube.dev/?utm_source=dataengineeringcentral&amp;utm_medium=newsletter&amp;utm_campaign=cube-general-promotion&amp;utm_content=v5-trusted">Customer-facing analytics that ship in days, not quarters</a></h3><div class="callout-block" data-callout="true"><p>Thanks to <a href="https://cube.dev/?utm_source=dataengineeringcentral&amp;utm_medium=newsletter&amp;utm_campaign=cube-general-promotion&amp;utm_content=v5-trusted">Cube</a> for sponsoring today&#8217;s post! Without companies like Cube, this content wouldn&#8217;t be possible. The best way to support this Substack is to <a href="https://cube.dev/?utm_source=dataengineeringcentral&amp;utm_medium=newsletter&amp;utm_campaign=cube-general-promotion&amp;utm_content=v5-trusted">click the links below and check out Cube!</a></p></div><p><mark data-color="#b4a7d6" style="background-color: rgb(180, 167, 214); color: rgb(0, 0, 0);">Customer-facing analytics are slow, the warehouse bill keeps climbing, and every new chart turns into an engineering project. </mark><a href="https://cube.dev/?utm_source=dataengineeringcentral&amp;utm_medium=newsletter&amp;utm_campaign=cube-general-promotion&amp;utm_content=v5-trusted"><mark data-color="#b4a7d6" style="background-color: rgb(180, 167, 214); color: rgb(0, 0, 0);">Cube is the agentic analytics platform</mark></a><mark data-color="#b4a7d6" style="background-color: rgb(180, 167, 214); color: rgb(0, 0, 0);"> built for embedding: drop governed dashboards and an AI analyst into your product in days, with built-in caching that keeps queries fast and warehouse costs down. Pelago, Constant Contact, GoFundMe, and 400+ other SaaS companies ship customer-facing analytics on it.</mark></p><p><strong><a href="https://cube.dev/?utm_source=dataengineeringcentral&amp;utm_medium=newsletter&amp;utm_campaign=cube-general-promotion&amp;utm_content=v5-trusted">Get started for free.</a></strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://cube.dev/?utm_source=dataengineeringcentral&amp;utm_medium=newsletter&amp;utm_campaign=cube-general-promotion&amp;utm_content=v5-trusted" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!o1ZB!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63910509-a279-4d77-8d81-4141151137eb_2048x1024.png 424w, /__u/substackcdn.com/image/fetch/$s_!o1ZB!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63910509-a279-4d77-8d81-4141151137eb_2048x1024.png 848w, /__u/substackcdn.com/image/fetch/$s_!o1ZB!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63910509-a279-4d77-8d81-4141151137eb_2048x1024.png 1272w, /__u/substackcdn.com/image/fetch/$s_!o1ZB!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63910509-a279-4d77-8d81-4141151137eb_2048x1024.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!o1ZB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63910509-a279-4d77-8d81-4141151137eb_2048x1024.png" width="1456" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/63910509-a279-4d77-8d81-4141151137eb_2048x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:728,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://cube.dev/?utm_source=dataengineeringcentral&amp;utm_medium=newsletter&amp;utm_campaign=cube-general-promotion&amp;utm_content=v5-trusted&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!o1ZB!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63910509-a279-4d77-8d81-4141151137eb_2048x1024.png 424w, /__u/substackcdn.com/image/fetch/$s_!o1ZB!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63910509-a279-4d77-8d81-4141151137eb_2048x1024.png 848w, /__u/substackcdn.com/image/fetch/$s_!o1ZB!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63910509-a279-4d77-8d81-4141151137eb_2048x1024.png 1272w, /__u/substackcdn.com/image/fetch/$s_!o1ZB!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63910509-a279-4d77-8d81-4141151137eb_2048x1024.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><a href="https://cube.dev/?utm_source=dataengineeringcentral&amp;utm_medium=newsletter&amp;utm_campaign=cube-general-promotion&amp;utm_content=v5-trusted">Check out Cube today!</a></p><div><hr></div><h3>What data products does Cloudflare offer?</h3><p>Ok, so when I said Cloudflare is selling the entire &#8220;Data Platform,&#8221; I wasn&#8217;t just making it up. <a href="https://www.cloudflare.com/products/data-platform/">You can see it front and center on their webpage</a>, which actually makes our job a little easier.</p><p>This is actually something many companies forget to do. Cloudflare took the extra step of telling us exactly how they envision a Data Platform working with their products. This is helpful because we don&#8217;t have to guess their intentions or the best way to build out a Data Platform on Cloudflare. Architecturally, it&#8217;s good to have a starting point.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://www.cloudflare.com/products/data-platform/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!uSMY!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F498ff1e1-7760-4b32-9499-e234fd5a79f1_2150x412.png 424w, /__u/substackcdn.com/image/fetch/$s_!uSMY!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F498ff1e1-7760-4b32-9499-e234fd5a79f1_2150x412.png 848w, /__u/substackcdn.com/image/fetch/$s_!uSMY!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F498ff1e1-7760-4b32-9499-e234fd5a79f1_2150x412.png 1272w, /__u/substackcdn.com/image/fetch/$s_!uSMY!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F498ff1e1-7760-4b32-9499-e234fd5a79f1_2150x412.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!uSMY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F498ff1e1-7760-4b32-9499-e234fd5a79f1_2150x412.png" width="1456" height="279" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/498ff1e1-7760-4b32-9499-e234fd5a79f1_2150x412.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:279,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:113372,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.cloudflare.com/products/data-platform/&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/203115648?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F498ff1e1-7760-4b32-9499-e234fd5a79f1_2150x412.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!uSMY!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F498ff1e1-7760-4b32-9499-e234fd5a79f1_2150x412.png 424w, /__u/substackcdn.com/image/fetch/$s_!uSMY!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F498ff1e1-7760-4b32-9499-e234fd5a79f1_2150x412.png 848w, /__u/substackcdn.com/image/fetch/$s_!uSMY!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F498ff1e1-7760-4b32-9499-e234fd5a79f1_2150x412.png 1272w, /__u/substackcdn.com/image/fetch/$s_!uSMY!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F498ff1e1-7760-4b32-9499-e234fd5a79f1_2150x412.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Ok, right off the bat, from their docs we can see that they mostly focus on &#8220;Data Warehouse and Lake House.&#8221; This consists of a few core technologies they mention and directly takes center stage in the docs.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://developers.cloudflare.com/r2/data-catalog/?_gl=1*aqd3pt*_gcl_au*MTEyNDkwNzIwMC4xNzgzMjY4NTMz*_ga*ZGMzYWM2OGQtNjA3My00MTQzLWIzNzEtNWJjOTAwMGVjN2Q0*_ga_SQCRB0TXZW*czE3ODMyNjkxODAkbzEkZzAkdDE3ODMyNjkxODAkajYwJGwwJGgwJGRmVlQxZGdta2lhbUNlNjlPZHlPMnJXSUdCem0xQTdLSnJ3" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!wBGZ!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2214cbf-a0b4-4a00-9a7f-95e722201fe6_2088x1294.png 424w, /__u/substackcdn.com/image/fetch/$s_!wBGZ!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2214cbf-a0b4-4a00-9a7f-95e722201fe6_2088x1294.png 848w, /__u/substackcdn.com/image/fetch/$s_!wBGZ!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2214cbf-a0b4-4a00-9a7f-95e722201fe6_2088x1294.png 1272w, /__u/substackcdn.com/image/fetch/$s_!wBGZ!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2214cbf-a0b4-4a00-9a7f-95e722201fe6_2088x1294.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!wBGZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2214cbf-a0b4-4a00-9a7f-95e722201fe6_2088x1294.png" width="1456" height="902" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b2214cbf-a0b4-4a00-9a7f-95e722201fe6_2088x1294.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:902,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:372985,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://developers.cloudflare.com/r2/data-catalog/?_gl=1*aqd3pt*_gcl_au*MTEyNDkwNzIwMC4xNzgzMjY4NTMz*_ga*ZGMzYWM2OGQtNjA3My00MTQzLWIzNzEtNWJjOTAwMGVjN2Q0*_ga_SQCRB0TXZW*czE3ODMyNjkxODAkbzEkZzAkdDE3ODMyNjkxODAkajYwJGwwJGgwJGRmVlQxZGdta2lhbUNlNjlPZHlPMnJXSUdCem0xQTdLSnJ3&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/203115648?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2214cbf-a0b4-4a00-9a7f-95e722201fe6_2088x1294.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!wBGZ!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2214cbf-a0b4-4a00-9a7f-95e722201fe6_2088x1294.png 424w, /__u/substackcdn.com/image/fetch/$s_!wBGZ!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2214cbf-a0b4-4a00-9a7f-95e722201fe6_2088x1294.png 848w, /__u/substackcdn.com/image/fetch/$s_!wBGZ!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2214cbf-a0b4-4a00-9a7f-95e722201fe6_2088x1294.png 1272w, /__u/substackcdn.com/image/fetch/$s_!wBGZ!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2214cbf-a0b4-4a00-9a7f-95e722201fe6_2088x1294.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">1. R2 for Storage (think s3)
2. Apache Iceberg for storage layer (classic)
3. R2 Data Catalog (for .... Data Catalog) &lt;- this is new to me
4. R2 SQL (SQL Query Layer)
5. Pipelines ??? (sorta ambiguous)</code></pre></div><p>Their docs are surprisingly straightforward and simple, and the concepts are very easy to understand. This is a breath of fresh air in the never-ending glut of marketing announcements about name changes and new AI-centric features that get poured onto our heads on a weekly basis.</p><blockquote><p><em>I do have to mention on gaping hole that jumps out to me conceptually that isn&#8217;t forefront in the docs, yet is core to any Data Platform &#8230; and I&#8217;m not sure how to take it.</em></p></blockquote><p>What about the actual Data Pipelines? How exactly should we write code to write, transform, and read data within the Cloudflare Data Platform? Their landing page mentions &#8220;Pipelines,&#8221; but their docs list R2 Storage, Iceberg, Data Catalog, and R2 SQL, making no mention of &#8220;Pipelines.&#8221;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!5lsx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2394910-9988-4382-89f3-c6490381b137_2060x1376.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!5lsx!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2394910-9988-4382-89f3-c6490381b137_2060x1376.png 424w, /__u/substackcdn.com/image/fetch/$s_!5lsx!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2394910-9988-4382-89f3-c6490381b137_2060x1376.png 848w, /__u/substackcdn.com/image/fetch/$s_!5lsx!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2394910-9988-4382-89f3-c6490381b137_2060x1376.png 1272w, /__u/substackcdn.com/image/fetch/$s_!5lsx!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2394910-9988-4382-89f3-c6490381b137_2060x1376.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!5lsx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2394910-9988-4382-89f3-c6490381b137_2060x1376.png" width="1456" height="973" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d2394910-9988-4382-89f3-c6490381b137_2060x1376.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:973,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:470947,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/203115648?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2394910-9988-4382-89f3-c6490381b137_2060x1376.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!5lsx!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2394910-9988-4382-89f3-c6490381b137_2060x1376.png 424w, /__u/substackcdn.com/image/fetch/$s_!5lsx!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2394910-9988-4382-89f3-c6490381b137_2060x1376.png 848w, /__u/substackcdn.com/image/fetch/$s_!5lsx!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2394910-9988-4382-89f3-c6490381b137_2060x1376.png 1272w, /__u/substackcdn.com/image/fetch/$s_!5lsx!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2394910-9988-4382-89f3-c6490381b137_2060x1376.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Again, from my point of view as a newcomer to Cloudflare as a data platform, and their tantalizing mentions of Pipelines, and one would assume the actual creation of data pipelines being core to building a Data Platform &#8230; why is it a mystery or hidden compared to the other parts of the platform like &#8230;</p><ul><li><p>Storage with R2</p></li><li><p>Iceberg as the lake house format</p></li><li><p>R2 Data Catalog as the Data Catalog</p></li><li><p>R2 SQL as query layer &#8230;</p></li></ul><p>The Pipeline &#8230; the code &#8230; is the glue that brings all these things together. Conceptually, why no overview of the &#8220;glue&#8221; &#8230; the &#8220;Pipelines&#8221; as they called them on the landing page?</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/cloudflare-as-a-data-platform?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Data Engineering Central! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/cloudflare-as-a-data-platform?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/p/cloudflare-as-a-data-platform?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share"><span>Share</span></a></p></div><p>So, overall, what we have so far conceptually from Cloudflare is &#8230;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!IIEI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faac6c1db-f242-42f7-8c8d-4fc5860925a7_1158x898.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!IIEI!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faac6c1db-f242-42f7-8c8d-4fc5860925a7_1158x898.png 424w, /__u/substackcdn.com/image/fetch/$s_!IIEI!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faac6c1db-f242-42f7-8c8d-4fc5860925a7_1158x898.png 848w, /__u/substackcdn.com/image/fetch/$s_!IIEI!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faac6c1db-f242-42f7-8c8d-4fc5860925a7_1158x898.png 1272w, /__u/substackcdn.com/image/fetch/$s_!IIEI!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faac6c1db-f242-42f7-8c8d-4fc5860925a7_1158x898.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!IIEI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faac6c1db-f242-42f7-8c8d-4fc5860925a7_1158x898.png" width="1158" height="898" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/aac6c1db-f242-42f7-8c8d-4fc5860925a7_1158x898.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:898,&quot;width&quot;:1158,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:110700,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/203115648?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faac6c1db-f242-42f7-8c8d-4fc5860925a7_1158x898.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!IIEI!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faac6c1db-f242-42f7-8c8d-4fc5860925a7_1158x898.png 424w, /__u/substackcdn.com/image/fetch/$s_!IIEI!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faac6c1db-f242-42f7-8c8d-4fc5860925a7_1158x898.png 848w, /__u/substackcdn.com/image/fetch/$s_!IIEI!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faac6c1db-f242-42f7-8c8d-4fc5860925a7_1158x898.png 1272w, /__u/substackcdn.com/image/fetch/$s_!IIEI!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faac6c1db-f242-42f7-8c8d-4fc5860925a7_1158x898.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Again, everything here is straightforward; my biggest questions are around rounding out the Data Platform. Some of the things rattling around in my head &#8230;</p><ul><li><p><em>Can we use Apache Airflow to trigger stuff inside these tools?</em></p></li><li><p><em>Otherwise, how do we schedule and orchestrate the Data Platform?</em></p></li><li><p><em>Is R2 SQL just a glorified Notebook?</em></p></li><li><p><em>What are Pipelines, and how can we write code that interacts with this Data Platform?</em></p></li></ul><p>Instead of answering these questions off the bat, which would be smart, I just want to walk through each data product they offer and build out a fake Lake House. Eventually, we will be forced to answer my questions or find a way around them.</p><blockquote><p><em>You can only read docs for so long, at some point it&#8217;s best just to try things out.</em></p></blockquote><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/subscribe"><span>Subscribe now</span></a></p><div><hr></div><h3>R2 Storage + R2 Apache Iceberg.</h3><p>Ok, so we will start at the bottom and work our way up. Also, I&#8217;m going to use the UI for this, so I can get used to Cloudflare as a platform and make sure I&#8217;m not accidentally missing anything when setting up the pieces of the Data Platform.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!N4qq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa368e69f-0bf0-4e15-a56d-9359e8621e0f_2312x1110.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!N4qq!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa368e69f-0bf0-4e15-a56d-9359e8621e0f_2312x1110.png 424w, /__u/substackcdn.com/image/fetch/$s_!N4qq!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa368e69f-0bf0-4e15-a56d-9359e8621e0f_2312x1110.png 848w, /__u/substackcdn.com/image/fetch/$s_!N4qq!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa368e69f-0bf0-4e15-a56d-9359e8621e0f_2312x1110.png 1272w, /__u/substackcdn.com/image/fetch/$s_!N4qq!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa368e69f-0bf0-4e15-a56d-9359e8621e0f_2312x1110.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!N4qq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa368e69f-0bf0-4e15-a56d-9359e8621e0f_2312x1110.png" width="1456" height="699" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a368e69f-0bf0-4e15-a56d-9359e8621e0f_2312x1110.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:699,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:208351,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/203115648?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa368e69f-0bf0-4e15-a56d-9359e8621e0f_2312x1110.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!N4qq!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa368e69f-0bf0-4e15-a56d-9359e8621e0f_2312x1110.png 424w, /__u/substackcdn.com/image/fetch/$s_!N4qq!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa368e69f-0bf0-4e15-a56d-9359e8621e0f_2312x1110.png 848w, /__u/substackcdn.com/image/fetch/$s_!N4qq!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa368e69f-0bf0-4e15-a56d-9359e8621e0f_2312x1110.png 1272w, /__u/substackcdn.com/image/fetch/$s_!N4qq!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa368e69f-0bf0-4e15-a56d-9359e8621e0f_2312x1110.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>First, let&#8217;s create a bucket from which we can hopefully install or enable Apache Iceberg. Right away, I noticed something useful<span>: a reference to the&nbsp;</span><a href="https://developers.cloudflare.com/workers/wrangler/"><span>Wrangler CLI,</span></a><span>&nbsp;which we can apparently&nbsp;</span>use to interact with R2 and, I&#8217;m guessing, other parts of the Cloudflare system.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!mi5I!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6866c0b-18f5-4bf3-a6e8-8a3892439852_2804x1112.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!mi5I!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6866c0b-18f5-4bf3-a6e8-8a3892439852_2804x1112.png 424w, /__u/substackcdn.com/image/fetch/$s_!mi5I!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6866c0b-18f5-4bf3-a6e8-8a3892439852_2804x1112.png 848w, /__u/substackcdn.com/image/fetch/$s_!mi5I!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6866c0b-18f5-4bf3-a6e8-8a3892439852_2804x1112.png 1272w, /__u/substackcdn.com/image/fetch/$s_!mi5I!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6866c0b-18f5-4bf3-a6e8-8a3892439852_2804x1112.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!mi5I!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6866c0b-18f5-4bf3-a6e8-8a3892439852_2804x1112.png" width="1456" height="577" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c6866c0b-18f5-4bf3-a6e8-8a3892439852_2804x1112.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:577,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:247257,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/203115648?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6866c0b-18f5-4bf3-a6e8-8a3892439852_2804x1112.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!mi5I!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6866c0b-18f5-4bf3-a6e8-8a3892439852_2804x1112.png 424w, /__u/substackcdn.com/image/fetch/$s_!mi5I!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6866c0b-18f5-4bf3-a6e8-8a3892439852_2804x1112.png 848w, /__u/substackcdn.com/image/fetch/$s_!mi5I!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6866c0b-18f5-4bf3-a6e8-8a3892439852_2804x1112.png 1272w, /__u/substackcdn.com/image/fetch/$s_!mi5I!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6866c0b-18f5-4bf3-a6e8-8a3892439852_2804x1112.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">create an R2 Bucket</figcaption></figure></div><p>Easy enough to create, and I also saw a Settings page with some info about Iceberg and the Data Catalog.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!TCZo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf3950c-ebca-4ddc-afcc-e9e77027f807_2048x1260.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!TCZo!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf3950c-ebca-4ddc-afcc-e9e77027f807_2048x1260.png 424w, /__u/substackcdn.com/image/fetch/$s_!TCZo!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf3950c-ebca-4ddc-afcc-e9e77027f807_2048x1260.png 848w, /__u/substackcdn.com/image/fetch/$s_!TCZo!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf3950c-ebca-4ddc-afcc-e9e77027f807_2048x1260.png 1272w, /__u/substackcdn.com/image/fetch/$s_!TCZo!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf3950c-ebca-4ddc-afcc-e9e77027f807_2048x1260.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!TCZo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf3950c-ebca-4ddc-afcc-e9e77027f807_2048x1260.png" width="1456" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/acf3950c-ebca-4ddc-afcc-e9e77027f807_2048x1260.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:266430,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/203115648?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf3950c-ebca-4ddc-afcc-e9e77027f807_2048x1260.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!TCZo!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf3950c-ebca-4ddc-afcc-e9e77027f807_2048x1260.png 424w, /__u/substackcdn.com/image/fetch/$s_!TCZo!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf3950c-ebca-4ddc-afcc-e9e77027f807_2048x1260.png 848w, /__u/substackcdn.com/image/fetch/$s_!TCZo!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf3950c-ebca-4ddc-afcc-e9e77027f807_2048x1260.png 1272w, /__u/substackcdn.com/image/fetch/$s_!TCZo!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf3950c-ebca-4ddc-afcc-e9e77027f807_2048x1260.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Enabling the R2 Data Catalog popped up a box, </p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">Next steps: R2 Data Catalog can automatically handle table maintenance,
 such as compaction, to keep your R2 Data Catalog's performance optimized. 
All we need from you is a Token to grant our table maintenance service 
access to your catalog resources. We can create one on your behalf,
 or you can enter your own.</code></pre></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!pf-l!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02f13e36-e0f7-498d-8164-d6c175c45b7a_2048x1260.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!pf-l!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02f13e36-e0f7-498d-8164-d6c175c45b7a_2048x1260.png 424w, /__u/substackcdn.com/image/fetch/$s_!pf-l!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02f13e36-e0f7-498d-8164-d6c175c45b7a_2048x1260.png 848w, /__u/substackcdn.com/image/fetch/$s_!pf-l!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02f13e36-e0f7-498d-8164-d6c175c45b7a_2048x1260.png 1272w, /__u/substackcdn.com/image/fetch/$s_!pf-l!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02f13e36-e0f7-498d-8164-d6c175c45b7a_2048x1260.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!pf-l!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02f13e36-e0f7-498d-8164-d6c175c45b7a_2048x1260.png" width="1456" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/02f13e36-e0f7-498d-8164-d6c175c45b7a_2048x1260.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:355167,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/203115648?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02f13e36-e0f7-498d-8164-d6c175c45b7a_2048x1260.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!pf-l!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02f13e36-e0f7-498d-8164-d6c175c45b7a_2048x1260.png 424w, /__u/substackcdn.com/image/fetch/$s_!pf-l!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02f13e36-e0f7-498d-8164-d6c175c45b7a_2048x1260.png 848w, /__u/substackcdn.com/image/fetch/$s_!pf-l!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02f13e36-e0f7-498d-8164-d6c175c45b7a_2048x1260.png 1272w, /__u/substackcdn.com/image/fetch/$s_!pf-l!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02f13e36-e0f7-498d-8164-d6c175c45b7a_2048x1260.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><blockquote><p>Now we have a Apache Iceberg Rest API URI we can use for the typical Data Catalog actions we are all used to.</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!UYkq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1208c67-c8f3-4be4-960f-d7f2d5f70819_1568x760.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!UYkq!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1208c67-c8f3-4be4-960f-d7f2d5f70819_1568x760.png 424w, /__u/substackcdn.com/image/fetch/$s_!UYkq!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1208c67-c8f3-4be4-960f-d7f2d5f70819_1568x760.png 848w, /__u/substackcdn.com/image/fetch/$s_!UYkq!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1208c67-c8f3-4be4-960f-d7f2d5f70819_1568x760.png 1272w, /__u/substackcdn.com/image/fetch/$s_!UYkq!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1208c67-c8f3-4be4-960f-d7f2d5f70819_1568x760.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!UYkq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1208c67-c8f3-4be4-960f-d7f2d5f70819_1568x760.png" width="1456" height="706" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b1208c67-c8f3-4be4-960f-d7f2d5f70819_1568x760.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:706,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:148798,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/203115648?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1208c67-c8f3-4be4-960f-d7f2d5f70819_1568x760.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!UYkq!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1208c67-c8f3-4be4-960f-d7f2d5f70819_1568x760.png 424w, /__u/substackcdn.com/image/fetch/$s_!UYkq!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1208c67-c8f3-4be4-960f-d7f2d5f70819_1568x760.png 848w, /__u/substackcdn.com/image/fetch/$s_!UYkq!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1208c67-c8f3-4be4-960f-d7f2d5f70819_1568x760.png 1272w, /__u/substackcdn.com/image/fetch/$s_!UYkq!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1208c67-c8f3-4be4-960f-d7f2d5f70819_1568x760.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>So at this point we have two simple fundamentals of classic Data Platform, Lake House style setup &#8230; </p><ul><li><p>R2 Storage Bucket</p></li><li><p>Apache Iceberg Catalog</p><ul><li><p>which apparently handles table maintenance like compaction</p></li></ul></li><li><p>Data Catalog URI</p></li></ul><p>So, next, let's create some Apache Iceberg table(s), and then we can figure out how we would like to ingest data, which, by extension, may become our data pipeline setup.</p><p>Well, almost.</p><p>In my mind, I wanted to use Apache Airflow, combined with something like Polars or DuckDB, and connect to the Cloudflare Data Catalog for REST Iceberg, and do it that way, but I really, really wanted to be able to find those &#8220;Pipelines&#8221; that were mentioned.</p><p>Finally, when clicking around in the UI, I saw a line for them under <strong>Storage and Databases</strong>, <em>why there I don&#8217;t know. </em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!KbKh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F116f377a-ba86-402a-92f2-f54f340f0edb_2800x1070.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!KbKh!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F116f377a-ba86-402a-92f2-f54f340f0edb_2800x1070.png 424w, /__u/substackcdn.com/image/fetch/$s_!KbKh!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F116f377a-ba86-402a-92f2-f54f340f0edb_2800x1070.png 848w, /__u/substackcdn.com/image/fetch/$s_!KbKh!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F116f377a-ba86-402a-92f2-f54f340f0edb_2800x1070.png 1272w, /__u/substackcdn.com/image/fetch/$s_!KbKh!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F116f377a-ba86-402a-92f2-f54f340f0edb_2800x1070.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!KbKh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F116f377a-ba86-402a-92f2-f54f340f0edb_2800x1070.png" width="1456" height="556" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/116f377a-ba86-402a-92f2-f54f340f0edb_2800x1070.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:556,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:231736,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/203115648?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F116f377a-ba86-402a-92f2-f54f340f0edb_2800x1070.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!KbKh!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F116f377a-ba86-402a-92f2-f54f340f0edb_2800x1070.png 424w, /__u/substackcdn.com/image/fetch/$s_!KbKh!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F116f377a-ba86-402a-92f2-f54f340f0edb_2800x1070.png 848w, /__u/substackcdn.com/image/fetch/$s_!KbKh!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F116f377a-ba86-402a-92f2-f54f340f0edb_2800x1070.png 1272w, /__u/substackcdn.com/image/fetch/$s_!KbKh!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F116f377a-ba86-402a-92f2-f54f340f0edb_2800x1070.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Anywho, this is going to take us down a tangent, but we might as well start the trip and get it over with. You can&#8217;t access Pipelines on the Free Tier I&#8217;m on; you have to upgrade your plan. Here is the list of benefits.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!kfmz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e82df0e-35c3-4a44-acf9-609ca7fc7e5c_1550x956.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!kfmz!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e82df0e-35c3-4a44-acf9-609ca7fc7e5c_1550x956.png 424w, /__u/substackcdn.com/image/fetch/$s_!kfmz!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e82df0e-35c3-4a44-acf9-609ca7fc7e5c_1550x956.png 848w, /__u/substackcdn.com/image/fetch/$s_!kfmz!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e82df0e-35c3-4a44-acf9-609ca7fc7e5c_1550x956.png 1272w, /__u/substackcdn.com/image/fetch/$s_!kfmz!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e82df0e-35c3-4a44-acf9-609ca7fc7e5c_1550x956.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!kfmz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e82df0e-35c3-4a44-acf9-609ca7fc7e5c_1550x956.png" width="1456" height="898" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7e82df0e-35c3-4a44-acf9-609ca7fc7e5c_1550x956.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:898,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:367569,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/203115648?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e82df0e-35c3-4a44-acf9-609ca7fc7e5c_1550x956.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!kfmz!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e82df0e-35c3-4a44-acf9-609ca7fc7e5c_1550x956.png 424w, /__u/substackcdn.com/image/fetch/$s_!kfmz!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e82df0e-35c3-4a44-acf9-609ca7fc7e5c_1550x956.png 848w, /__u/substackcdn.com/image/fetch/$s_!kfmz!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e82df0e-35c3-4a44-acf9-609ca7fc7e5c_1550x956.png 1272w, /__u/substackcdn.com/image/fetch/$s_!kfmz!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e82df0e-35c3-4a44-acf9-609ca7fc7e5c_1550x956.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><blockquote><p>It&#8217;s a lot to digest.</p></blockquote><p>Always a little scary buying stuff for y&#8217;all. Better turn off that auto<span>-compaction on Iceberg tables,</span> eh? Probably spin up a big @!#$! cluster to do and then send me the bill. I know how these SasS vendors work.</p><p>Anywho, I would go through all those features for you, but I ain&#8217;t got the time. I just want to get to building our Data Platform, and I would like to use Pipelines to do it.</p><blockquote><p>Here is the Worker page, at least they give me a billing dashboard so I can keep my powder dry.</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://developers.cloudflare.com/workers/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!gJF3!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F716bbd86-fa7b-441e-b98b-29269cfc48b2_2298x1368.png 424w, /__u/substackcdn.com/image/fetch/$s_!gJF3!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F716bbd86-fa7b-441e-b98b-29269cfc48b2_2298x1368.png 848w, /__u/substackcdn.com/image/fetch/$s_!gJF3!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F716bbd86-fa7b-441e-b98b-29269cfc48b2_2298x1368.png 1272w, /__u/substackcdn.com/image/fetch/$s_!gJF3!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F716bbd86-fa7b-441e-b98b-29269cfc48b2_2298x1368.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!gJF3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F716bbd86-fa7b-441e-b98b-29269cfc48b2_2298x1368.png" width="1456" height="867" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/716bbd86-fa7b-441e-b98b-29269cfc48b2_2298x1368.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:867,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:231104,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://developers.cloudflare.com/workers/&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/203115648?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F716bbd86-fa7b-441e-b98b-29269cfc48b2_2298x1368.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!gJF3!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F716bbd86-fa7b-441e-b98b-29269cfc48b2_2298x1368.png 424w, /__u/substackcdn.com/image/fetch/$s_!gJF3!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F716bbd86-fa7b-441e-b98b-29269cfc48b2_2298x1368.png 848w, /__u/substackcdn.com/image/fetch/$s_!gJF3!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F716bbd86-fa7b-441e-b98b-29269cfc48b2_2298x1368.png 1272w, /__u/substackcdn.com/image/fetch/$s_!gJF3!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F716bbd86-fa7b-441e-b98b-29269cfc48b2_2298x1368.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Apparently, this means we need to learn something about Cloudflare Workers.</p><ul><li><p>This does appear to be the missing piece of our puzzle on the Data Platform. I&#8217;m assuming we can use Pipelines alongside Workers to build our data flows.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://developers.cloudflare.com/workers/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!QbHH!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65847b6a-564c-4405-bb3e-66f80105e1bb_1542x1072.png 424w, /__u/substackcdn.com/image/fetch/$s_!QbHH!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65847b6a-564c-4405-bb3e-66f80105e1bb_1542x1072.png 848w, /__u/substackcdn.com/image/fetch/$s_!QbHH!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65847b6a-564c-4405-bb3e-66f80105e1bb_1542x1072.png 1272w, /__u/substackcdn.com/image/fetch/$s_!QbHH!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65847b6a-564c-4405-bb3e-66f80105e1bb_1542x1072.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!QbHH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65847b6a-564c-4405-bb3e-66f80105e1bb_1542x1072.png" width="1456" height="1012" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/65847b6a-564c-4405-bb3e-66f80105e1bb_1542x1072.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1012,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:244082,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://developers.cloudflare.com/workers/&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/203115648?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65847b6a-564c-4405-bb3e-66f80105e1bb_1542x1072.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!QbHH!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65847b6a-564c-4405-bb3e-66f80105e1bb_1542x1072.png 424w, /__u/substackcdn.com/image/fetch/$s_!QbHH!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65847b6a-564c-4405-bb3e-66f80105e1bb_1542x1072.png 848w, /__u/substackcdn.com/image/fetch/$s_!QbHH!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65847b6a-564c-4405-bb3e-66f80105e1bb_1542x1072.png 1272w, /__u/substackcdn.com/image/fetch/$s_!QbHH!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65847b6a-564c-4405-bb3e-66f80105e1bb_1542x1072.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Also, I noticed they mentioned cron jobs and durable Workflows, which sounds like what we need, but it&#8217;s also confusing they don&#8217;t mention Pipelines, what are the differences between the two? Not sure.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!nf4U!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ede3115-92cd-4877-ac9a-ab86f35aea0c_1294x652.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!nf4U!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ede3115-92cd-4877-ac9a-ab86f35aea0c_1294x652.png 424w, /__u/substackcdn.com/image/fetch/$s_!nf4U!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ede3115-92cd-4877-ac9a-ab86f35aea0c_1294x652.png 848w, /__u/substackcdn.com/image/fetch/$s_!nf4U!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ede3115-92cd-4877-ac9a-ab86f35aea0c_1294x652.png 1272w, /__u/substackcdn.com/image/fetch/$s_!nf4U!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ede3115-92cd-4877-ac9a-ab86f35aea0c_1294x652.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!nf4U!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ede3115-92cd-4877-ac9a-ab86f35aea0c_1294x652.png" width="1294" height="652" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1ede3115-92cd-4877-ac9a-ab86f35aea0c_1294x652.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:652,&quot;width&quot;:1294,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:152146,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/203115648?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ede3115-92cd-4877-ac9a-ab86f35aea0c_1294x652.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!nf4U!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ede3115-92cd-4877-ac9a-ab86f35aea0c_1294x652.png 424w, /__u/substackcdn.com/image/fetch/$s_!nf4U!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ede3115-92cd-4877-ac9a-ab86f35aea0c_1294x652.png 848w, /__u/substackcdn.com/image/fetch/$s_!nf4U!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ede3115-92cd-4877-ac9a-ab86f35aea0c_1294x652.png 1272w, /__u/substackcdn.com/image/fetch/$s_!nf4U!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ede3115-92cd-4877-ac9a-ab86f35aea0c_1294x652.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Anyways, it appears we need to read the <a href="https://developers.cloudflare.com/pipelines/pipelines/">documentation on Pipelines</a>, and they fit generally what we are looking for.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!LSI_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f422b10-71f0-4dbe-8213-c003cf11ea6f_1492x732.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!LSI_!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f422b10-71f0-4dbe-8213-c003cf11ea6f_1492x732.png 424w, /__u/substackcdn.com/image/fetch/$s_!LSI_!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f422b10-71f0-4dbe-8213-c003cf11ea6f_1492x732.png 848w, /__u/substackcdn.com/image/fetch/$s_!LSI_!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f422b10-71f0-4dbe-8213-c003cf11ea6f_1492x732.png 1272w, /__u/substackcdn.com/image/fetch/$s_!LSI_!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f422b10-71f0-4dbe-8213-c003cf11ea6f_1492x732.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!LSI_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f422b10-71f0-4dbe-8213-c003cf11ea6f_1492x732.png" width="1456" height="714" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2f422b10-71f0-4dbe-8213-c003cf11ea6f_1492x732.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:714,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:133432,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/203115648?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f422b10-71f0-4dbe-8213-c003cf11ea6f_1492x732.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!LSI_!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f422b10-71f0-4dbe-8213-c003cf11ea6f_1492x732.png 424w, /__u/substackcdn.com/image/fetch/$s_!LSI_!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f422b10-71f0-4dbe-8213-c003cf11ea6f_1492x732.png 848w, /__u/substackcdn.com/image/fetch/$s_!LSI_!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f422b10-71f0-4dbe-8213-c003cf11ea6f_1492x732.png 1272w, /__u/substackcdn.com/image/fetch/$s_!LSI_!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f422b10-71f0-4dbe-8213-c003cf11ea6f_1492x732.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Pipelines, as we can see, connect streams and sinks, data sources and data targets. &#8220;Streams&#8221; is a loaded term. I know <a href="https://www.arroyo.dev/blog/arroyo-is-joining-cloudflare/">Cloudflare bought Arroyo</a>, a Rust-based streaming platform, sometime back. I&#8217;m curious if these pipelines can handle batch as well.</p><div class="pullquote"><p>&#8220;Streams are durable, buffered queues that receive and store events for processing in <a href="https://developers.cloudflare.com/pipelines/">Cloudflare Pipelines</a>. They provide reliable data ingestion via HTTP endpoints and Worker bindings<br>&#8230;<br>Streams currently accept events in JSON format and support both structured events with defined schemas and unstructured JSON&#8230; &#8221; <br>- <a href="https://developers.cloudflare.com/pipelines/streams/">docs</a></p></div><p>I get that people like Streams and streaming pipelines, but 80%+ of most data pipelines, if not more, are batch-based workloads. It appears &#8220;Pipelines&#8221; are now useless to us &#8230; since &#8230; &#8220;<em><strong><span>Pipelines connect </span><a href="https://developers.cloudflare.com/pipelines/streams/">streams</a><span> and </span><a href="https://developers.cloudflare.com/pipelines/sinks/">sinks</a><span> via SQL transformations.</span></strong></em><span>&#8221;</span></p><ul><li><p>Even the <a href="https://developers.cloudflare.com/pipelines/pipelines/manage-pipelines/">Cloudflare docs for Pipelines</a> mention nothing but streams, the tables they use for the examples are even called streams.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://developers.cloudflare.com/pipelines/pipelines/manage-pipelines/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!azJ9!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e432dca-ceef-4d5d-8ea1-d6072bd41f12_1894x744.png 424w, /__u/substackcdn.com/image/fetch/$s_!azJ9!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e432dca-ceef-4d5d-8ea1-d6072bd41f12_1894x744.png 848w, /__u/substackcdn.com/image/fetch/$s_!azJ9!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e432dca-ceef-4d5d-8ea1-d6072bd41f12_1894x744.png 1272w, /__u/substackcdn.com/image/fetch/$s_!azJ9!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e432dca-ceef-4d5d-8ea1-d6072bd41f12_1894x744.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!azJ9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e432dca-ceef-4d5d-8ea1-d6072bd41f12_1894x744.png" width="1456" height="572" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8e432dca-ceef-4d5d-8ea1-d6072bd41f12_1894x744.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:572,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:156636,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://developers.cloudflare.com/pipelines/pipelines/manage-pipelines/&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/203115648?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e432dca-ceef-4d5d-8ea1-d6072bd41f12_1894x744.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!azJ9!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e432dca-ceef-4d5d-8ea1-d6072bd41f12_1894x744.png 424w, /__u/substackcdn.com/image/fetch/$s_!azJ9!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e432dca-ceef-4d5d-8ea1-d6072bd41f12_1894x744.png 848w, /__u/substackcdn.com/image/fetch/$s_!azJ9!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e432dca-ceef-4d5d-8ea1-d6072bd41f12_1894x744.png 1272w, /__u/substackcdn.com/image/fetch/$s_!azJ9!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e432dca-ceef-4d5d-8ea1-d6072bd41f12_1894x744.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I&#8217;m not saying this is a totally bad thing; what I&#8217;m saying is that Cloudflare Data Platform seems to be built for streaming use cases almost exclusively. What do I know? Maybe this is the niche of the data world they want. Everyone under the sun, including Databricks with ZeroBus, has a streaming offering bundled into their Lake House offerings.</p><blockquote><p><em>Not that Cloudflare cares what I think, but if they want to make real in-roads in the data community, batch pipeline support is key.</em></p></blockquote><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/cloudflare-as-a-data-platform?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Data Engineering Central! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/cloudflare-as-a-data-platform?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/p/cloudflare-as-a-data-platform?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share"><span>Share</span></a></p></div><div><hr></div><h3>We gotta do something.</h3><p>Well, we can&#8217;t let these hobbits stop us form getting a Cloudflare data platform running. Let&#8217;s just make our own pipelines, workers with Apache Airflow, and then use R2 buckets, Iceberg, and Catalog for our Lake House.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!YIQV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2049e962-9615-426a-be3e-9b099cf019db_1618x836.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!YIQV!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2049e962-9615-426a-be3e-9b099cf019db_1618x836.png 424w, /__u/substackcdn.com/image/fetch/$s_!YIQV!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2049e962-9615-426a-be3e-9b099cf019db_1618x836.png 848w, /__u/substackcdn.com/image/fetch/$s_!YIQV!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2049e962-9615-426a-be3e-9b099cf019db_1618x836.png 1272w, /__u/substackcdn.com/image/fetch/$s_!YIQV!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2049e962-9615-426a-be3e-9b099cf019db_1618x836.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!YIQV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2049e962-9615-426a-be3e-9b099cf019db_1618x836.png" width="1456" height="752" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2049e962-9615-426a-be3e-9b099cf019db_1618x836.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:752,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:134835,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/203115648?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2049e962-9615-426a-be3e-9b099cf019db_1618x836.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!YIQV!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2049e962-9615-426a-be3e-9b099cf019db_1618x836.png 424w, /__u/substackcdn.com/image/fetch/$s_!YIQV!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2049e962-9615-426a-be3e-9b099cf019db_1618x836.png 848w, /__u/substackcdn.com/image/fetch/$s_!YIQV!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2049e962-9615-426a-be3e-9b099cf019db_1618x836.png 1272w, /__u/substackcdn.com/image/fetch/$s_!YIQV!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2049e962-9615-426a-be3e-9b099cf019db_1618x836.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Let&#8217;s get cracking. Start with the end in mind; isn&#8217;t that what they say? Here is our Airflow DAG for our Cloudflare lake house. One failed, and finally, a good run.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!G8Co!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9258092-2c43-4cf1-a84e-5de463d1a93e_2606x1318.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!G8Co!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9258092-2c43-4cf1-a84e-5de463d1a93e_2606x1318.png 424w, /__u/substackcdn.com/image/fetch/$s_!G8Co!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9258092-2c43-4cf1-a84e-5de463d1a93e_2606x1318.png 848w, /__u/substackcdn.com/image/fetch/$s_!G8Co!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9258092-2c43-4cf1-a84e-5de463d1a93e_2606x1318.png 1272w, /__u/substackcdn.com/image/fetch/$s_!G8Co!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9258092-2c43-4cf1-a84e-5de463d1a93e_2606x1318.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!G8Co!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9258092-2c43-4cf1-a84e-5de463d1a93e_2606x1318.png" width="1456" height="736" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b9258092-2c43-4cf1-a84e-5de463d1a93e_2606x1318.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:736,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:300242,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/203115648?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9258092-2c43-4cf1-a84e-5de463d1a93e_2606x1318.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!G8Co!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9258092-2c43-4cf1-a84e-5de463d1a93e_2606x1318.png 424w, /__u/substackcdn.com/image/fetch/$s_!G8Co!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9258092-2c43-4cf1-a84e-5de463d1a93e_2606x1318.png 848w, /__u/substackcdn.com/image/fetch/$s_!G8Co!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9258092-2c43-4cf1-a84e-5de463d1a93e_2606x1318.png 1272w, /__u/substackcdn.com/image/fetch/$s_!G8Co!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9258092-2c43-4cf1-a84e-5de463d1a93e_2606x1318.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I know it&#8217;s just a plain old Airflow DAG, but if we were building a real lake house, the ability to use a classic orchestration tool like Airflow would always be a good sign.</p><p>We can work our way from the top down this time. Let&#8217;s look at the Airflow DAG.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">from __future__ import annotations

import os

import pendulum
import polars as pl
from airflow.sdk import dag, task

from include.iceberg_catalog import (
    ANALYTICS_SCHEMA,
    ANALYTICS_TABLE,
    NAMESPACE,
    RAW_SCHEMA,
    RAW_TABLE,
    create_table_if_not_exists,
    ensure_namespace,
    get_catalog,
)

_EARTH_RADIUS_KM = 6371.0088


def _haversine_km() -&gt; pl.Expr:
    """Great-circle distance (km) between start/end coords; null when coords null."""
    lat1 = pl.col("start_lat").radians()
    lat2 = pl.col("end_lat").radians()
    dlat = (pl.col("end_lat") - pl.col("start_lat")).radians()
    dlng = (pl.col("end_lng") - pl.col("start_lng")).radians()
    a = (dlat / 2).sin() ** 2 + lat1.cos() * lat2.cos() * (dlng / 2).sin() ** 2
    return (2 * _EARTH_RADIUS_KM * a.sqrt().arcsin()).alias("distance_km")


@dag(
    schedule=None,
    start_date=pendulum.datetime(2020, 4, 1, tz="UTC"),
    catchup=False,
    tags=["cloudflare", "iceberg", "polars", "divvy"],
)
def cloudflare_iceberg_pipeline():
    @task
    def create_tables() -&gt; None:
        catalog = get_catalog()
        ensure_namespace(catalog, NAMESPACE)
        create_table_if_not_exists(catalog, RAW_TABLE, RAW_SCHEMA)
        create_table_if_not_exists(catalog, ANALYTICS_TABLE, ANALYTICS_SCHEMA)

    @task
    def load_raw() -&gt; int:
        csv_path = os.environ["DIVVY_CSV_PATH"]
        df = pl.read_csv(
            csv_path,
            schema_overrides={
                "ride_id": pl.Utf8,
                "start_station_id": pl.Utf8,
                "end_station_id": pl.Utf8,
            },
            try_parse_dates=True,
        ).with_columns(
            pl.col("started_at").cast(pl.Datetime("us")),
            pl.col("ended_at").cast(pl.Datetime("us")),
            pl.col("start_lat").cast(pl.Float64),
            pl.col("start_lng").cast(pl.Float64),
            pl.col("end_lat").cast(pl.Float64),
            pl.col("end_lng").cast(pl.Float64),
        )
        # Align column order to the Iceberg schema.
        df = df.select([f.name for f in RAW_SCHEMA])

        catalog = get_catalog()
        table = catalog.load_table(RAW_TABLE)
        df.write_iceberg(table, mode="overwrite")
        return df.height

    @task
    def build_analytics() -&gt; int:
        catalog = get_catalog()
        raw = catalog.load_table(RAW_TABLE)
        raw_lf = pl.from_arrow(raw.scan().to_arrow()).lazy()

        summary = (
            raw_lf
            .with_columns(
                pl.col("started_at").dt.date().alias("ride_date"),
                ((pl.col("ended_at") - pl.col("started_at")).dt.total_seconds() / 60.0).alias(
                    "duration_min"
                ),
                _haversine_km(),
            )
            .group_by("ride_date", "rideable_type", "member_casual")
            .agg(
                pl.len().cast(pl.Int64).alias("ride_count"),
                pl.col("duration_min").mean().cast(pl.Float64).alias("avg_duration_min"),
                pl.col("duration_min").median().cast(pl.Float64).alias("median_duration_min"),
                pl.col("distance_km").mean().cast(pl.Float64).alias("avg_distance_km"),
            )
            .sort("ride_date", "rideable_type", "member_casual")
            .collect()
            .select([f.name for f in ANALYTICS_SCHEMA])
        )

        table = catalog.load_table(ANALYTICS_TABLE)
        summary.write_iceberg(table, mode="overwrite")
        return summary.height

    create_tables() &gt;&gt; load_raw() &gt;&gt; build_analytics()


cloudflare_iceberg_pipeline()
</code></pre></div><p>And some Airflow Python helper functions.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">from __future__ import annotations

import os

import pyarrow as pa
from pyiceberg.catalog.rest import RestCatalog

NAMESPACE = "divvy"
RAW_TABLE = f"{NAMESPACE}.raw_trips"
ANALYTICS_TABLE = f"{NAMESPACE}.analytics_daily"


def get_catalog() -&gt; RestCatalog:
    """Build a RestCatalog for the Cloudflare R2 Data Catalog from env vars."""
    return RestCatalog(
        "cf_r2",
        **{
            "uri": os.environ["CF_CATALOG_URI"],
            "warehouse": os.environ["CF_WAREHOUSE"],
            "token": os.environ["CF_CATALOG_TOKEN"],
            # Explicit R2 S3 FileIO creds for data-file access.
            "s3.endpoint": os.environ["R2_S3_ENDPOINT"],
            "s3.access-key-id": os.environ["R2_ACCESS_KEY_ID"],
            "s3.secret-access-key": os.environ["R2_SECRET_ACCESS_KEY"],
            # R2 wants "auto"; fall back to "us-east-1" if PyArrow FileIO rejects it.
            "s3.region": os.environ.get("R2_REGION", "auto"),
        },
    )


# --- Schemas (PyArrow -&gt; PyIceberg accepts a pa.schema in create_table) -----

# Raw trips: mirrors the Divvy CSV columns, 1:1.
RAW_SCHEMA = pa.schema(
    [
        pa.field("ride_id", pa.string()),
        pa.field("rideable_type", pa.string()),
        pa.field("started_at", pa.timestamp("us")),
        pa.field("ended_at", pa.timestamp("us")),
        pa.field("start_station_name", pa.string()),
        pa.field("start_station_id", pa.string()),
        pa.field("end_station_name", pa.string()),
        pa.field("end_station_id", pa.string()),
        pa.field("start_lat", pa.float64()),
        pa.field("start_lng", pa.float64()),
        pa.field("end_lat", pa.float64()),
        pa.field("end_lng", pa.float64()),
        pa.field("member_casual", pa.string()),
    ]
)

# Daily analytics rollup.
ANALYTICS_SCHEMA = pa.schema(
    [
        pa.field("ride_date", pa.date32()),
        pa.field("rideable_type", pa.string()),
        pa.field("member_casual", pa.string()),
        pa.field("ride_count", pa.int64()),
        pa.field("avg_duration_min", pa.float64()),
        pa.field("median_duration_min", pa.float64()),
        pa.field("avg_distance_km", pa.float64()),
    ]
)


def ensure_namespace(catalog: RestCatalog, namespace: str = NAMESPACE) -&gt; None:
    if (namespace,) not in catalog.list_namespaces():
        catalog.create_namespace(namespace)


def create_table_if_not_exists(catalog: RestCatalog, identifier: str, schema: pa.Schema):
    """Idempotently create a table; return the loaded Table."""
    if catalog.table_exists(identifier):
        return catalog.load_table(identifier)
    return catalog.create_table(identifier, schema=schema)</code></pre></div><p>Mostly, we are just using the pyiceberg Python package to set up the connection to the R2 Data Catalog, along with the configs we need. After that, we can use Polars&#8217; Iceberg write feature to get our data where we need it.</p><ul><li><p><em>Also, note when reading tables, if we want, we can use pyiceberg itself along with pyarrow to read; it&#8217;s just a way of showing you the interoperability of A<a href="/__u/dataengineeringcentral.substack.com/p/apache-arrow-is-eating-the-world?utm_source=publication-search">rrow, how it shows up everywhere, and can be integrated into pretty much every tool under the sun.</a></em></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/dataengineeringcentral.substack.com/p/apache-arrow-is-eating-the-world?utm_source=publication-search" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!aXQu!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5addad55-d779-4108-9d71-755562bf1672_1528x476.png 424w, /__u/substackcdn.com/image/fetch/$s_!aXQu!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5addad55-d779-4108-9d71-755562bf1672_1528x476.png 848w, /__u/substackcdn.com/image/fetch/$s_!aXQu!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5addad55-d779-4108-9d71-755562bf1672_1528x476.png 1272w, /__u/substackcdn.com/image/fetch/$s_!aXQu!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5addad55-d779-4108-9d71-755562bf1672_1528x476.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!aXQu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5addad55-d779-4108-9d71-755562bf1672_1528x476.png" width="1456" height="454" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5addad55-d779-4108-9d71-755562bf1672_1528x476.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:454,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:198572,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://dataengineeringcentral.substack.com/p/apache-arrow-is-eating-the-world?utm_source=publication-search&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/203115648?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5addad55-d779-4108-9d71-755562bf1672_1528x476.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!aXQu!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5addad55-d779-4108-9d71-755562bf1672_1528x476.png 424w, /__u/substackcdn.com/image/fetch/$s_!aXQu!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5addad55-d779-4108-9d71-755562bf1672_1528x476.png 848w, /__u/substackcdn.com/image/fetch/$s_!aXQu!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5addad55-d779-4108-9d71-755562bf1672_1528x476.png 1272w, /__u/substackcdn.com/image/fetch/$s_!aXQu!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5addad55-d779-4108-9d71-755562bf1672_1528x476.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Also, if we head over to the Cloudflare UI, we can see those tables appear, along with a nice overview. Not bad!</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!KygV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F015122b2-c840-4d97-960a-7e9cdfa30dbe_2158x1040.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!KygV!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F015122b2-c840-4d97-960a-7e9cdfa30dbe_2158x1040.png 424w, /__u/substackcdn.com/image/fetch/$s_!KygV!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F015122b2-c840-4d97-960a-7e9cdfa30dbe_2158x1040.png 848w, /__u/substackcdn.com/image/fetch/$s_!KygV!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F015122b2-c840-4d97-960a-7e9cdfa30dbe_2158x1040.png 1272w, /__u/substackcdn.com/image/fetch/$s_!KygV!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F015122b2-c840-4d97-960a-7e9cdfa30dbe_2158x1040.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!KygV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F015122b2-c840-4d97-960a-7e9cdfa30dbe_2158x1040.png" width="1456" height="702" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/015122b2-c840-4d97-960a-7e9cdfa30dbe_2158x1040.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:702,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:216140,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/203115648?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F015122b2-c840-4d97-960a-7e9cdfa30dbe_2158x1040.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!KygV!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F015122b2-c840-4d97-960a-7e9cdfa30dbe_2158x1040.png 424w, /__u/substackcdn.com/image/fetch/$s_!KygV!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F015122b2-c840-4d97-960a-7e9cdfa30dbe_2158x1040.png 848w, /__u/substackcdn.com/image/fetch/$s_!KygV!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F015122b2-c840-4d97-960a-7e9cdfa30dbe_2158x1040.png 1272w, /__u/substackcdn.com/image/fetch/$s_!KygV!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F015122b2-c840-4d97-960a-7e9cdfa30dbe_2158x1040.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>We can even examine the individual tables very closely and get all sorts of interesting data, including schema, partitioning, etc.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!9mVm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfb457ec-ad4b-4291-bd16-6b8074b268ea_2304x1446.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!9mVm!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfb457ec-ad4b-4291-bd16-6b8074b268ea_2304x1446.png 424w, /__u/substackcdn.com/image/fetch/$s_!9mVm!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfb457ec-ad4b-4291-bd16-6b8074b268ea_2304x1446.png 848w, /__u/substackcdn.com/image/fetch/$s_!9mVm!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfb457ec-ad4b-4291-bd16-6b8074b268ea_2304x1446.png 1272w, /__u/substackcdn.com/image/fetch/$s_!9mVm!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfb457ec-ad4b-4291-bd16-6b8074b268ea_2304x1446.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!9mVm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfb457ec-ad4b-4291-bd16-6b8074b268ea_2304x1446.png" width="1456" height="914" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bfb457ec-ad4b-4291-bd16-6b8074b268ea_2304x1446.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:914,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:248442,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/203115648?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfb457ec-ad4b-4291-bd16-6b8074b268ea_2304x1446.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!9mVm!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfb457ec-ad4b-4291-bd16-6b8074b268ea_2304x1446.png 424w, /__u/substackcdn.com/image/fetch/$s_!9mVm!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfb457ec-ad4b-4291-bd16-6b8074b268ea_2304x1446.png 848w, /__u/substackcdn.com/image/fetch/$s_!9mVm!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfb457ec-ad4b-4291-bd16-6b8074b268ea_2304x1446.png 1272w, /__u/substackcdn.com/image/fetch/$s_!9mVm!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfb457ec-ad4b-4291-bd16-6b8074b268ea_2304x1446.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Don&#8217;t forget they have that new R2 SQL, which seems to be more or less a Notebook in the UI for querying our data. Cloudflare speaks highly of it, of course.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!bI_V!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26a2119d-f2af-4c0e-bdb9-e227d0456731_1600x558.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!bI_V!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26a2119d-f2af-4c0e-bdb9-e227d0456731_1600x558.png 424w, /__u/substackcdn.com/image/fetch/$s_!bI_V!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26a2119d-f2af-4c0e-bdb9-e227d0456731_1600x558.png 848w, /__u/substackcdn.com/image/fetch/$s_!bI_V!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26a2119d-f2af-4c0e-bdb9-e227d0456731_1600x558.png 1272w, /__u/substackcdn.com/image/fetch/$s_!bI_V!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26a2119d-f2af-4c0e-bdb9-e227d0456731_1600x558.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!bI_V!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26a2119d-f2af-4c0e-bdb9-e227d0456731_1600x558.png" width="1456" height="508" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/26a2119d-f2af-4c0e-bdb9-e227d0456731_1600x558.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:508,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:189120,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/203115648?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26a2119d-f2af-4c0e-bdb9-e227d0456731_1600x558.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!bI_V!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26a2119d-f2af-4c0e-bdb9-e227d0456731_1600x558.png 424w, /__u/substackcdn.com/image/fetch/$s_!bI_V!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26a2119d-f2af-4c0e-bdb9-e227d0456731_1600x558.png 848w, /__u/substackcdn.com/image/fetch/$s_!bI_V!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26a2119d-f2af-4c0e-bdb9-e227d0456731_1600x558.png 1272w, /__u/substackcdn.com/image/fetch/$s_!bI_V!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26a2119d-f2af-4c0e-bdb9-e227d0456731_1600x558.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I tried finding the R2 SQL in the UI, but it was not available. Apparently, I was wrong about that, at least as far as I can tell. It seems you must submit queries through the Wrangler CLI we discussed at the beginning.</p><p>So, to do this, we need to install the Wrangler CLI. Of course, we/you would need an API token as well; they are easy enough to create or obtain in the UI.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://developers.cloudflare.com/workers/wrangler/install-and-update/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!p65X!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F713375db-6327-49b8-8a27-ad32b086a37d_1550x336.png 424w, /__u/substackcdn.com/image/fetch/$s_!p65X!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F713375db-6327-49b8-8a27-ad32b086a37d_1550x336.png 848w, /__u/substackcdn.com/image/fetch/$s_!p65X!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F713375db-6327-49b8-8a27-ad32b086a37d_1550x336.png 1272w, /__u/substackcdn.com/image/fetch/$s_!p65X!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F713375db-6327-49b8-8a27-ad32b086a37d_1550x336.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!p65X!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F713375db-6327-49b8-8a27-ad32b086a37d_1550x336.png" width="1456" height="316" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/713375db-6327-49b8-8a27-ad32b086a37d_1550x336.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:316,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:78768,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://developers.cloudflare.com/workers/wrangler/install-and-update/&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/203115648?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F713375db-6327-49b8-8a27-ad32b086a37d_1550x336.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!p65X!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F713375db-6327-49b8-8a27-ad32b086a37d_1550x336.png 424w, /__u/substackcdn.com/image/fetch/$s_!p65X!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F713375db-6327-49b8-8a27-ad32b086a37d_1550x336.png 848w, /__u/substackcdn.com/image/fetch/$s_!p65X!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F713375db-6327-49b8-8a27-ad32b086a37d_1550x336.png 1272w, /__u/substackcdn.com/image/fetch/$s_!p65X!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F713375db-6327-49b8-8a27-ad32b086a37d_1550x336.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><blockquote><p><em>I mean, personally, I&#8217;m not the biggest fan of this; The Notebook is the interactive standard of choice across the industry, making developers' lives easier. Not sure why Cloudflare hasn&#8217;t jumped on this train.</em></p></blockquote><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">export WRANGLER_R2_SQL_AUTH_TOKEN=xxxxxxxxxx</code></pre></div><p>Now we should be able to run an SQL query.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;bash&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-bash">npx wrangler r2 sql query "3ee64e77beb1e2c68a3ae7c1cd4d232e_wonderful-lakehouse" "
SELECT
    *
FROM divvy.analytics_daily"</code></pre></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!ZXKm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabb8853e-9322-4e1c-bf7f-680069960eef_2152x1324.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!ZXKm!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabb8853e-9322-4e1c-bf7f-680069960eef_2152x1324.png 424w, /__u/substackcdn.com/image/fetch/$s_!ZXKm!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabb8853e-9322-4e1c-bf7f-680069960eef_2152x1324.png 848w, /__u/substackcdn.com/image/fetch/$s_!ZXKm!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabb8853e-9322-4e1c-bf7f-680069960eef_2152x1324.png 1272w, /__u/substackcdn.com/image/fetch/$s_!ZXKm!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabb8853e-9322-4e1c-bf7f-680069960eef_2152x1324.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!ZXKm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabb8853e-9322-4e1c-bf7f-680069960eef_2152x1324.png" width="1456" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/abb8853e-9322-4e1c-bf7f-680069960eef_2152x1324.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2044670,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/203115648?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabb8853e-9322-4e1c-bf7f-680069960eef_2152x1324.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!ZXKm!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabb8853e-9322-4e1c-bf7f-680069960eef_2152x1324.png 424w, /__u/substackcdn.com/image/fetch/$s_!ZXKm!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabb8853e-9322-4e1c-bf7f-680069960eef_2152x1324.png 848w, /__u/substackcdn.com/image/fetch/$s_!ZXKm!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabb8853e-9322-4e1c-bf7f-680069960eef_2152x1324.png 1272w, /__u/substackcdn.com/image/fetch/$s_!ZXKm!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabb8853e-9322-4e1c-bf7f-680069960eef_2152x1324.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Well, it works; at least I can say that for all the Cloudflare Data Platform parts and pieces, they are incredibly simple, straightforward, and just work. That&#8217;s more than you can say for many other resources and tools.</p><ul><li><p>As always, the <a href="https://github.com/danielbeach/CloudflareDataPlatform">code is on GitHub</a> for your use.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://github.com/danielbeach/CloudflareDataPlatform" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!alLv!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F541f12b4-b040-44da-bcfd-32bc4f665f27_1934x1464.png 424w, /__u/substackcdn.com/image/fetch/$s_!alLv!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F541f12b4-b040-44da-bcfd-32bc4f665f27_1934x1464.png 848w, /__u/substackcdn.com/image/fetch/$s_!alLv!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F541f12b4-b040-44da-bcfd-32bc4f665f27_1934x1464.png 1272w, /__u/substackcdn.com/image/fetch/$s_!alLv!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F541f12b4-b040-44da-bcfd-32bc4f665f27_1934x1464.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!alLv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F541f12b4-b040-44da-bcfd-32bc4f665f27_1934x1464.png" width="1456" height="1102" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/541f12b4-b040-44da-bcfd-32bc4f665f27_1934x1464.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1102,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:326551,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://github.com/danielbeach/CloudflareDataPlatform&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/203115648?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F541f12b4-b040-44da-bcfd-32bc4f665f27_1934x1464.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!alLv!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F541f12b4-b040-44da-bcfd-32bc4f665f27_1934x1464.png 424w, /__u/substackcdn.com/image/fetch/$s_!alLv!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F541f12b4-b040-44da-bcfd-32bc4f665f27_1934x1464.png 848w, /__u/substackcdn.com/image/fetch/$s_!alLv!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F541f12b4-b040-44da-bcfd-32bc4f665f27_1934x1464.png 1272w, /__u/substackcdn.com/image/fetch/$s_!alLv!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F541f12b4-b040-44da-bcfd-32bc4f665f27_1934x1464.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/cloudflare-as-a-data-platform?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/p/cloudflare-as-a-data-platform?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share"><span>Share</span></a></p><div><hr></div><h3>Thoughts and musings.</h3><p>I should return to Cloudflare with some sort of streaming use case; it appears that is their bread and butter, and admittedly, this has always been a hard nut to crack, that is, the combo of Lake House + Streaming.</p><p>Having <a href="/__u/dataengineeringcentral.substack.com/p/databricks-zerobus-event-streams">recently played with Databricks Zerobus</a>, it would be an interesting comparison.</p><ul><li><p>I have many great things to say about Cloudflare&#8217;s &#8220;Data Platform,&#8221; along with a few critical comments.</p></li></ul><p>Cloudflare does a great job with their products; this Iceberg setup on R2 with the Data Catalog, even with R2 SQL via the CLI, is all just nice &#8230; and it just works. It&#8217;s simple.</p><p>You saw how simple the Airflow DAG code was, how easy the setup was, and how attractive this would be to ANY data team. One simply cannot underestimate the power of simple engineering. <strong>Also, the ease of integration with all Python tools and packages, including Arrow, makes it a flexible setup.</strong></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Data Engineering Central is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[The Creator of Pandas on AI, Apache Arrow, and the Future of Software Engineering]]></title><description><![CDATA[interview with Wes McKinney]]></description><link>https://dataengineeringcentral.substack.com/p/the-creator-of-pandas-on-ai-apache</link><guid isPermaLink="false">https://dataengineeringcentral.substack.com/p/the-creator-of-pandas-on-ai-apache</guid><dc:creator><![CDATA[Daniel Beach]]></dc:creator><pubDate>Wed, 08 Jul 2026 12:16:09 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/203446550/e9f29844b03d137a913dc46a31cb8f6c.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>The creator of <strong>Pandas</strong> and co-creator of <strong>Apache Arrow</strong>, <a href="https://www.linkedin.com/in/wesmckinn/">Wes McKinney</a>, joins the Data Engineering Central Podcast for an in-depth conversation about how modern data engineering came to exist, where AI is taking software development, and why good engineering still matters more than ever.</p><blockquote><p><em>We start with Wes&#8217; journey from building GoldenEye fan websites as a teenager to creating Pandas while working at a quantitative hedge fund, and eventually launching Apache Arrow, one of the foundational technologies behind today&#8217;s modern data ecosystem. Along the way, we discuss Cloudera, Parquet, DuckDB, DataFusion, Spark, and how the industry evolved from Hadoop to today&#8217;s lakehouse architectures. </em></p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://wesmckinney.com/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!ofQK!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc252e28-ac05-463d-be96-5c411e2158df_1744x654.png 424w, /__u/substackcdn.com/image/fetch/$s_!ofQK!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc252e28-ac05-463d-be96-5c411e2158df_1744x654.png 848w, /__u/substackcdn.com/image/fetch/$s_!ofQK!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc252e28-ac05-463d-be96-5c411e2158df_1744x654.png 1272w, /__u/substackcdn.com/image/fetch/$s_!ofQK!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc252e28-ac05-463d-be96-5c411e2158df_1744x654.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!ofQK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc252e28-ac05-463d-be96-5c411e2158df_1744x654.png" width="1456" height="546" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fc252e28-ac05-463d-be96-5c411e2158df_1744x654.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:546,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:263815,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://wesmckinney.com/&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/203446550?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc252e28-ac05-463d-be96-5c411e2158df_1744x654.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!ofQK!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc252e28-ac05-463d-be96-5c411e2158df_1744x654.png 424w, /__u/substackcdn.com/image/fetch/$s_!ofQK!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc252e28-ac05-463d-be96-5c411e2158df_1744x654.png 848w, /__u/substackcdn.com/image/fetch/$s_!ofQK!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc252e28-ac05-463d-be96-5c411e2158df_1744x654.png 1272w, /__u/substackcdn.com/image/fetch/$s_!ofQK!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc252e28-ac05-463d-be96-5c411e2158df_1744x654.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/the-creator-of-pandas-on-ai-apache?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Data Engineering Central! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/the-creator-of-pandas-on-ai-apache?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/p/the-creator-of-pandas-on-ai-apache?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share"><span>Share</span></a></p></div><p>The second half of the conversation dives deep into AI. Wes explains why large language models make experienced engineers more productive but won&#8217;t magically replace software engineering, why architecture and good taste are becoming more valuable than writing individual lines of code, and why projects like DuckDB and </p><ul><li><p><em>Apache Arrow remains incredibly difficult to recreate with AI alone. We also discuss open-source, local AI models, token costs, multimodal data platforms, and what new engineers should focus on to build long-term careers in software and data.</em></p></li></ul><p>If you&#8217;re a data engineer, software engineer, architect, engineering leader, or simply interested in where AI is taking our industry, this is a conversation you won&#8217;t want to miss.</p><h3>Topics We Cover</h3><ul><li><p>How Pandas was created</p></li><li><p>The story behind Apache Arrow</p></li><li><p>Why Arrow became the standard for modern data systems</p></li><li><p>DuckDB, DataFusion, and the next generation of data tools</p></li><li><p>The evolution from Hadoop to lakehouses</p></li><li><p>Why AI won&#8217;t replace great software engineers</p></li><li><p>Architecture vs. coding in the AI era</p></li><li><p>Building trustworthy open source software</p></li><li><p>The future of data engineering</p></li><li><p><strong>Advice for new engineers entering the industry</strong></p></li></ul><p>If you enjoy conversations with the people building the future of data engineering, subscribe for more interviews with the creators of the tools we use every day.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Data Engineering Central is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[AWS Lambda MicroVMs - What new devilry]]></title><description><![CDATA[example with Polars and CSVs]]></description><link>https://dataengineeringcentral.substack.com/p/aws-lambda-microvms-what-new-devilry</link><guid isPermaLink="false">https://dataengineeringcentral.substack.com/p/aws-lambda-microvms-what-new-devilry</guid><dc:creator><![CDATA[Daniel Beach]]></dc:creator><pubDate>Mon, 06 Jul 2026 12:24:57 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ggb-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F215e2da7-a6d5-4adc-a9ed-fc12710bb544_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!ggb-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F215e2da7-a6d5-4adc-a9ed-fc12710bb544_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!ggb-!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F215e2da7-a6d5-4adc-a9ed-fc12710bb544_1536x1024.png 424w, /__u/substackcdn.com/image/fetch/$s_!ggb-!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F215e2da7-a6d5-4adc-a9ed-fc12710bb544_1536x1024.png 848w, /__u/substackcdn.com/image/fetch/$s_!ggb-!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F215e2da7-a6d5-4adc-a9ed-fc12710bb544_1536x1024.png 1272w, /__u/substackcdn.com/image/fetch/$s_!ggb-!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F215e2da7-a6d5-4adc-a9ed-fc12710bb544_1536x1024.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!ggb-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F215e2da7-a6d5-4adc-a9ed-fc12710bb544_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/215e2da7-a6d5-4adc-a9ed-fc12710bb544_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2978619,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/203272938?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F215e2da7-a6d5-4adc-a9ed-fc12710bb544_1536x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!ggb-!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F215e2da7-a6d5-4adc-a9ed-fc12710bb544_1536x1024.png 424w, /__u/substackcdn.com/image/fetch/$s_!ggb-!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F215e2da7-a6d5-4adc-a9ed-fc12710bb544_1536x1024.png 848w, /__u/substackcdn.com/image/fetch/$s_!ggb-!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F215e2da7-a6d5-4adc-a9ed-fc12710bb544_1536x1024.png 1272w, /__u/substackcdn.com/image/fetch/$s_!ggb-!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F215e2da7-a6d5-4adc-a9ed-fc12710bb544_1536x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This is a strange feeling for me. Something new and exciting from AWS besides another mass layoff? What&#8217;s wrong with those people? It&#8217;s almost like they care or something. Definitely sus. If you&#8217;re like me, you&#8217;ve spent decades under the big thumb of that not-so-benevolent AWS Cloud.</p><blockquote><p><em>Our lives and work are consumed by that company; every twitch they make sends ripple effects down the long terminal halls of bits and bytes, eventually breaking some 5-year-old <strong>boto3</strong> call in <strong>Python</strong> running on a decrepit <strong>EC2</strong> instance via <strong>cron</strong>.</em></p></blockquote><p>I&#8217;ve had to bear the brunt end of the sharp sticks they poke into the eyes of the software masses. IAM, Glue, Athena, dear sweet Jesus &#8230; EMR, Redshift, Fargate, Lambda, MWAA, the list simply never ends.</p><p>To be honest, I&#8217;d given up hope that anything useful or interesting would come out of AWS at this point. Then, lo, I heard the voice of one crying in the wilderness, &#8220;&#8230; <strong>prepare the way for AWS Lambda MicroVMs, make their path straight.&#8221; </strong>I said, here am I, send me.</p><p><span>Like a breath of fresh air on the face, a bubbling stream in the forest, a warm fire in the winter &#8230; this is what my poor heart felt when I first heard the whispers of&nbsp;</span><a href="https://aws.amazon.com/lambda/lambda-microvms/"><span>AWS Lambda MicroVMs.</span></a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://aws.amazon.com/lambda/lambda-microvms/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!oJJE!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F448c8b0c-3537-4aa9-8342-e5e41280b017_2454x892.png 424w, /__u/substackcdn.com/image/fetch/$s_!oJJE!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F448c8b0c-3537-4aa9-8342-e5e41280b017_2454x892.png 848w, /__u/substackcdn.com/image/fetch/$s_!oJJE!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F448c8b0c-3537-4aa9-8342-e5e41280b017_2454x892.png 1272w, /__u/substackcdn.com/image/fetch/$s_!oJJE!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F448c8b0c-3537-4aa9-8342-e5e41280b017_2454x892.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!oJJE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F448c8b0c-3537-4aa9-8342-e5e41280b017_2454x892.png" width="1456" height="529" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/448c8b0c-3537-4aa9-8342-e5e41280b017_2454x892.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:529,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1263225,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://aws.amazon.com/lambda/lambda-microvms/&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/203272938?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F448c8b0c-3537-4aa9-8342-e5e41280b017_2454x892.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!oJJE!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F448c8b0c-3537-4aa9-8342-e5e41280b017_2454x892.png 424w, /__u/substackcdn.com/image/fetch/$s_!oJJE!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F448c8b0c-3537-4aa9-8342-e5e41280b017_2454x892.png 848w, /__u/substackcdn.com/image/fetch/$s_!oJJE!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F448c8b0c-3537-4aa9-8342-e5e41280b017_2454x892.png 1272w, /__u/substackcdn.com/image/fetch/$s_!oJJE!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F448c8b0c-3537-4aa9-8342-e5e41280b017_2454x892.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><p><em><strong><span>Thanks to </span><a href="http://www.delta.io/">Delta</a><span> for sponsoring this newsletter! I use Delta Lake daily, and I believe it represents the future of Data Engineering. Content like this would not be possible without their support. Check out </span><a href="http://www.delta.io/">their website</a><span> below.</span></strong></em></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="http://www.delta.io" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!wmd9!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F708be49f-dfaa-498f-a862-8e9810a5fc58_600x123.webp 424w, /__u/substackcdn.com/image/fetch/$s_!wmd9!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F708be49f-dfaa-498f-a862-8e9810a5fc58_600x123.webp 848w, /__u/substackcdn.com/image/fetch/$s_!wmd9!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F708be49f-dfaa-498f-a862-8e9810a5fc58_600x123.webp 1272w, /__u/substackcdn.com/image/fetch/$s_!wmd9!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F708be49f-dfaa-498f-a862-8e9810a5fc58_600x123.webp 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!wmd9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F708be49f-dfaa-498f-a862-8e9810a5fc58_600x123.webp" width="600" height="123" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/708be49f-dfaa-498f-a862-8e9810a5fc58_600x123.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:123,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4196,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:&quot;http://www.delta.io&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="/__u/substackcdn.com/image/fetch/$s_!wmd9!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F708be49f-dfaa-498f-a862-8e9810a5fc58_600x123.webp 424w, /__u/substackcdn.com/image/fetch/$s_!wmd9!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F708be49f-dfaa-498f-a862-8e9810a5fc58_600x123.webp 848w, /__u/substackcdn.com/image/fetch/$s_!wmd9!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F708be49f-dfaa-498f-a862-8e9810a5fc58_600x123.webp 1272w, /__u/substackcdn.com/image/fetch/$s_!wmd9!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F708be49f-dfaa-498f-a862-8e9810a5fc58_600x123.webp 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><div><hr></div><h2>A new era of compute?</h2><p>Funny to think about the large swath of end-user products built upon those two behemoths of compute, EC2 and Lambda. I think it&#8217;s fair to say that if you locked yourself in an oven with your laptop and were given a day to design and write some SaaS thiny-ma-bob, and were only given EC2, Lambda, and pick-your-poison language, it could be done.</p><ul><li><p>Part of me wonders if the collective &#8220;meh&#8221; from the jowls of the software community at large at the announcement of AWS Lambda MicroVMs has to do with the satisfied, comfortable compute blanket we find ourselves wrapped in today.</p></li></ul><p>Who needs something new when there's the reassurance of familiar things that work well enough?</p><blockquote><p><em>These MicroVMs seem to sit inside the gap between AWS Lambda and EC2 instances. Does this broaden the market for use, meet pent-up demand, or simply fill a small niche?</em></p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!teCh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F653ee158-e756-4017-8e13-257f600f89f9_1634x862.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!teCh!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F653ee158-e756-4017-8e13-257f600f89f9_1634x862.png 424w, /__u/substackcdn.com/image/fetch/$s_!teCh!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F653ee158-e756-4017-8e13-257f600f89f9_1634x862.png 848w, /__u/substackcdn.com/image/fetch/$s_!teCh!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F653ee158-e756-4017-8e13-257f600f89f9_1634x862.png 1272w, /__u/substackcdn.com/image/fetch/$s_!teCh!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F653ee158-e756-4017-8e13-257f600f89f9_1634x862.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!teCh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F653ee158-e756-4017-8e13-257f600f89f9_1634x862.png" width="1456" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/653ee158-e756-4017-8e13-257f600f89f9_1634x862.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:161379,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/203272938?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F653ee158-e756-4017-8e13-257f600f89f9_1634x862.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!teCh!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F653ee158-e756-4017-8e13-257f600f89f9_1634x862.png 424w, /__u/substackcdn.com/image/fetch/$s_!teCh!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F653ee158-e756-4017-8e13-257f600f89f9_1634x862.png 848w, /__u/substackcdn.com/image/fetch/$s_!teCh!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F653ee158-e756-4017-8e13-257f600f89f9_1634x862.png 1272w, /__u/substackcdn.com/image/fetch/$s_!teCh!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F653ee158-e756-4017-8e13-257f600f89f9_1634x862.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I mean, the world as we know it is practically built on these two compute options from AWS: EC2 and Lambda, which are at opposite ends of the spectrum.</p><div><hr></div><h4>The EC2 Workhorse</h4><p>EC2 instances were launched in ~2006, making them probably among the oldest and best-known AWS services. I think EC2 boasts somewhere in the neighborhood of 600 different types/sizes. Everything from EKS to EMR, from Fargate to Beanstalk, is underpinned by EC2.</p><blockquote><p><em>Of course, EC2 might seem simple on the surface, but it actually can be complex when sifting through 600 different options. CPU, Memory, Storage, Networking, Compute Types, Pricing Options, Backups, etc, etc.</em></p></blockquote><p>This sort of unlimited flexibility and customization is foundational to what makes EC2 compute so attractive; you can build your own puzzle and get exactly what you need.</p><div><hr></div><h4>The Lambda Workhorse</h4><p>My personal favorite AWS compute option has always been <a href="/__u/dataengineeringcentral.substack.com/p/duckdb-pyiceberg-lambda">Lambda</a>. The simplicity, speed, and scalability of Lambdas unlocked new ways to architect systems of all kinds. From SFTP servers to data pipelines, from messaging systems to HTTP routing. Lambdas are just as flexible as EC2, but smaller, faster, and more lightweight.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/dataengineeringcentral.substack.com/p/aws-lambda-duckdb-and-delta-lake" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!fhaT!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0577fef-4ae3-41aa-8538-ec7acc1da621_1624x510.png 424w, /__u/substackcdn.com/image/fetch/$s_!fhaT!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0577fef-4ae3-41aa-8538-ec7acc1da621_1624x510.png 848w, /__u/substackcdn.com/image/fetch/$s_!fhaT!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0577fef-4ae3-41aa-8538-ec7acc1da621_1624x510.png 1272w, /__u/substackcdn.com/image/fetch/$s_!fhaT!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0577fef-4ae3-41aa-8538-ec7acc1da621_1624x510.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!fhaT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0577fef-4ae3-41aa-8538-ec7acc1da621_1624x510.png" width="1456" height="457" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a0577fef-4ae3-41aa-8538-ec7acc1da621_1624x510.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:457,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:202507,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://dataengineeringcentral.substack.com/p/aws-lambda-duckdb-and-delta-lake&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/203272938?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0577fef-4ae3-41aa-8538-ec7acc1da621_1624x510.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!fhaT!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0577fef-4ae3-41aa-8538-ec7acc1da621_1624x510.png 424w, /__u/substackcdn.com/image/fetch/$s_!fhaT!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0577fef-4ae3-41aa-8538-ec7acc1da621_1624x510.png 848w, /__u/substackcdn.com/image/fetch/$s_!fhaT!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0577fef-4ae3-41aa-8538-ec7acc1da621_1624x510.png 1272w, /__u/substackcdn.com/image/fetch/$s_!fhaT!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0577fef-4ae3-41aa-8538-ec7acc1da621_1624x510.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>There is just something so sweet and simple about a Lambda that triggers when you want, does a little work when you want, then disappears without you ever knowing.</p><blockquote><p><em>Versatile, fast, flexible, and simple. Core tenets of good software engineering.</em></p></blockquote><p>For *most people, Lambdas are incredibly cheap as well.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Data Engineering Central is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h3>The empty space &#8230; the gap.</h3><p>As much as I don&#8217;t like to admit it, AI- agentic software, some call it- appears to be a large reason why AWS MicroVMs came into being. At least, the marketing and documentation seem to indicate this.</p><p>I know for a fact that the inner sanctum of AWS has been thinking about this &#8220;gap&#8221; or &#8220;problem&#8221; in compute offerings for some time now. <span>Mistakenly, in 2023, while bored on some lazy Sunday afternoon, I wrote about&nbsp;</span><a href="https://www.confessionsofadataguy.com/aws-lambdas-python-vs-rust-performance-and-cost-savings/">AWS Lambda, Python, and Rust</a><span>.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.confessionsofadataguy.com/aws-lambdas-python-vs-rust-performance-and-cost-savings/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!XKfs!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe600050f-69e7-4b8d-b34f-4bf5bb172626_1874x940.png 424w, /__u/substackcdn.com/image/fetch/$s_!XKfs!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe600050f-69e7-4b8d-b34f-4bf5bb172626_1874x940.png 848w, /__u/substackcdn.com/image/fetch/$s_!XKfs!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe600050f-69e7-4b8d-b34f-4bf5bb172626_1874x940.png 1272w, /__u/substackcdn.com/image/fetch/$s_!XKfs!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe600050f-69e7-4b8d-b34f-4bf5bb172626_1874x940.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!XKfs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe600050f-69e7-4b8d-b34f-4bf5bb172626_1874x940.png" width="1456" height="730" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e600050f-69e7-4b8d-b34f-4bf5bb172626_1874x940.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:730,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:423341,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.confessionsofadataguy.com/aws-lambdas-python-vs-rust-performance-and-cost-savings/&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/203272938?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe600050f-69e7-4b8d-b34f-4bf5bb172626_1874x940.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!XKfs!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe600050f-69e7-4b8d-b34f-4bf5bb172626_1874x940.png 424w, /__u/substackcdn.com/image/fetch/$s_!XKfs!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe600050f-69e7-4b8d-b34f-4bf5bb172626_1874x940.png 848w, /__u/substackcdn.com/image/fetch/$s_!XKfs!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe600050f-69e7-4b8d-b34f-4bf5bb172626_1874x940.png 1272w, /__u/substackcdn.com/image/fetch/$s_!XKfs!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe600050f-69e7-4b8d-b34f-4bf5bb172626_1874x940.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>It gained quite some traffic, and must have ended up on the desk of the power brokers inside AWS. A short time later, I found myself sitting digitally across from some folks on the AWS Lambda team, having my brain pulled apart about the best and worst pieces of Lambda.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!ZzOr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1292aeb2-7f3e-426b-9f26-c8af04091075_1480x876.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!ZzOr!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1292aeb2-7f3e-426b-9f26-c8af04091075_1480x876.png 424w, /__u/substackcdn.com/image/fetch/$s_!ZzOr!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1292aeb2-7f3e-426b-9f26-c8af04091075_1480x876.png 848w, /__u/substackcdn.com/image/fetch/$s_!ZzOr!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1292aeb2-7f3e-426b-9f26-c8af04091075_1480x876.png 1272w, /__u/substackcdn.com/image/fetch/$s_!ZzOr!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1292aeb2-7f3e-426b-9f26-c8af04091075_1480x876.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!ZzOr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1292aeb2-7f3e-426b-9f26-c8af04091075_1480x876.png" width="1456" height="862" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1292aeb2-7f3e-426b-9f26-c8af04091075_1480x876.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:862,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:176399,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/203272938?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1292aeb2-7f3e-426b-9f26-c8af04091075_1480x876.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!ZzOr!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1292aeb2-7f3e-426b-9f26-c8af04091075_1480x876.png 424w, /__u/substackcdn.com/image/fetch/$s_!ZzOr!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1292aeb2-7f3e-426b-9f26-c8af04091075_1480x876.png 848w, /__u/substackcdn.com/image/fetch/$s_!ZzOr!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1292aeb2-7f3e-426b-9f26-c8af04091075_1480x876.png 1272w, /__u/substackcdn.com/image/fetch/$s_!ZzOr!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1292aeb2-7f3e-426b-9f26-c8af04091075_1480x876.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>On many fronts, AWS MicroVMs seem to answer these challenges of bridging the gap between Lambda and EC2. There are many use cases where you want the speed, simplicity, and scalability of a Lambda, but WITHOUT the time and memory limits, and where you need the flexibility and size of an EC2 instance.</p><blockquote><p><em>Sure, you could just leave Kubernetes or an EC2 Cluster running in Fargate or somewhere else, but these are very heavy engineering solutions, complex, they take time and engergy away from solving the core issue, AND they force you into a certain architectural box when solving problems.</em></p></blockquote><p><strong>With all this as background, let&#8217;s explore AWS MicroVMs by putting our hands to the plow.</strong></p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/aws-lambda-microvms-what-new-devilry?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Data Engineering Central! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/aws-lambda-microvms-what-new-devilry?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/p/aws-lambda-microvms-what-new-devilry?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share"><span>Share</span></a></p></div><div><hr></div><h2>Not so gentle introduction to AWS MicroVMs</h2><p>Ok, for you and me, this will be trial by fire; it is new for us and everyone else, so let&#8217;s start with concepts, then move on to more details, and finally to implementation. My goal is not to make anyone an expert, but rather to introduce this tool as a new pattern and architectural choice when designing software solutions.</p><p>We might not be putting MicroVMs directly into production, but we are learning and growing, expanding our horizons, and keeping abreast of the changes that are lofted upon us.</p><ul><li><p><em>concepts</em></p></li><li><p><em>details</em></p></li><li><p><em>implementation</em></p></li></ul><div><hr></div><p>AWS has introduced <strong>Lambda MicroVMs</strong>, a new serverless compute service designed for applications that need to securely execute code written by users or AI models. Think coding assistants, online IDEs, data science notebooks, SQL playgrounds, or SaaS applications that allow customers to run custom Python or JavaScript.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!dUot!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4798599a-897d-486d-b463-78eb832bb4b1_1600x558.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!dUot!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4798599a-897d-486d-b463-78eb832bb4b1_1600x558.png 424w, /__u/substackcdn.com/image/fetch/$s_!dUot!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4798599a-897d-486d-b463-78eb832bb4b1_1600x558.png 848w, /__u/substackcdn.com/image/fetch/$s_!dUot!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4798599a-897d-486d-b463-78eb832bb4b1_1600x558.png 1272w, /__u/substackcdn.com/image/fetch/$s_!dUot!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4798599a-897d-486d-b463-78eb832bb4b1_1600x558.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!dUot!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4798599a-897d-486d-b463-78eb832bb4b1_1600x558.png" width="1456" height="508" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4798599a-897d-486d-b463-78eb832bb4b1_1600x558.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:508,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:191117,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/203272938?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4798599a-897d-486d-b463-78eb832bb4b1_1600x558.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!dUot!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4798599a-897d-486d-b463-78eb832bb4b1_1600x558.png 424w, /__u/substackcdn.com/image/fetch/$s_!dUot!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4798599a-897d-486d-b463-78eb832bb4b1_1600x558.png 848w, /__u/substackcdn.com/image/fetch/$s_!dUot!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4798599a-897d-486d-b463-78eb832bb4b1_1600x558.png 1272w, /__u/substackcdn.com/image/fetch/$s_!dUot!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4798599a-897d-486d-b463-78eb832bb4b1_1600x558.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>One of the big innovations here is that every user or job gets its own isolated virtual machine, but without requiring you to manage EC2 instances, containers, or Kubernetes. Again, this is Lambda-ish, obviously, and it's probably one of the biggest selling points.</p><div class="pullquote"><p>&#8220;<strong>I can get the power, size, and configuration of EC2 instances (almost), with the added simplicity of AWS Lambdas. You can have your cake and eat it too.</strong>&#8221;<br>- Me</p></div><p>Unlike traditional Lambda functions, which are stateless and short-lived, Lambda MicroVMs combine three capabilities that previously forced developers into trade-offs:</p><ul><li><p><strong>VM-level isolation</strong> so one customer&#8217;s code can&#8217;t interfere with another&#8217;s.</p></li><li><p><strong>Near-instant startup</strong> using Firecracker MicroVM technology.</p></li><li><p><strong>Suspend and resume</strong> support, allowing a MicroVM to preserve its memory and state for up to <strong>8 hours</strong> instead of starting from scratch every time.</p></li></ul><p>AWS says this is built on the same <strong><a href="https://github.com/firecracker-microvm/firecracker">Firecracker virtualization platform</a></strong> that already powers more than <strong>15 trillion Lambda function invocations every month</strong>, but now developers can directly use that technology rather than having it hidden behind traditional Lambda.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://github.com/firecracker-microvm/firecracker" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!q-h8!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09b637b8-e83b-4a80-975e-2aaa6bb27e23_2702x886.png 424w, /__u/substackcdn.com/image/fetch/$s_!q-h8!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09b637b8-e83b-4a80-975e-2aaa6bb27e23_2702x886.png 848w, /__u/substackcdn.com/image/fetch/$s_!q-h8!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09b637b8-e83b-4a80-975e-2aaa6bb27e23_2702x886.png 1272w, /__u/substackcdn.com/image/fetch/$s_!q-h8!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09b637b8-e83b-4a80-975e-2aaa6bb27e23_2702x886.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!q-h8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09b637b8-e83b-4a80-975e-2aaa6bb27e23_2702x886.png" width="1456" height="477" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/09b637b8-e83b-4a80-975e-2aaa6bb27e23_2702x886.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:477,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:302100,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://github.com/firecracker-microvm/firecracker&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/203272938?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09b637b8-e83b-4a80-975e-2aaa6bb27e23_2702x886.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!q-h8!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09b637b8-e83b-4a80-975e-2aaa6bb27e23_2702x886.png 424w, /__u/substackcdn.com/image/fetch/$s_!q-h8!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09b637b8-e83b-4a80-975e-2aaa6bb27e23_2702x886.png 848w, /__u/substackcdn.com/image/fetch/$s_!q-h8!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09b637b8-e83b-4a80-975e-2aaa6bb27e23_2702x886.png 1272w, /__u/substackcdn.com/image/fetch/$s_!q-h8!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09b637b8-e83b-4a80-975e-2aaa6bb27e23_2702x886.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p>Deploying one is straightforward. You package your application as a Docker image, create a MicroVM image from it, and launch isolated MicroVM instances as needed. Each instance <span>has its own dedicated&nbsp;HTTPS endpoint&nbsp;that supports</span> HTTP/2, gRPC, and WebSockets, making it easy to build interactive applications.</p></li></ul><p>This was a bit I found interesting, but it sorta makes sense in the light of the Agentic and AI use cases that AWS seems to be focusing on out of the gate. <strong>HTTP endpoints as an entry point for MicroVMs.</strong></p><p>The service can be deployed using familiar AWS tools such as the Lambda Console, CloudFormation, CDK, or the Agent Toolkit for AWS, making it fit naturally into existing AWS workflows.</p><p>Pricing is also different from Lambda Functions. Instead of paying only per request and execution time, you pay for a <strong>baseline amount of compute while the MicroVM is running</strong>, with additional charges only if your workload temporarily exceeds those baseline resources. This reflects that a MicroVM is designed to remain alive and preserve state rather than disappear after each request.</p><p>Again, this seems to be a fundamental shift in the compute technology AWS offers. Time will tell if it can fight its way to anywhere near the top of the AWS compute stack; <em><strong>it&#8217;s hard to say- old habits (lambda + EC2) die hard. </strong></em>Either way, we have a new option when designing bespoke systems.</p><p>Previously, you generally had to choose between:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">| Want...              | You used... | Problem                    |
| -------------------- | ----------- | -------------------------- |
| Fast startup         | Lambda      | Stateless, 15 minute limit |
| Long running process | ECS/Fargate | Infrastructure overhead    |
| Strong isolation     | EC2         | Slow and expensive         |
| Per-user sandboxes   | Kubernetes  | Operational nightmare      |
</code></pre></div><div><hr></div><h3>Why This Matters</h3><p>This is less about replacing Lambda Functions and more about filling the gap between <strong>Lambda and containers</strong>.</p><p>Previously, developers had to choose between:</p><ul><li><p><em><strong><span>Lambda</span></strong><span>&nbsp;offers speed and simplicity but sacrifices persistent state.</span></em></p></li><li><p><em><strong>ECS/Fargate</strong> for long-running workloads, but manage container infrastructure.</em></p></li><li><p><em><strong>EC2</strong> for complete control and isolation, but at the expense of serverless benefits.</em></p></li></ul><p>Lambda MicroVMs aim to combine the best <span>of all three by offering&nbsp;</span><strong><span>isolated, persistent, serverless virtual machines</span></strong><span>&nbsp;with minimal</span> operational overhead.</p><p>For AI applications in particular, it&#8217;s a compelling fit. Every AI agent, coding assistant, or customer session can have its own secure execution environment that starts almost instantly, stays warm while in use, and resumes exactly where it left off. That&#8217;s something traditional Lambda simply wasn&#8217;t designed to do.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/aws-lambda-microvms-what-new-devilry?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Data Engineering Central! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/aws-lambda-microvms-what-new-devilry?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/p/aws-lambda-microvms-what-new-devilry?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share"><span>Share</span></a></p></div><h3>A few MicroVM details to cover.</h3><p>We should take a few moments to just to cover some technical details found in the <a href="https://docs.aws.amazon.com/lambda/latest/dg/microvms-images.html">MicroVMs AWS docs</a>. Here are some of the most exciting stats: we are no longer bound by a 10 GB memory limit. I was surprised we can only get 32GB max, I mean, we will take it, hopefully some larger sizes come soon enough.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!XrrQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2c3b6d6-c8c9-4a89-be4a-72018a96efc8_1510x686.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!XrrQ!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2c3b6d6-c8c9-4a89-be4a-72018a96efc8_1510x686.png 424w, /__u/substackcdn.com/image/fetch/$s_!XrrQ!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2c3b6d6-c8c9-4a89-be4a-72018a96efc8_1510x686.png 848w, /__u/substackcdn.com/image/fetch/$s_!XrrQ!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2c3b6d6-c8c9-4a89-be4a-72018a96efc8_1510x686.png 1272w, /__u/substackcdn.com/image/fetch/$s_!XrrQ!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2c3b6d6-c8c9-4a89-be4a-72018a96efc8_1510x686.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!XrrQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2c3b6d6-c8c9-4a89-be4a-72018a96efc8_1510x686.png" width="1456" height="661" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b2c3b6d6-c8c9-4a89-be4a-72018a96efc8_1510x686.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:661,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:151668,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/203272938?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2c3b6d6-c8c9-4a89-be4a-72018a96efc8_1510x686.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!XrrQ!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2c3b6d6-c8c9-4a89-be4a-72018a96efc8_1510x686.png 424w, /__u/substackcdn.com/image/fetch/$s_!XrrQ!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2c3b6d6-c8c9-4a89-be4a-72018a96efc8_1510x686.png 848w, /__u/substackcdn.com/image/fetch/$s_!XrrQ!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2c3b6d6-c8c9-4a89-be4a-72018a96efc8_1510x686.png 1272w, /__u/substackcdn.com/image/fetch/$s_!XrrQ!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2c3b6d6-c8c9-4a89-be4a-72018a96efc8_1510x686.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">AWS docs https://docs.aws.amazon.com/lambda/latest/dg/microvms-images.html</figcaption></figure></div><p><span>Also, to create a </span><strong><span>MicroVM Image</span></strong><span>, you provide a zip package that contains a </span><code>Dockerfile</code><span> and your application artifacts, which you upload to Amazon S3.</span></p><ul><li><p><em>Dockerfile</em></p></li><li><p><em>code artifacts</em></p></li><li><p><em>S3</em></p></li></ul><p>Also, there is a <a href="https://docs.aws.amazon.com/lambda/latest/dg/microvms-how-it-works.html">concept of States;</a> this will be an important part of MicroVMs and a change from Lambdas. We are now entering a world of Lambdas with State.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://docs.aws.amazon.com/lambda/latest/dg/microvms-how-it-works.html" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!c-jb!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F747b0dd6-dd03-4057-8d38-b07aa259711e_1486x1102.png 424w, /__u/substackcdn.com/image/fetch/$s_!c-jb!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F747b0dd6-dd03-4057-8d38-b07aa259711e_1486x1102.png 848w, /__u/substackcdn.com/image/fetch/$s_!c-jb!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F747b0dd6-dd03-4057-8d38-b07aa259711e_1486x1102.png 1272w, /__u/substackcdn.com/image/fetch/$s_!c-jb!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F747b0dd6-dd03-4057-8d38-b07aa259711e_1486x1102.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!c-jb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F747b0dd6-dd03-4057-8d38-b07aa259711e_1486x1102.png" width="1456" height="1080" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/747b0dd6-dd03-4057-8d38-b07aa259711e_1486x1102.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1080,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:237995,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://docs.aws.amazon.com/lambda/latest/dg/microvms-how-it-works.html&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/203272938?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F747b0dd6-dd03-4057-8d38-b07aa259711e_1486x1102.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!c-jb!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F747b0dd6-dd03-4057-8d38-b07aa259711e_1486x1102.png 424w, /__u/substackcdn.com/image/fetch/$s_!c-jb!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F747b0dd6-dd03-4057-8d38-b07aa259711e_1486x1102.png 848w, /__u/substackcdn.com/image/fetch/$s_!c-jb!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F747b0dd6-dd03-4057-8d38-b07aa259711e_1486x1102.png 1272w, /__u/substackcdn.com/image/fetch/$s_!c-jb!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F747b0dd6-dd03-4057-8d38-b07aa259711e_1486x1102.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">AWS docs https://docs.aws.amazon.com/lambda/latest/dg/microvms-how-it-works.html</figcaption></figure></div><div><hr></div><h3>MicroVMS are HTTP machines.</h3><p>This is probably the most telling and disappointing part of MicroVMs, at least from my point of view. When reading the docs, marketing, blogs, etc, it&#8217;s clear they are pushing the AI agentic narrative. Also, this could just be my disappointment with what AWS thinks is necessary.</p><ul><li><p><em>These MicroVMs are, in essence, long-running HTTP servers.</em></p></li></ul><blockquote><p>What I mean is that their functionality is wired to be HTTP-centric: communication happens over HTTP; there is no &#8220;trigger&#8221; logic like a normal Lambda.</p></blockquote><p><strong>1. Why is an HTTP server the entry point?</strong></p><p>MicroVMs are <strong>not</strong> invoked like Lambda functions. No handler (event, context); no event payload delivered to your code. A MicroVM is a <strong>long-running VM exposed as an HTTPS endpoint</strong>; you talk to it over the network.</p><p>So the app <em>must</em> be an HTTP server listening on a port (8080). Two reasons:</p><p>- <strong>The trigger is an HTTP request</strong> (see part 2).</p><p>- <strong>The lifecycle hooks are themselves HTTP endpoints</strong> that Lambda calls during build &#8212; GET /aws/lambda-microvms/runtime/v1/ready, /validate. <em>Even a pure batch job has to serve those paths, or the snapshot never completes.</em></p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">An HTTP server is structural to the MicroVM model. That part is not a choice.</code></pre></div><p>Of course, like any good engineer, we can twist and mold whatever we like to do whatever we want, even if it&#8217;s not made to do that.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/subscribe?coupon=2da2ec90&amp;utm_content=203272938&quot;,&quot;text&quot;:&quot;Get 20% off for 1 year&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="/__u/dataengineeringcentral.substack.com/subscribe?coupon=2da2ec90&amp;utm_content=203272938"><span>Get 20% off for 1 year</span></a></p><div><hr></div><h3>MicroVMS in action.</h3><p>The moment we&#8217;ve all been waiting for. You and I both, but I think all the time we spent getting to this point was just as important. Heck, I have no idea if I&#8217;m doing MicroVMs any justice with all my musings and hot takes about having a new compute tool to re-architect systems.</p><p>Also, if we want to build a tool workflow, an actual use case for MicroVMs that has some basis in the real world, we need to come up with that and build to those specs.</p><ul><li><p>Here is one.</p></li></ul><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">## Automted Customer Data Dump Processing

A customer(s) periodicly dump large amounts of historical data in
CSV format. The business requires two things, 
1. process that incoming data
2. report immeditaly with meta data/stats about that data dump.
It's important to note that this is not only a data processing task,
but more importantly, it serves to notify the relevant business unit
all information pertaining to the data dump by said customer.</code></pre></div><p>This is an interesting problem, is it not?</p><blockquote><p>Yes, we have a classic data processing problem to solve, which is not novel in and of itself at all. The second part, classically, indicates that a second part, just as important if not more so, is that we need to treat this historical data dump from a customer as a logical unit of processing in totality. </p></blockquote><p>Next, that leaves us, as Engineers, to decide the best way to solve this problem. </p><p>Let&#8217;s say we have about 81.<span>GBs of data to process, for this example, we will use the&nbsp;</span><a href="https://www.backblaze.com/cloud-storage/resources/hard-drive-test-data"><span>Backblaze hard drive open-source dataset</span></a><span>.</span> We will say, for argument's sake, that this data gets dropped all at once, as part of a customer&#8217;s data dump. <em>CSV files to the last.</em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!IQsH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94c1249f-21b2-466a-b5e9-4da94de884d3_2808x1114.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!IQsH!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94c1249f-21b2-466a-b5e9-4da94de884d3_2808x1114.png 424w, /__u/substackcdn.com/image/fetch/$s_!IQsH!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94c1249f-21b2-466a-b5e9-4da94de884d3_2808x1114.png 848w, /__u/substackcdn.com/image/fetch/$s_!IQsH!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94c1249f-21b2-466a-b5e9-4da94de884d3_2808x1114.png 1272w, /__u/substackcdn.com/image/fetch/$s_!IQsH!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94c1249f-21b2-466a-b5e9-4da94de884d3_2808x1114.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!IQsH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94c1249f-21b2-466a-b5e9-4da94de884d3_2808x1114.png" width="1456" height="578" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/94c1249f-21b2-466a-b5e9-4da94de884d3_2808x1114.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:578,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:328857,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/203272938?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94c1249f-21b2-466a-b5e9-4da94de884d3_2808x1114.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!IQsH!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94c1249f-21b2-466a-b5e9-4da94de884d3_2808x1114.png 424w, /__u/substackcdn.com/image/fetch/$s_!IQsH!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94c1249f-21b2-466a-b5e9-4da94de884d3_2808x1114.png 848w, /__u/substackcdn.com/image/fetch/$s_!IQsH!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94c1249f-21b2-466a-b5e9-4da94de884d3_2808x1114.png 1272w, /__u/substackcdn.com/image/fetch/$s_!IQsH!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94c1249f-21b2-466a-b5e9-4da94de884d3_2808x1114.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>So classically, how would we chomp on 80GBs of data at once, at the same time recognizing we need to somehow treat this entire process as, at the very least, a logical unit of work? Because at the end of the show, we need to report all the stats back to the business.</p><p>Of course, maybe we could get away with using Lambdas if we processed the CSVs one by one, but this is problematic because Lambdas work independently of one another, are short-lived, and we would have to use some complex logic and something like a database to track everything we are processing and maybe even process final stats.</p><ul><li><p>We want simplicity overall, first and foremost.</p></li></ul><p>Also, it&#8217;s an option to spin up some EC2 on Fargate with enough spice to eat up this dataset with Spark, or maybe Polars or DuckDB in streaming mode. This also seems overkill, no?</p><p>Adding the overhead of some ECS cluster and figuring out the spin-up and spin-down of the large instance just seems unnecessary if we can find another way.</p><blockquote><p>Let&#8217;s use a MicroVM to do this work in one fell swoop. The simplicity of a Lambdas in terms of architectual overhead and management, the size and capability of an EC2, no lambda small memory or time limits.</p></blockquote><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/subscribe"><span>Subscribe now</span></a></p><div><hr></div><h3> Brass tacks.</h3><p>Again, we need a few things to actually build a MicroVM. First, a Dockerfile, our codebase, zip it, send it to S3.</p><ul><li><p>Dockerfile</p></li><li><p>code as zip</p></li><li><p>send to S3</p></li></ul><p>Of course, you can go into the AWS Console, under Lambdas, and find all the clickety-click buttons to create a MicroVM, as per below.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!e_Vb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b608ef7-6357-4372-a26d-365ef2772bed_2808x1036.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!e_Vb!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b608ef7-6357-4372-a26d-365ef2772bed_2808x1036.png 424w, /__u/substackcdn.com/image/fetch/$s_!e_Vb!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b608ef7-6357-4372-a26d-365ef2772bed_2808x1036.png 848w, /__u/substackcdn.com/image/fetch/$s_!e_Vb!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b608ef7-6357-4372-a26d-365ef2772bed_2808x1036.png 1272w, /__u/substackcdn.com/image/fetch/$s_!e_Vb!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b608ef7-6357-4372-a26d-365ef2772bed_2808x1036.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!e_Vb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b608ef7-6357-4372-a26d-365ef2772bed_2808x1036.png" width="1456" height="537" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8b608ef7-6357-4372-a26d-365ef2772bed_2808x1036.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:537,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:361184,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/203272938?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b608ef7-6357-4372-a26d-365ef2772bed_2808x1036.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!e_Vb!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b608ef7-6357-4372-a26d-365ef2772bed_2808x1036.png 424w, /__u/substackcdn.com/image/fetch/$s_!e_Vb!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b608ef7-6357-4372-a26d-365ef2772bed_2808x1036.png 848w, /__u/substackcdn.com/image/fetch/$s_!e_Vb!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b608ef7-6357-4372-a26d-365ef2772bed_2808x1036.png 1272w, /__u/substackcdn.com/image/fetch/$s_!e_Vb!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b608ef7-6357-4372-a26d-365ef2772bed_2808x1036.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><p>Below you will find all the code to create, update, trigger, and terminate a MicoVM. Here are the general steps that were coded to do all this. I wrapped everything, all these steps, into Bash scripts.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;markdown&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-markdown">## Deploy &#8212; real AWS Lambda MicroVM

Prereqs: an S3 bucket for the code artifact, and an IAM **build role** (see `iam/`).

```bash
export ARTIFACT_BUCKET=my-artifact-bucket
export BUILD_ROLE_ARN=arn:aws:iam::123456789012:role/MicrovmBuildRole
export OUTPUT_BUCKET=my-output-bucket          # optional; defaults to ARTIFACT_BUCKET


aws iam create-role --role-name MicrovmBuildRole \
  --assume-role-policy-document file://iam/build-role-trust.json
aws iam put-role-policy --role-name MicrovmBuildRole --policy-name build \
  --policy-document "$(envsubst &lt; iam/build-role-permissions.json)"

# 3. Build image &#8594; run MicroVM &#8594; trigger a dump run &#8594; tear down.
bash scripts/build_image.sh     # zips, uploads, create-microvm-image, polls to CREATED
bash scripts/run_microvm.sh     # run-microvm, polls to RUNNING, saves id/endpoint to .microvm
bash scripts/trigger.sh         # auth token + POST /process against the real dump prefix
bash scripts/teardown.sh        # terminate-microvm

bash scripts/update_image.sh    # (later) ship new app code as a new image version</code></pre></div><p>These bash scripts, <a href="https://github.com/danielbeach/exampleMicroVMs">available on GitHub</a>, just wrap the AWS CLI commands to work with AWS Lambda MicroVMs. I would say this is very similar to AWS Lambda, but differs in a few aspects.</p><ul><li><p><em>We still can use a Dockerfile in conjunction with our application code.</em></p></li><li><p><em>We must build the image, deploy the code and Dockerfile into S3.</em></p></li><li><p><em>This CREATEs a MicroVM.</em></p></li><li><p><em>Now we must actually get the MicroVM into the RUNNING state.</em></p></li><li><p><em>After, it is RUNNING we can TRIGGER it with a call to its HTTP endpoint.</em></p></li></ul><p>This is a little more than I bargained for, to be honest. There are a lot of steps and a lot of code wrapped in those Bash files. Ah well, we will see what comes next, eh? I will crack just a few of those files for you here, so you can get an idea, and figure if you want more you will head to the <a href="https://github.com/danielbeach/exampleMicroVMs">GitHub repo and try it yourself</a>.</p><div><hr></div><p></p><p>Let&#8217;s do this with code first. Starting with a few things, we need some IAM roles, etc. <a href="https://github.com/danielbeach/exampleMicroVMs">This is all available on GitHub</a>.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">aws iam create-role --profile confessions --role-name MicrovmBuildRole \
  --assume-role-policy-document file://iam/build-role-trust.json

aws iam put-role-policy --profile confessions --role-name MicrovmBuildRole --policy-name build \
  --policy-document file://iam/build-role-permissions.json</code></pre></div><p>Set some ENV Vars &#8230;</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">export ARTIFACT_BUCKET=confessions-of-a-data-guy
export BUILD_ROLE_ARN=arn:aws:iam::992921014520:role/MicrovmBuildRole
export OUTPUT_BUCKET=confessions-of-a-data-guy</code></pre></div><p>The next big piece of work in the MicroVM Dockerfile, critical and the core of making a new MicroVM on AWS. <span>Also, make sure if you are using the AWS CLI commands like me,&nbsp;</span><a href="https://docs.aws.amazon.com/cli/latest/reference/lambda-microvms/"><span>that you update your CLI to the latest version so the lambda-microvm commands are available</span></a><span>.</span> </p><p>Here is the Dockerfile itself. Super simple. We have to use FastAPI as a web server to handle the HTTP requests; <em><strong>more on this later.</strong></em></p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;dockerfile&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-dockerfile">FROM public.ecr.aws/lambda/microvms:al2023-minimal

WORKDIR /app

RUN dnf install -y python3.11 python3.11-pip &amp;&amp; dnf clean all
COPY requirements.txt .
RUN python3.11 -m pip install --no-cache-dir -r requirements.txt

COPY app/ ./app/
COPY sample_data/ ./sample_data/

EXPOSE 8080

CMD ["python3.11", "-m", "uvicorn", "app.server:app", "--host", "0.0.0.0", "--port", "8080"]</code></pre></div><p>Then we have to build and push the image with our code wrapped up in a zip to S3.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;bash&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-bash">#!/usr/bin/env bash
# Package the app, upload to S3, and create the MicroVM image (poll until CREATED).
set -euo pipefail
source "$(dirname "${BASH_SOURCE[0]}")/config.sh"

cd "$ROOT_DIR"

echo "&gt;&gt; Packaging app.zip"
rm -f app.zip
zip -r app.zip app Dockerfile requirements.txt sample_data &gt;/dev/null

echo "&gt;&gt; Uploading to s3://$ARTIFACT_BUCKET/$ARTIFACT_KEY"
aws s3 cp app.zip "s3://$ARTIFACT_BUCKET/$ARTIFACT_KEY" --profile "$AWS_CLI_PROFILE" --region "$AWS_REGION"

echo "&gt;&gt; Creating MicroVM image: $IMAGE_NAME"
aws_mvm create-microvm-image \
  --name "$IMAGE_NAME" \
  --code-artifact "uri=s3://$ARTIFACT_BUCKET/$ARTIFACT_KEY" \
  --base-image-arn "$BASE_IMAGE_ARN" \
  --build-role-arn "$BUILD_ROLE_ARN" \
  --environment-variables "OUTPUT_BUCKET=$OUTPUT_BUCKET,OUTPUT_PREFIX=$OUTPUT_PREFIX,DATA_SOURCE=s3"

echo "&gt;&gt; Waiting for image to reach CREATED (Ctrl-C to stop polling)"
while true; do
  state=$(aws_mvm get-microvm-image --image-identifier "$IMAGE_ARN" \
    --query 'state' --output text)
  echo "   state=$state"
  case "$state" in
    CREATED) echo "&gt;&gt; Image ready."; break ;;
    CREATE_FAILED) echo "!! Build failed. Check CloudWatch: /aws/lambda-microvms/$IMAGE_NAME"; exit 1 ;;
  esac
  sleep 10
done</code></pre></div><p>Then, if we do our job right, we have a Lambda MicroVM Image that shows up in the console or on the CLI. This means step one is done. We have &#8220;CREATED&#8221; our MicroVM, and it&#8217;s ready for next steps (RUNNING, then TRIGGER).</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/subscribe?coupon=2da2ec90&amp;utm_content=203272938&quot;,&quot;text&quot;:&quot;Get 20% off for 1 year&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="/__u/dataengineeringcentral.substack.com/subscribe?coupon=2da2ec90&amp;utm_content=203272938"><span>Get 20% off for 1 year</span></a></p><p>See the below image.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!vO5Y!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa04ed476-b69d-47eb-ad8e-7a6e7f55c862_1982x974.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!vO5Y!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa04ed476-b69d-47eb-ad8e-7a6e7f55c862_1982x974.png 424w, /__u/substackcdn.com/image/fetch/$s_!vO5Y!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa04ed476-b69d-47eb-ad8e-7a6e7f55c862_1982x974.png 848w, /__u/substackcdn.com/image/fetch/$s_!vO5Y!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa04ed476-b69d-47eb-ad8e-7a6e7f55c862_1982x974.png 1272w, /__u/substackcdn.com/image/fetch/$s_!vO5Y!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa04ed476-b69d-47eb-ad8e-7a6e7f55c862_1982x974.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!vO5Y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa04ed476-b69d-47eb-ad8e-7a6e7f55c862_1982x974.png" width="1456" height="716" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a04ed476-b69d-47eb-ad8e-7a6e7f55c862_1982x974.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:716,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:181277,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/203272938?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa04ed476-b69d-47eb-ad8e-7a6e7f55c862_1982x974.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!vO5Y!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa04ed476-b69d-47eb-ad8e-7a6e7f55c862_1982x974.png 424w, /__u/substackcdn.com/image/fetch/$s_!vO5Y!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa04ed476-b69d-47eb-ad8e-7a6e7f55c862_1982x974.png 848w, /__u/substackcdn.com/image/fetch/$s_!vO5Y!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa04ed476-b69d-47eb-ad8e-7a6e7f55c862_1982x974.png 1272w, /__u/substackcdn.com/image/fetch/$s_!vO5Y!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa04ed476-b69d-47eb-ad8e-7a6e7f55c862_1982x974.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Next, we have a bash script to RUN the MicroVM ...  aka get it into RUNNING state. Think of it like starting an EC2 instance. I guess we could, in theory, have something triggering this bash script. Maybe an Airflow DAG at the end of each day looking for a new data dump.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;bash&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-bash">set -euo pipefail
source "$(dirname "${BASH_SOURCE[0]}")/config.sh"

echo "&gt;&gt; Running MicroVM from image: $IMAGE_NAME"
run_json=$(aws_mvm run-microvm \
  --image-identifier "$IMAGE_ARN" \
  --ingress-network-connectors "$INGRESS_CONNECTOR" \
  --egress-network-connectors "$EGRESS_CONNECTOR" \
  --idle-policy '{"autoResumeEnabled":true,"maxIdleDurationSeconds":900,"suspendedDurationSeconds":300}')

MICROVM_ID=$(echo "$run_json" | python3 -c 'import sys,json;print(json.load(sys.stdin)["microvmId"])')
ENDPOINT=$(echo "$run_json" | python3 -c 'import sys,json;print(json.load(sys.stdin)["endpoint"])')

echo "&gt;&gt; microvmId=$MICROVM_ID"
echo "&gt;&gt; endpoint=$ENDPOINT"

while true; do
  state=$(aws_mvm get-microvm --microvm-identifier "$MICROVM_ID" \
    --query 'state' --output text)
  echo "   state=$state"
  [ "$state" = "RUNNING" ] &amp;&amp; break
  sleep 5
done

printf 'MICROVM_ID=%s\nENDPOINT=%s\n' "$MICROVM_ID" "$ENDPOINT" &gt; "$ROOT_DIR/.microvm"
echo "&gt;&gt; Running. Saved id/endpoint to .microvm &#8212; now run scripts/trigger.sh"
</code></pre></div><p>And TRIGGER it. Just because the MicroVM is running doesn&#8217;t mean it is doing anything. We would have to have another process, in this case my bash script, or maybe a Lambda Function, or Airflow Call, to the MicroVM endpoint to TRIGGER our code to do a thing.</p><p>Whatever that thing is that our code does.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;bash&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-bash">set -euo pipefail
source "$(dirname "${BASH_SOURCE[0]}")/config.sh"

[ -f "$ROOT_DIR/.microvm" ] || { echo "!! run scripts/run_microvm.sh first"; exit 1; }
source "$ROOT_DIR/.microvm"

PREFIX="${1:-hard_dive_dump/2026-07-02/}"

echo "&gt;&gt; Creating auth token for $MICROVM_ID"
token=$(aws_mvm create-microvm-auth-token \
  --microvm-identifier "$MICROVM_ID" \
  --expiration-in-minutes 30 \
  --allowed-ports '[{"allPorts":{}}]' \
  --query 'authToken' --output text)

echo "&gt;&gt; POST https://$ENDPOINT/process  (prefix=$PREFIX)"
curl -sS "https://$ENDPOINT/process" \
  -H "X-aws-proxy-auth: $token" \
  -H "Content-Type: application/json" \
  -d "{\"bucket\":\"confessions-of-a-data-guy\",\"prefix\":\"$PREFIX\"}" | python3 -m json.tool</code></pre></div><p>Remember, your logs available in CloudWatch will only be as good as your app; log often and at important points so you know how your application is doing; otherwise, you will have to jump inside the MicroVM, just like the good ol&#8217; EC2 days.</p><ul><li><p>Ok, this is where I got super annoyed. Yes, my MicroVM runs fine, code and all, but, I have something to say about it all.</p></li></ul><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/aws-lambda-microvms-what-new-devilry?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Data Engineering Central! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/aws-lambda-microvms-what-new-devilry?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/p/aws-lambda-microvms-what-new-devilry?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share"><span>Share</span></a></p></div><h3>I take back what I said.</h3><p>Ok, no takebacks? Well, I take it all back. I&#8217;m no longer excited about MicroVMs; there is nothing Micro or lightweight about them in my opinion. The amount of code and triggers and states and this and that, it&#8217;s more flipping complicated than an EC2 box that I can spin up and down much more simply.</p><p>Classic. </p><p><strong>I&#8217;ve been foiled.</strong></p><p>So much flipping code. Go browse the below if you want.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://github.com/danielbeach/exampleMicroVMs" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!mQm1!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8225c29e-44c4-4a17-9053-572c220198b8_1003x509.png 424w, /__u/substackcdn.com/image/fetch/$s_!mQm1!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8225c29e-44c4-4a17-9053-572c220198b8_1003x509.png 848w, /__u/substackcdn.com/image/fetch/$s_!mQm1!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8225c29e-44c4-4a17-9053-572c220198b8_1003x509.png 1272w, /__u/substackcdn.com/image/fetch/$s_!mQm1!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8225c29e-44c4-4a17-9053-572c220198b8_1003x509.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!mQm1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8225c29e-44c4-4a17-9053-572c220198b8_1003x509.png" width="1003" height="509" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8225c29e-44c4-4a17-9053-572c220198b8_1003x509.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:509,&quot;width&quot;:1003,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:101111,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://github.com/danielbeach/exampleMicroVMs&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/203272938?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8225c29e-44c4-4a17-9053-572c220198b8_1003x509.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!mQm1!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8225c29e-44c4-4a17-9053-572c220198b8_1003x509.png 424w, /__u/substackcdn.com/image/fetch/$s_!mQm1!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8225c29e-44c4-4a17-9053-572c220198b8_1003x509.png 848w, /__u/substackcdn.com/image/fetch/$s_!mQm1!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8225c29e-44c4-4a17-9053-572c220198b8_1003x509.png 1272w, /__u/substackcdn.com/image/fetch/$s_!mQm1!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8225c29e-44c4-4a17-9053-572c220198b8_1003x509.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I mean, why am I not showing you the end result? Because this is crazy is wh&#8217;s what it is. <a href="https://github.com/danielbeach/exampleMicroVMs">Look at the GitHub repo</a>, all the flipping files and backflips.</p><blockquote><p><em>Who the crap wants to run data pipelines inside a FastAPI app? All behind an HTTP port?<strong> Give me a break.</strong></em></p></blockquote><p>It seems to me that MicroVMs have some very cool features, <strong>but the use cases are a little narrow.</strong> This isn&#8217;t something that the masses will probably use, at least not in its current form. You really need to have some strange use case, a long-running, but not that long-running (8-hour max) task that needs the benefit of being suspended and restarted? Sure, maybe some AI workflows.</p><ul><li><p><em>I get they try to sell you on the VM isolation, big deal, whatever.</em></p></li></ul><p>Yes, once you build a MicroVM image that states it, running it is fast. I found that out by playing around. Sure, it&#8217;s nice to have Lambda-style super-fast starts with bigger memory and size limits. But that&#8217;s just it. It&#8217;s cool but utterly useless.</p><p>The whole idea of doing EVERYTHING via HTTP is really dumb, especially since the darn thing runs for 8 hours max and then shuts off. So I need to build an app that handles HTTP routing and communication but is short-lived to do some &#8220;Data Science&#8221; stuff they were talking about.</p><p><em>I think someone at AWS is smoking something good.</em></p><div><hr></div><h3>MicroVMs combine the worst things about Lambdas and EC2 instances into a single product.</h3><p>Yeah, maybe I will regret this hot take; maybe I don&#8217;t know what I&#8217;m doing, and I missed something completely. That&#8217;s totally possible. Leave me a comment.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/aws-lambda-microvms-what-new-devilry/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/p/aws-lambda-microvms-what-new-devilry/comments"><span>Leave a comment</span></a></p><p>The worst part of AWS Lambda MicroVMs is that they took away ALL the best parts of Lambdas.</p><ul><li><p>low complexity, concepts, and code requirements</p></li><li><p>various helpful trigger and firing mechanisms.</p></li></ul><p>If EC2 and Lambda were in high school, made love behind the football stadium, and had a baby out of wedlock, AWS Lambda MicroVMs are that baby. Everyone wants to love it, but it&#8217;s a real pain in the !@#$@!.</p><p>Sure, maybe I&#8217;m just mad that I got it wrong from the start and was excited about something that turned out to be not what I thought. Yeah, that&#8217;s probably most of it. But honestly, I just fail to see where this weirdo fits into *most architectures.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Data Engineering Central is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscribe</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h3>Hey you! %20 off paid subscription.</h3><p>Yeah, I&#8217;m looking at you, you little stinker. You made it to the end of the article, eh? Well, good for you. Hey, do you realize I put myself through hell every week, hacking on junk like this, all for you?</p><ul><li><p>Just so you have something to scroll on your phone when you&#8217;re bored at work?</p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/subscribe?coupon=2da2ec90&amp;utm_content=203272938&quot;,&quot;text&quot;:&quot;Get 20% off for 1 year&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/subscribe?coupon=2da2ec90&amp;utm_content=203272938"><span>Get 20% off for 1 year</span></a></p><p>Throw a guy a bone or two, you give Amazon your money to drop crap on your doorstep. I love you more than Amazon does.</p><p>What? You want to know what you get for your money. Well, you can sleep well at night knowing you&#8217;re not a free loader. <strong>Also, you get plenty of Member-Only content, access to my Discord channel, where you can listen to all my Podcasts right after recording, and early access to articles like this.</strong></p>]]></content:encoded></item><item><title><![CDATA[From COBOL to Copilot: 30 Years of Data, BI, and AI with David Langer]]></title><description><![CDATA[What happens when someone who started programming on a Commodore 64 watches AI reshape the entire data industry?]]></description><link>https://dataengineeringcentral.substack.com/p/from-cobol-to-copilot-30-years-of</link><guid isPermaLink="false">https://dataengineeringcentral.substack.com/p/from-cobol-to-copilot-30-years-of</guid><dc:creator><![CDATA[Daniel Beach]]></dc:creator><pubDate>Wed, 01 Jul 2026 13:43:11 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/202201636/e75b9cd3b608c62336c24ed2a931af00.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>What happens when someone who started programming on a Commodore 64 watches AI reshape the entire data industry?</p><blockquote><p>In this episode of the Data Engineering Central Podcast, I sit down with Dave Langer to explore nearly three decades of experience across software engineering, business intelligence, analytics, data science, and AI.</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.linkedin.com/in/davelanger/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!65jf!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66dd3a0e-a1a4-4b94-94f9-7a3cd5de1f72_1574x896.png 424w, /__u/substackcdn.com/image/fetch/$s_!65jf!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66dd3a0e-a1a4-4b94-94f9-7a3cd5de1f72_1574x896.png 848w, /__u/substackcdn.com/image/fetch/$s_!65jf!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66dd3a0e-a1a4-4b94-94f9-7a3cd5de1f72_1574x896.png 1272w, /__u/substackcdn.com/image/fetch/$s_!65jf!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66dd3a0e-a1a4-4b94-94f9-7a3cd5de1f72_1574x896.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!65jf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66dd3a0e-a1a4-4b94-94f9-7a3cd5de1f72_1574x896.png" width="1456" height="829" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/66dd3a0e-a1a4-4b94-94f9-7a3cd5de1f72_1574x896.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:829,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:795391,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.linkedin.com/in/davelanger/&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/202201636?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66dd3a0e-a1a4-4b94-94f9-7a3cd5de1f72_1574x896.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!65jf!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66dd3a0e-a1a4-4b94-94f9-7a3cd5de1f72_1574x896.png 424w, /__u/substackcdn.com/image/fetch/$s_!65jf!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66dd3a0e-a1a4-4b94-94f9-7a3cd5de1f72_1574x896.png 848w, /__u/substackcdn.com/image/fetch/$s_!65jf!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66dd3a0e-a1a4-4b94-94f9-7a3cd5de1f72_1574x896.png 1272w, /__u/substackcdn.com/image/fetch/$s_!65jf!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66dd3a0e-a1a4-4b94-94f9-7a3cd5de1f72_1574x896.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Dave&#8217;s career spans COBOL programming on IBM mainframes, enterprise architecture, Microsoft&#8217;s Xbox division, machine learning, startup leadership, authorship, and building one of the largest personal brands in the data space.</p><p>We discuss why many of the biggest problems in data haven&#8217;t changed, even as the tools continue to evolve. We dive into the reality behind self-service analytics, the importance of dimensional modeling, what organizations are getting wrong about AI adoption, and why developing strong analytical skills matters more than ever.</p><ul><li><p><em>Dave also shares practical advice for data professionals navigating the AI era, explaining why tools like Copilot should be viewed as partners rather than replacements.</em></p></li></ul><p>If you&#8217;re a data analyst, BI developer, data scientist, or data engineer wondering what the future holds, this conversation offers both perspective and optimism.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/from-cobol-to-copilot-30-years-of?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Data Engineering Central! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/from-cobol-to-copilot-30-years-of?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/p/from-cobol-to-copilot-30-years-of?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share"><span>Share</span></a></p></div><h2>What We Cover</h2><ul><li><p>How Dave got started programming on a Commodore 64</p></li><li><p>The transition from COBOL to modern analytics</p></li><li><p>Why the core problems in data haven&#8217;t changed</p></li><li><p>The evolution of business intelligence and dashboards</p></li><li><p>How Dave discovered machine learning</p></li><li><p>Why data science needs more than just Jupyter notebooks</p></li><li><p>The limitations of self-service analytics</p></li><li><p>Why semantic layers and governance matter for AI</p></li><li><p>Advice for staying relevant as AI reshapes the industry</p></li><li><p>Building a personal brand in data</p></li><li><p>Writing a technical book and becoming an independent creator</p></li></ul><p>Connect with Dave:</p><ul><li><p>LinkedIn: <a href="https://www.linkedin.com/in/davelanger/">https://www.linkedin.com/in/davelanger/</a></p></li><li><p>Substack: <a href="/__u/thediydatascientist.substack.com/">The DIY Data Scientist</a></p></li></ul><div class="embedded-publication-wrap" data-attrs="{&quot;id&quot;:8330091,&quot;embedding_publication_id&quot;:null,&quot;name&quot;:&quot;The DIY Data Scientist&quot;,&quot;logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!51Dz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9226edbd-0140-41ef-8ece-9b28d38e49dc_512x512.png&quot;,&quot;base_url&quot;:&quot;https://thediydatascientist.substack.com&quot;,&quot;hero_text&quot;:&quot;Learn real-world, do-it-yourself (DIY) analytics skills that make you stand out at work with weekly hands-on tutorials designed for ANY professional, including Excel workbooks, data and code.&quot;,&quot;author_name&quot;:&quot;David Langer&quot;,&quot;show_subscribe&quot;:true,&quot;logo_bg_color&quot;:&quot;#ffffff&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="EmbeddedPublicationToDOMWithSubscribe"><div class="embedded-publication show-subscribe"><a class="embedded-publication-link-part" native="true" href="/__u/thediydatascientist.substack.com/?utm_source=substack&amp;utm_campaign=publication_embed&amp;utm_medium=web"><img class="embedded-publication-logo" src="/__u/substackcdn.com/image/fetch/$s_!51Dz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9226edbd-0140-41ef-8ece-9b28d38e49dc_512x512.png" width="56" height="56" style="background-color: rgb(255, 255, 255);"><span class="embedded-publication-name">The DIY Data Scientist</span><div class="embedded-publication-hero-text">Learn real-world, do-it-yourself (DIY) analytics skills that make you stand out at work with weekly hands-on tutorials designed for ANY professional, including Excel workbooks, data and code.</div><div class="embedded-publication-author-name">By David Langer</div></a><form class="embedded-publication-subscribe" method="GET" action="/__u/thediydatascientist.substack.com/subscribe"><input type="hidden" name="source" value="publication-embed"><input type="hidden" name="autoSubmit" value="true"><input type="email" class="email-input" name="email" placeholder="Type your email..."><input type="submit" class="button primary" value="Subscribe"></form></div></div><ul><li><p>Book: <em><a href="https://www.amazon.com/Python-Excel-Step-Step-Langer/dp/1394340761">Python and Excel Step-by-Step</a></em></p></li></ul><p>Subscribe for more conversations on data engineering, analytics, AI, and building a career in modern data.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Data Engineering Central is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[How to 10x the 100x Claude Engineer]]></title><description><![CDATA[And learn something along the way]]></description><link>https://dataengineeringcentral.substack.com/p/how-to-10x-the-100x-claude-engineer</link><guid isPermaLink="false">https://dataengineeringcentral.substack.com/p/how-to-10x-the-100x-claude-engineer</guid><dc:creator><![CDATA[Daniel Beach]]></dc:creator><pubDate>Thu, 25 Jun 2026 12:54:56 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!jjC_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a2f1f07-3f41-40bc-b4c2-ae0266086171_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!jjC_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a2f1f07-3f41-40bc-b4c2-ae0266086171_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!jjC_!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a2f1f07-3f41-40bc-b4c2-ae0266086171_1672x941.png 424w, /__u/substackcdn.com/image/fetch/$s_!jjC_!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a2f1f07-3f41-40bc-b4c2-ae0266086171_1672x941.png 848w, /__u/substackcdn.com/image/fetch/$s_!jjC_!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a2f1f07-3f41-40bc-b4c2-ae0266086171_1672x941.png 1272w, /__u/substackcdn.com/image/fetch/$s_!jjC_!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a2f1f07-3f41-40bc-b4c2-ae0266086171_1672x941.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!jjC_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a2f1f07-3f41-40bc-b4c2-ae0266086171_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2a2f1f07-3f41-40bc-b4c2-ae0266086171_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2357106,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/198343291?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a2f1f07-3f41-40bc-b4c2-ae0266086171_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!jjC_!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a2f1f07-3f41-40bc-b4c2-ae0266086171_1672x941.png 424w, /__u/substackcdn.com/image/fetch/$s_!jjC_!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a2f1f07-3f41-40bc-b4c2-ae0266086171_1672x941.png 848w, /__u/substackcdn.com/image/fetch/$s_!jjC_!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a2f1f07-3f41-40bc-b4c2-ae0266086171_1672x941.png 1272w, /__u/substackcdn.com/image/fetch/$s_!jjC_!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a2f1f07-3f41-40bc-b4c2-ae0266086171_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><span>It's a race to the bottom, as per usual, inside the inner tech sanctum where legions of software grifters burn tokens in dark terminals, sending up a sweet-smelling aroma to the&nbsp;</span><a href="https://dune.fandom.com/wiki/Sardaukar"><span>Sardaukar</span></a><span>&nbsp;licking up the costly sacrifice of the faithful.</span></p><ul><li><p>Did I perchance capture your attention?</p></li></ul><p>On a more serious note, this is not another doom-and-gloom AI slop crybaby post. Look, there goes a flock of wawa&#8217;s. <strong>Claudius Maximus reigns supreme either way</strong>, I'm not one to kick against the goad. I'm just here to report what I see on the front lines of the battle into which we, techies that is, were hurled without our consent. Again, and forever more.</p><blockquote><p><em>I'm neither gloomy, or ecstatic about the current unraveling of the ground on which we've built out careers, lives, and the truths we once held dear.</em></p></blockquote><p>I talk and interact with, <a href="/__u/dataengineeringcentral.substack.com/podcast">on my Podcast</a> and in real life &#8230;</p><ul><li><p> the Rust, bespoke, and unspoiled hand that has yet to touch an LLM.</p></li><li><p>The Junior Dev who lost their way in this Mad Max agentic nightmare.</p></li><li><p>The ever-confident C-suit executive who bounds along with endless optimism at the possibilities.</p></li><li><p>The confused Product Manager is unsure of what the next move is.</p></li><li><p>The once priceless backend contractor is scrambling to save itself.</p></li><li><p>AI-enamored founders who will never look back.</p></li><li><p>Trust voices who hate and are skeptical of AI &#8220;things&#8221;</p></li><li><p>Trusted voices who love and embrace AI &#8220;things&#8221;</p></li><li><p>And myself, tossed from utter terror and despair to determination in a matter of hours.</p></li></ul><p>And, the best part is, here we all are, living in the same world, breathing the same air, working in the same data community. </p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/how-to-10x-the-100x-claude-engineer?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Data Engineering Central! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/how-to-10x-the-100x-claude-engineer?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/p/how-to-10x-the-100x-claude-engineer?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share"><span>Share</span></a></p></div><div><hr></div><h3>Sheer Terror and Apathetic Acceptance. </h3><p>It&#8217;s probably good that all of us overly ripened Developers who&#8217;ve been living off the fat of the land for these last few decades are shaken away from our luxurious slumber. Big paychecks, jobs galore, special knowledge, undaunted careers.</p><blockquote><p>Things are changing. Must to the happiness of our ancestral pre-cursors who are looking down on us in disgust from the clouds, we&#8217;ve collecting happened onto harder times, more difficult times, challenging times.</p></blockquote><p>While they had to make a bow out of wood, a point out of rock, kill something, make a fire, and cook it, just to survive &#8230; or write some network driver in Fortran or Perl &#8230; we found ourselves asking Claude to stop making mistakes. </p><p>No wonder they are disappointed in us, and now watch with glee while we squirm, waiting for that email to tell us our lover has knifed us in the back and now is doing our job, and we are &#8220;redundant.&#8221;</p><p><a href="https://www.linkedin.com/in/danieldavidbeach/">My LinkedIn feed</a> is filled with both ends of the spectrum.</p><ul><li><p><em>Disillusioned masses were laid off and desperate, in total despair.</em></p></li><li><p><em>Pure thrill and excitement at the possibilities of the future</em></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.linkedin.com/feed/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!_A7n!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6b6a4a8-0d16-41c7-9cc7-87e7a533eec9_1192x1084.png 424w, /__u/substackcdn.com/image/fetch/$s_!_A7n!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6b6a4a8-0d16-41c7-9cc7-87e7a533eec9_1192x1084.png 848w, /__u/substackcdn.com/image/fetch/$s_!_A7n!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6b6a4a8-0d16-41c7-9cc7-87e7a533eec9_1192x1084.png 1272w, /__u/substackcdn.com/image/fetch/$s_!_A7n!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6b6a4a8-0d16-41c7-9cc7-87e7a533eec9_1192x1084.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!_A7n!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6b6a4a8-0d16-41c7-9cc7-87e7a533eec9_1192x1084.png" width="1192" height="1084" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a6b6a4a8-0d16-41c7-9cc7-87e7a533eec9_1192x1084.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1084,&quot;width&quot;:1192,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:363486,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.linkedin.com/feed/&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/198343291?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6b6a4a8-0d16-41c7-9cc7-87e7a533eec9_1192x1084.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!_A7n!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6b6a4a8-0d16-41c7-9cc7-87e7a533eec9_1192x1084.png 424w, /__u/substackcdn.com/image/fetch/$s_!_A7n!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6b6a4a8-0d16-41c7-9cc7-87e7a533eec9_1192x1084.png 848w, /__u/substackcdn.com/image/fetch/$s_!_A7n!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6b6a4a8-0d16-41c7-9cc7-87e7a533eec9_1192x1084.png 1272w, /__u/substackcdn.com/image/fetch/$s_!_A7n!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6b6a4a8-0d16-41c7-9cc7-87e7a533eec9_1192x1084.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>We live in an upside-down world for sure. Watching the bell curve of despair and elation in my network for the last year, I&#8217;m ready to make some feeble predictions about what your next move should be, and what kind of world we are now living in.</p><p>Maybe I should just draw you some pictures. (without AI &#8230; *gasp)</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!FTeu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F471236f8-1f39-4fb5-8e17-eabcce2d8f63_1824x1122.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!FTeu!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F471236f8-1f39-4fb5-8e17-eabcce2d8f63_1824x1122.png 424w, /__u/substackcdn.com/image/fetch/$s_!FTeu!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F471236f8-1f39-4fb5-8e17-eabcce2d8f63_1824x1122.png 848w, /__u/substackcdn.com/image/fetch/$s_!FTeu!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F471236f8-1f39-4fb5-8e17-eabcce2d8f63_1824x1122.png 1272w, /__u/substackcdn.com/image/fetch/$s_!FTeu!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F471236f8-1f39-4fb5-8e17-eabcce2d8f63_1824x1122.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!FTeu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F471236f8-1f39-4fb5-8e17-eabcce2d8f63_1824x1122.png" width="1456" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/471236f8-1f39-4fb5-8e17-eabcce2d8f63_1824x1122.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:180056,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/198343291?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F471236f8-1f39-4fb5-8e17-eabcce2d8f63_1824x1122.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!FTeu!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F471236f8-1f39-4fb5-8e17-eabcce2d8f63_1824x1122.png 424w, /__u/substackcdn.com/image/fetch/$s_!FTeu!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F471236f8-1f39-4fb5-8e17-eabcce2d8f63_1824x1122.png 848w, /__u/substackcdn.com/image/fetch/$s_!FTeu!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F471236f8-1f39-4fb5-8e17-eabcce2d8f63_1824x1122.png 1272w, /__u/substackcdn.com/image/fetch/$s_!FTeu!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F471236f8-1f39-4fb5-8e17-eabcce2d8f63_1824x1122.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I would agree that AI is a game-changer, but then again, so were a lot of other technical things that came about over the last few decades, maybe not on the same scale, but arguably easier to adopt. So, why, pray tell, are there still many a COBOL mainframe running around with aged programmers hacking away?</p><ul><li><p><em>Why is the internet run on PHP? Why are there still a massive number of SQL Server and Oracle data warehouses cranking away? Why are most business analysts still using Excel? Why C and C++ with Rust around? Why Python for data when it&#8217;s slow and dumb?</em></p></li></ul><p>I would argue that because humans are humans, even with AI still around. They are cautious by nature; only a brave few will drive forward without question. The majority follow the crowd closely, peering around corners, more willing to talk about doing a thing than to do it.</p><blockquote><p>Maybe it&#8217;s some hidden DNA sequence where our jumpy forebears tried not get eaten by a lion or something.</p></blockquote><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/subscribe"><span>Subscribe now</span></a></p><div><hr></div><p><strong><a href="https://cube.registration.goldcast.io/webinar/27f396ef-3dfb-4172-9243-22669a77dac4?utm_source=dataengineeringcentral&amp;utm_medium=newsletter&amp;utm_campaign=cube-databricks-webinar-2026">Thanks to Cube for sponsoring this Newsletter!</a> </strong>The best way to support me and this Newsletter is to check out our Sponsor below and click the <a href="https://cube.registration.goldcast.io/webinar/27f396ef-3dfb-4172-9243-22669a77dac4?utm_source=dataengineeringcentral&amp;utm_medium=newsletter&amp;utm_campaign=cube-databricks-webinar-2026">link</a>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://cube.registration.goldcast.io/webinar/27f396ef-3dfb-4172-9243-22669a77dac4?utm_source=dataengineeringcentral&amp;utm_medium=newsletter&amp;utm_campaign=cube-databricks-webinar-2026" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!mWgU!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fb3a2fa-b410-49e0-9bb1-3e99a0241cba_2048x1152.png 424w, /__u/substackcdn.com/image/fetch/$s_!mWgU!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fb3a2fa-b410-49e0-9bb1-3e99a0241cba_2048x1152.png 848w, /__u/substackcdn.com/image/fetch/$s_!mWgU!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fb3a2fa-b410-49e0-9bb1-3e99a0241cba_2048x1152.png 1272w, /__u/substackcdn.com/image/fetch/$s_!mWgU!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fb3a2fa-b410-49e0-9bb1-3e99a0241cba_2048x1152.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!mWgU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fb3a2fa-b410-49e0-9bb1-3e99a0241cba_2048x1152.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6fb3a2fa-b410-49e0-9bb1-3e99a0241cba_2048x1152.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://cube.registration.goldcast.io/webinar/27f396ef-3dfb-4172-9243-22669a77dac4?utm_source=dataengineeringcentral&amp;utm_medium=newsletter&amp;utm_campaign=cube-databricks-webinar-2026&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="/__u/substackcdn.com/image/fetch/$s_!mWgU!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fb3a2fa-b410-49e0-9bb1-3e99a0241cba_2048x1152.png 424w, /__u/substackcdn.com/image/fetch/$s_!mWgU!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fb3a2fa-b410-49e0-9bb1-3e99a0241cba_2048x1152.png 848w, /__u/substackcdn.com/image/fetch/$s_!mWgU!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fb3a2fa-b410-49e0-9bb1-3e99a0241cba_2048x1152.png 1272w, /__u/substackcdn.com/image/fetch/$s_!mWgU!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fb3a2fa-b410-49e0-9bb1-3e99a0241cba_2048x1152.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><a href="https://cube.registration.goldcast.io/webinar/27f396ef-3dfb-4172-9243-22669a77dac4?utm_source=dataengineeringcentral&amp;utm_medium=newsletter&amp;utm_campaign=cube-databricks-webinar-2026">Cube on Databricks: The AI-Native BI Platform for Your Lakehouse</a> - One Semantic Layer for BI, Embedded Analytics, and AI on Databricks</p><p style="text-align: center;">Cube is the AI-native BI platform built on a universal semantic layer. Semantic layer, query engine, visualizations, embedded analytics SDKs, and an AI Analyst, all built on a single set of metric definitions. Point it at any warehouse or lakehouse, and you get one consistent analytics experience across dashboards, customer-facing apps, and AI/LLM use cases.</p><p style="text-align: center;"><strong><a href="https://cube.registration.goldcast.io/webinar/27f396ef-3dfb-4172-9243-22669a77dac4?utm_source=dataengineeringcentral&amp;utm_medium=newsletter&amp;utm_campaign=cube-databricks-webinar-2026">Register for the Webinar!</a></strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://cube.registration.goldcast.io/webinar/27f396ef-3dfb-4172-9243-22669a77dac4?utm_source=dataengineeringcentral&amp;utm_medium=newsletter&amp;utm_campaign=cube-databricks-webinar-2026" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!aJ-j!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a5ca520-0919-47ae-849f-c6184e8a830f_2304x626.png 424w, /__u/substackcdn.com/image/fetch/$s_!aJ-j!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a5ca520-0919-47ae-849f-c6184e8a830f_2304x626.png 848w, /__u/substackcdn.com/image/fetch/$s_!aJ-j!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a5ca520-0919-47ae-849f-c6184e8a830f_2304x626.png 1272w, /__u/substackcdn.com/image/fetch/$s_!aJ-j!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a5ca520-0919-47ae-849f-c6184e8a830f_2304x626.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!aJ-j!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a5ca520-0919-47ae-849f-c6184e8a830f_2304x626.png" width="1456" height="396" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0a5ca520-0919-47ae-849f-c6184e8a830f_2304x626.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:396,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:676709,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://cube.registration.goldcast.io/webinar/27f396ef-3dfb-4172-9243-22669a77dac4?utm_source=dataengineeringcentral&amp;utm_medium=newsletter&amp;utm_campaign=cube-databricks-webinar-2026&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/198343291?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a5ca520-0919-47ae-849f-c6184e8a830f_2304x626.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="/__u/substackcdn.com/image/fetch/$s_!aJ-j!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a5ca520-0919-47ae-849f-c6184e8a830f_2304x626.png 424w, /__u/substackcdn.com/image/fetch/$s_!aJ-j!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a5ca520-0919-47ae-849f-c6184e8a830f_2304x626.png 848w, /__u/substackcdn.com/image/fetch/$s_!aJ-j!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a5ca520-0919-47ae-849f-c6184e8a830f_2304x626.png 1272w, /__u/substackcdn.com/image/fetch/$s_!aJ-j!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a5ca520-0919-47ae-849f-c6184e8a830f_2304x626.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h3>Different cultures, different takes, different abilities.</h3><p>For the most part, people operate in the bubbles and circles in which they have spun the web of their lives. Sure, there a few who&#8217;ve moved between the 12 person startup and 120,000 person corporate giant, or the family owned business in the Midwest.</p><ul><li><p>These are not the same people</p></li><li><p>These don&#8217;t have the same talent</p></li><li><p>The cultures are different</p></li></ul><p>Some Engineering groups don&#8217;t handwrite or review a single line of code anymore; they proudly Gastown their way to whatever result they want. Design reviews, code generation, PRs and reviews, testing, release, bug fixes.</p><p>Others work in places where they have a locked-down version of CoPilot on a 2-year-old model. AND, they are in a business context where the people at the top think that is the cat's meow, cutting-edge stuff.</p><ul><li><p><em>And of course, we have everything in between, from all-in to all-out.</em></p></li></ul><p><strong>How many of you have been in tech long enough to be familiar with how long it actually takes to roll out some massive shift in a technology stack, and how successful those rollouts are?</strong></p><p>Let&#8217;s be real.</p><p>There is some distance between Anthropic telling us no one will write code, and that reality becoming fact throughout the world. Umm &#8230; like &#8230; probably longer than your lifetime.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/how-to-10x-the-100x-claude-engineer?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/p/how-to-10x-the-100x-claude-engineer?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share"><span>Share</span></a></p><div><hr></div><h2>That said, beat em&#8217; at their own game.</h2><p>Either way, no one knows the hour. You are probably wondering what&#8217;s next for you, what your next move should be. I think I have a few thoughts I would like to throw in the ring.</p><div class="pullquote"><p>How can we, us, you &#8230; take advantage of this explosion in AI and come out stronger and better? How can we 10x the 100x Claude Engineer down the street or down the cubicle?</p></div><p>What the possible and very specific chinks in the LLM armor might be, and how one can, in good measure, differentiate oneself to survive the unknown cataclysm that appears to be bursting above our heads in biblical torrents.</p><p>Here it goes, take it for what it&#8217;s worth, just my take.</p><ol><li><p><strong>Use AI to streamline and increase your productivity.</strong></p><ol><li><p>AI can help you do your job better, so use it. Duh.</p></li></ol></li><li><p><strong>Read the (</strong><em><strong>AI</strong></em><strong>) room, at work, match + 20% whatever they want.</strong></p></li><li><p><strong>Work hard on your soft (</strong><em><strong>human</strong></em><strong>) skills.</strong></p></li><li><p><strong>Simply work harder (</strong><em><strong>I didn&#8217;t say longer</strong></em><strong>) than most people.</strong></p><ol><li><p><a href="https://www.confessionsofadataguy.com/how-to-be-better-than-everyone-else/">How to be Better Than Everyone Else</a></p></li></ol></li><li><p><strong>Continue to learn new things monthly.</strong></p><ol><li><p><a href="/__u/dataengineeringcentral.substack.com/p/becoming-a-better-data-engineer">Becoming a &#8220;better&#8221; Data Engineer</a></p></li></ol></li><li><p><strong>Re-teach yourself the fundamentals periodically.</strong></p><ol><li><p><a href="/__u/dataengineeringcentral.substack.com/p/your-limiting-factor-in-software">Your Limiting Factor (in Software)</a></p></li></ol></li><li><p><strong>Learn to plan projects and lead people.</strong></p></li><li><p><strong>Spent time on systems design and architecture.</strong></p><ol><li><p><a href="https://www.amazon.com/Designing-Data-Intensive-Applications-Reliable-Maintainable/dp/1449373321">Designing Data-Intensive Applications</a></p></li></ol></li><li><p><strong>Improve everything you touch.</strong></p></li><li><p><strong>Have a positive can-do attitude.</strong></p></li><li><p><strong>Learn to have maniacal focus, finish what you start.</strong></p><ol><li><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/dataengineeringcentral.substack.com/p/maniacal-focus" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!TaPp!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f0c96f8-ca4c-4393-9ab1-977389e41b3c_1890x602.png 424w, /__u/substackcdn.com/image/fetch/$s_!TaPp!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f0c96f8-ca4c-4393-9ab1-977389e41b3c_1890x602.png 848w, /__u/substackcdn.com/image/fetch/$s_!TaPp!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f0c96f8-ca4c-4393-9ab1-977389e41b3c_1890x602.png 1272w, /__u/substackcdn.com/image/fetch/$s_!TaPp!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f0c96f8-ca4c-4393-9ab1-977389e41b3c_1890x602.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!TaPp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f0c96f8-ca4c-4393-9ab1-977389e41b3c_1890x602.png" width="1456" height="464" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0f0c96f8-ca4c-4393-9ab1-977389e41b3c_1890x602.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:464,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:546397,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://dataengineeringcentral.substack.com/p/maniacal-focus&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/198343291?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f0c96f8-ca4c-4393-9ab1-977389e41b3c_1890x602.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!TaPp!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f0c96f8-ca4c-4393-9ab1-977389e41b3c_1890x602.png 424w, /__u/substackcdn.com/image/fetch/$s_!TaPp!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f0c96f8-ca4c-4393-9ab1-977389e41b3c_1890x602.png 848w, /__u/substackcdn.com/image/fetch/$s_!TaPp!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f0c96f8-ca4c-4393-9ab1-977389e41b3c_1890x602.png 1272w, /__u/substackcdn.com/image/fetch/$s_!TaPp!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f0c96f8-ca4c-4393-9ab1-977389e41b3c_1890x602.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p></li></ol></li><li><p><strong>Read a lot of books and blogs.</strong></p><ol><li><p><a href="https://staffeng.com/book">Staff Engineer by Will Larson</a></p></li><li><p><a href="https://pragprog.com/titles/tpp20/the-pragmatic-programmer-20th-anniversary-edition/">The Pragmatic Programmer</a></p></li></ol></li><li><p><strong>Spend time outside, be healthy, and sleep well.</strong></p><p></p></li></ol><p>You will notice I didn&#8217;t write a lot about AI, in the age of AI, for becoming 10X better than the 100X Claude Engineer. The fallacy that Claude Engineer falls into is that somehow they are different than everyone else who has the exact same tool. <strong>This is highly unlikely.</strong></p><blockquote><p>AI is the Great Equalizer.</p></blockquote><p>To make yourself employable, long-term and short-term, it&#8217;s important to be good at what you do, AI or no, creating technical solutions, but the best of the best have always been more than simple code pushers.</p><ul><li><p>People who care about their craft leave things better than they found them, with positive attitudes, team-player qualities, and a willingness to lead and teach others. Life-long learners who are not afraid of new tools and lead by example.</p></li></ul><p>Trust me, that 100X Claude Engineer around the corner is obsessed with their prompts and the next billion-dollar SaaS idea they are going to code out this weekend.</p><p>They are not thinking about &#8230;</p><ul><li><p>communicating with non-Engineering groups</p></li><li><p>being able to bring others together to finish a project</p></li><li><p>focusing on finishing one or two tasks at a time</p></li><li><p>thinking about the bigger picture</p></li><li><p>delivering value to the business</p></li><li><p>what code not to write</p></li><li><p>how to reduce complexity</p></li><li><p>&#8230; etc</p></li></ul><p>The best engineers are thinking about those things<span>&nbsp;</span><em><strong><span>AND using AI to their advantage</span></strong></em><span>&nbsp;to help them do those tasks better and faster,</span> where it makes sense. To them, AI is just a tool to enable more productive work and better outcomes, pretty much like every other new technology they&#8217;ve come across.</p><blockquote><p>I am both a believer and unbeliever of AI and software at the same time.</p></blockquote><p>You can be more than one thing at the same time; you don&#8217;t have to join others in the camps they find themselves in, begging you to join them, na, trying to convince you against your will to join them. Just ride the thin red line.</p><p>It&#8217;s neither helpful to hate AI nor to throw everything out the window in favor of AI. <em><strong>Be smart, be nuanced in your approach.</strong></em> I still exercise my thoughts and brain, I use AI to 10X those 100X Claude Engineers by still spending most of my time with Claude to think through problems, steelmanning designs, examining all possibilities, planning projects and work, and learning new things.</p><div class="poll-embed" data-attrs="{&quot;id&quot;:612094}" data-component-name="PollToDOM"></div><p></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/how-to-10x-the-100x-claude-engineer/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/p/how-to-10x-the-100x-claude-engineer/comments"><span>Leave a comment</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Semantic Layers, Agents, and the Future of Analytics]]></title><description><![CDATA[with David Jayatillake]]></description><link>https://dataengineeringcentral.substack.com/p/semantic-layers-agents-and-the-future</link><guid isPermaLink="false">https://dataengineeringcentral.substack.com/p/semantic-layers-agents-and-the-future</guid><dc:creator><![CDATA[Daniel Beach]]></dc:creator><pubDate>Wed, 24 Jun 2026 12:33:54 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/202194221/cdcc107b4206917e994d3e03857cfc05.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>In this episode of the Data Engineering Central Podcast, I sit down with <a href="https://www.linkedin.com/in/david-jayatillake/">David Jaitillake</a> to explore the future of data engineering, analytics, and AI. David has spent nearly two decades working across data teams, from analyst roles in the early SQL Server days to leading teams, founding startups, serving as VP of AI at Cube, and now co-founding <a href="https://quarri.ai/">Quarry</a>.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/subscribe"><span>Subscribe now</span></a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.linkedin.com/in/david-jayatillake/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!pZyu!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d301b11-045c-43fd-9a2d-843b73134871_1560x788.png 424w, /__u/substackcdn.com/image/fetch/$s_!pZyu!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d301b11-045c-43fd-9a2d-843b73134871_1560x788.png 848w, /__u/substackcdn.com/image/fetch/$s_!pZyu!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d301b11-045c-43fd-9a2d-843b73134871_1560x788.png 1272w, /__u/substackcdn.com/image/fetch/$s_!pZyu!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d301b11-045c-43fd-9a2d-843b73134871_1560x788.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!pZyu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d301b11-045c-43fd-9a2d-843b73134871_1560x788.png" width="1456" height="735" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8d301b11-045c-43fd-9a2d-843b73134871_1560x788.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:735,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:265544,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.linkedin.com/in/david-jayatillake/&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/202194221?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d301b11-045c-43fd-9a2d-843b73134871_1560x788.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!pZyu!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d301b11-045c-43fd-9a2d-843b73134871_1560x788.png 424w, /__u/substackcdn.com/image/fetch/$s_!pZyu!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d301b11-045c-43fd-9a2d-843b73134871_1560x788.png 848w, /__u/substackcdn.com/image/fetch/$s_!pZyu!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d301b11-045c-43fd-9a2d-843b73134871_1560x788.png 1272w, /__u/substackcdn.com/image/fetch/$s_!pZyu!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d301b11-045c-43fd-9a2d-843b73134871_1560x788.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>We discuss why semantic layers have suddenly become one of the most important concepts in modern data platforms, how tools like Claude Code are transforming engineering workflows, and why the core problems in data haven&#8217;t really changed despite massive advances in technology.</p><blockquote><p>David shares his perspective on where agentic workflows are headed, what AI means for junior engineers entering the field, and why experienced practitioners may be more valuable than ever before. We also dive into the evolution of data platforms, lessons learned from startups, the promise of tools like DuckDB and MotherDuck, and how organizations should think about adopting AI responsibly.</p></blockquote><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/semantic-layers-agents-and-the-future?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Data Engineering Central! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/semantic-layers-agents-and-the-future?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/p/semantic-layers-agents-and-the-future?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share"><span>Share</span></a></p></div><p>Whether you&#8217;re a data engineer, analytics engineer, engineering leader, or someone trying to understand where the industry is headed, this conversation offers a practical and honest look at what&#8217;s coming next.</p><h2>What We Cover</h2><ul><li><p>David&#8217;s journey from analyst to startup founder</p></li><li><p>The rise of semantic layers and why they matter</p></li><li><p>Why data modeling is still critical in the AI era</p></li><li><p>How AI coding agents are changing engineering work</p></li><li><p>What Claude Code is enabling today</p></li><li><p>The future of agentic data pipelines</p></li><li><p>Why DuckDB and MotherDuck are gaining traction</p></li><li><p>The challenges facing junior engineers</p></li><li><p>Career advice for data professionals at every stage</p></li><li><p>Whether David is optimistic about the future of AI and data</p></li></ul><p>Connect with David:</p><ul><li><p>LinkedIn: <a href="https://www.linkedin.com/in/david-jayatillake/">https://www.linkedin.com/in/david-jayatillake/</a></p></li><li><p>Substack: </p><div class="embedded-publication-wrap" data-attrs="{&quot;id&quot;:658281,&quot;embedding_publication_id&quot;:null,&quot;name&quot;:&quot;davidj.substack&quot;,&quot;logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!bG38!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fea52a4-dc41-4f4d-93f4-bcfdd60e4ea1_666x666.png&quot;,&quot;base_url&quot;:&quot;https://davidsj.substack.com&quot;,&quot;hero_text&quot;:&quot;A substack about my journey in data: building data teams/stacks for org impact&quot;,&quot;author_name&quot;:&quot;David Jayatillake &#10013;&#65039;&quot;,&quot;show_subscribe&quot;:true,&quot;logo_bg_color&quot;:null,&quot;language&quot;:&quot;en&quot;}" data-component-name="EmbeddedPublicationToDOMWithSubscribe"><div class="embedded-publication show-subscribe"><a class="embedded-publication-link-part" native="true" href="/__u/davidsj.substack.com/?utm_source=substack&amp;utm_campaign=publication_embed&amp;utm_medium=web"><img class="embedded-publication-logo" src="/__u/substackcdn.com/image/fetch/$s_!bG38!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fea52a4-dc41-4f4d-93f4-bcfdd60e4ea1_666x666.png" width="56" height="56"><span class="embedded-publication-name">davidj.substack</span><div class="embedded-publication-hero-text">A substack about my journey in data: building data teams/stacks for org impact</div><div class="embedded-publication-author-name">By David Jayatillake &#10013;&#65039;</div></a><form class="embedded-publication-subscribe" method="GET" action="/__u/davidsj.substack.com/subscribe"><input type="hidden" name="source" value="publication-embed"><input type="hidden" name="autoSubmit" value="true"><input type="email" class="email-input" name="email" placeholder="Type your email..."><input type="submit" class="button primary" value="Subscribe"></form></div></div></li></ul><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/semantic-layers-agents-and-the-future?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Data Engineering Central! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/semantic-layers-agents-and-the-future?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/p/semantic-layers-agents-and-the-future?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share"><span>Share</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[Apache Datafusion Comet (Spark Accelerator)]]></title><description><![CDATA[any better than last time?]]></description><link>https://dataengineeringcentral.substack.com/p/apache-datafusion-comet-spark-accelerator</link><guid isPermaLink="false">https://dataengineeringcentral.substack.com/p/apache-datafusion-comet-spark-accelerator</guid><dc:creator><![CDATA[Daniel Beach]]></dc:creator><pubDate>Mon, 22 Jun 2026 13:32:47 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!xBCz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d2a9e5f-8f69-48da-9591-bc0febd92414_1280x720.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!xBCz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d2a9e5f-8f69-48da-9591-bc0febd92414_1280x720.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!xBCz!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d2a9e5f-8f69-48da-9591-bc0febd92414_1280x720.png 424w, /__u/substackcdn.com/image/fetch/$s_!xBCz!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d2a9e5f-8f69-48da-9591-bc0febd92414_1280x720.png 848w, /__u/substackcdn.com/image/fetch/$s_!xBCz!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d2a9e5f-8f69-48da-9591-bc0febd92414_1280x720.png 1272w, /__u/substackcdn.com/image/fetch/$s_!xBCz!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d2a9e5f-8f69-48da-9591-bc0febd92414_1280x720.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!xBCz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d2a9e5f-8f69-48da-9591-bc0febd92414_1280x720.png" width="1280" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1d2a9e5f-8f69-48da-9591-bc0febd92414_1280x720.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1271937,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/200167715?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d2a9e5f-8f69-48da-9591-bc0febd92414_1280x720.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!xBCz!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d2a9e5f-8f69-48da-9591-bc0febd92414_1280x720.png 424w, /__u/substackcdn.com/image/fetch/$s_!xBCz!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d2a9e5f-8f69-48da-9591-bc0febd92414_1280x720.png 848w, /__u/substackcdn.com/image/fetch/$s_!xBCz!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d2a9e5f-8f69-48da-9591-bc0febd92414_1280x720.png 1272w, /__u/substackcdn.com/image/fetch/$s_!xBCz!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d2a9e5f-8f69-48da-9591-bc0febd92414_1280x720.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>As I was winding my way through the various twists and turns of <a href="https://www.linkedin.com/in/danieldavidbeach/">LinkedIn</a> lately, strange it has become the least of the social media evils, by happenstance there popped a post about <a href="https://datafusion.apache.org/comet/#">Comet</a>, that Datafusion baby that&#8217;s been trying to take a corner out of Spark for a few years now.</p><p>I did <a href="/__u/dataengineeringcentral.substack.com/p/apache-datafusion-comet">poke a stick at Comet back in 2024</a>, but it was a little painful. You can read about that experience blew if you&#8217;re interested.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/dataengineeringcentral.substack.com/p/apache-datafusion-comet" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!q19-!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8355430b-f037-484a-8f1a-6e16b72e9086_2058x772.png 424w, /__u/substackcdn.com/image/fetch/$s_!q19-!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8355430b-f037-484a-8f1a-6e16b72e9086_2058x772.png 848w, /__u/substackcdn.com/image/fetch/$s_!q19-!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8355430b-f037-484a-8f1a-6e16b72e9086_2058x772.png 1272w, /__u/substackcdn.com/image/fetch/$s_!q19-!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8355430b-f037-484a-8f1a-6e16b72e9086_2058x772.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!q19-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8355430b-f037-484a-8f1a-6e16b72e9086_2058x772.png" width="1456" height="546" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8355430b-f037-484a-8f1a-6e16b72e9086_2058x772.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:546,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:131640,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://dataengineeringcentral.substack.com/p/apache-datafusion-comet&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/200167715?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8355430b-f037-484a-8f1a-6e16b72e9086_2058x772.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!q19-!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8355430b-f037-484a-8f1a-6e16b72e9086_2058x772.png 424w, /__u/substackcdn.com/image/fetch/$s_!q19-!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8355430b-f037-484a-8f1a-6e16b72e9086_2058x772.png 848w, /__u/substackcdn.com/image/fetch/$s_!q19-!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8355430b-f037-484a-8f1a-6e16b72e9086_2058x772.png 1272w, /__u/substackcdn.com/image/fetch/$s_!q19-!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8355430b-f037-484a-8f1a-6e16b72e9086_2058x772.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>One would have to assume with the increase in <a href="https://datafusion.apache.org/comet/#">Comet</a> chatter, that the project has gotten its sea legs under it and hopefully is a slightly better experience this time. I&#8217;m crossing my fingers at this point that I don&#8217;t have to build my own JAR this time.</p><blockquote><p>I hope one can simply download the correct pre-built JAR for the Spark version we are interested in. That would be a step in the right direction.</p></blockquote><p>Truth is I have do no &#8220;pre-work&#8221; when I sit down to write articles like this and explore or revisit tools. Endevoring to simply approach the problem space like the average engineer who interact with some new &#8220;thing&#8221; for the first time. I want to encounter that same experience and relay that to you. <strong>Save you some trouble.</strong></p><p>I do not have particularly high hopes from what I might encounter on this foray into Mordor, based on past experience. Let me explain what I mean by this. There are two types of Engineers and tooling they build in the world &#8230;</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">1. Smart engineers building cool tools but lack critical 
developer-centric awareness.


2. Smart engineers building cools tools and understand 
developer-centric are the key to success.</code></pre></div><p>This has been a problem as long as I&#8217;ve been (attempting) to write code for the last 20 years. To this day, it simply doesn&#8217;t change. Some tool and their ardent acolytes say &#8220;<em>Look, we are faster, come unto us.</em>&#8221; Yet, they never seem to crack the nut and become mainstream, and can&#8217;t figure out why.</p><blockquote><p>All the while continuing to waste their resources on negativity, pulling down other <strong>people</strong> and <strong>tools</strong> in an effort to lift themselves into a place by pulling other things down. <em>This never has worked, and never will, longterm, in any sphere in life.</em></p></blockquote><p>I&#8217;ve been privy to see behind the curtains, meeting people at Databricks and MotherDuck (DuckDB), who are creating and running the creme-de-la-creme of data tooling. What makes them succesful?</p><ul><li><p>The have the fastest tool &#8230; NO</p></li><li><p>The focus their energies on negativity and others .. NO</p></li></ul><p>They simply have an almost irresistible set of qualities that is impossible to ignore or hid &#8230; or be pulled down in the mud by others.</p><ul><li><p>Positivity in all things</p></li><li><p>Love what they do and other people</p></li><li><p>Put Developer experience BEFORE everything else</p></li><li><p>Serve and give back to the data community</p></li></ul><p>So simple, but yet so hard for some folk to grasp. Why? I don&#8217;t know. It&#8217;s probably something inside them, unhappy people will always be bumbling along looking for people to suck down into their misery.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/apache-datafusion-comet-spark-accelerator?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Data Engineering Central! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/apache-datafusion-comet-spark-accelerator?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/p/apache-datafusion-comet-spark-accelerator?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share"><span>Share</span></a></p></div><div><hr></div><h2>Let&#8217;s start what I&#8217;ve been avoiding</h2><p>Ok, at some point we have to get to what we are after today, namely figuring out if <a href="https://github.com/apache/datafusion-comet">Apache Datafusion Comet</a> has improved itself over the few years since we last visited it. One thing is for sure. In the Year of Lord 2026 if someone is using Spark, they better be using Databricks. </p><p>I know there are still a few odd old-school curmudgeons banging around in the dark corners, BUT if you want to be taken seriously in the Spark world today, you must go where the users are. Databricks. Sorry. Not Sorry.</p><ul><li><p>Can we get Comet working on Databricks?</p></li></ul><p>First, we need a JAR.</p><p><a href="https://github.com/apache/datafusion-comet">The GitHub page for Comet</a> gives a semi-not-so-much clear instructions.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://github.com/apache/datafusion-comet" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!ub8v!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfdd7640-6f5b-4c4b-b47a-c608d803bc67_1946x1034.png 424w, /__u/substackcdn.com/image/fetch/$s_!ub8v!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfdd7640-6f5b-4c4b-b47a-c608d803bc67_1946x1034.png 848w, /__u/substackcdn.com/image/fetch/$s_!ub8v!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfdd7640-6f5b-4c4b-b47a-c608d803bc67_1946x1034.png 1272w, /__u/substackcdn.com/image/fetch/$s_!ub8v!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfdd7640-6f5b-4c4b-b47a-c608d803bc67_1946x1034.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!ub8v!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfdd7640-6f5b-4c4b-b47a-c608d803bc67_1946x1034.png" width="1456" height="774" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bfdd7640-6f5b-4c4b-b47a-c608d803bc67_1946x1034.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:774,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:303149,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://github.com/apache/datafusion-comet&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/200167715?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfdd7640-6f5b-4c4b-b47a-c608d803bc67_1946x1034.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!ub8v!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfdd7640-6f5b-4c4b-b47a-c608d803bc67_1946x1034.png 424w, /__u/substackcdn.com/image/fetch/$s_!ub8v!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfdd7640-6f5b-4c4b-b47a-c608d803bc67_1946x1034.png 848w, /__u/substackcdn.com/image/fetch/$s_!ub8v!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfdd7640-6f5b-4c4b-b47a-c608d803bc67_1946x1034.png 1272w, /__u/substackcdn.com/image/fetch/$s_!ub8v!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfdd7640-6f5b-4c4b-b47a-c608d803bc67_1946x1034.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The <a href="https://datafusion.apache.org/comet/user-guide/latest/installation.html">installation guide</a> gives us more info, including what Spark Versions we are allowed to use with Comet.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://datafusion.apache.org/comet/user-guide/latest/installation.html" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!5_oZ!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52b4793b-db02-419a-a300-7e55eb41f525_1946x798.png 424w, /__u/substackcdn.com/image/fetch/$s_!5_oZ!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52b4793b-db02-419a-a300-7e55eb41f525_1946x798.png 848w, /__u/substackcdn.com/image/fetch/$s_!5_oZ!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52b4793b-db02-419a-a300-7e55eb41f525_1946x798.png 1272w, /__u/substackcdn.com/image/fetch/$s_!5_oZ!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52b4793b-db02-419a-a300-7e55eb41f525_1946x798.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!5_oZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52b4793b-db02-419a-a300-7e55eb41f525_1946x798.png" width="1456" height="597" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/52b4793b-db02-419a-a300-7e55eb41f525_1946x798.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:597,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:196900,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://datafusion.apache.org/comet/user-guide/latest/installation.html&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/200167715?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52b4793b-db02-419a-a300-7e55eb41f525_1946x798.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!5_oZ!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52b4793b-db02-419a-a300-7e55eb41f525_1946x798.png 424w, /__u/substackcdn.com/image/fetch/$s_!5_oZ!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52b4793b-db02-419a-a300-7e55eb41f525_1946x798.png 848w, /__u/substackcdn.com/image/fetch/$s_!5_oZ!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52b4793b-db02-419a-a300-7e55eb41f525_1946x798.png 1272w, /__u/substackcdn.com/image/fetch/$s_!5_oZ!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52b4793b-db02-419a-a300-7e55eb41f525_1946x798.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>So, we will have to pick a DBR version that matches something in here. Strangely, they say &#8220;<em><strong>Published jar files are only available for released versions, </strong></em>&#8221; which insinuates they have published, pre-built JARs for supported Spark versions, although there is no link or mention of where to find those JARs &#8230; one could assume Maven maybe?</p><ul><li><p>You would think linking and being obvious about where pre-built JARs are located for potential dev &#8220;customers&#8221; might be a fairly obvious thing to do. Or not.</p></li></ul><p>Ok, let&#8217;s go find some JARs (hopefully), before falling back to building our own. Indeed, <a href="https://mvnrepository.com/artifact/org.apache.datafusion">they have a Maven repo</a> with the different Spark version Jars.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://mvnrepository.com/artifact/org.apache.datafusion" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!YmCU!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17ce52fe-da2d-4a33-9d6d-9e40df76c21e_2134x1182.png 424w, /__u/substackcdn.com/image/fetch/$s_!YmCU!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17ce52fe-da2d-4a33-9d6d-9e40df76c21e_2134x1182.png 848w, /__u/substackcdn.com/image/fetch/$s_!YmCU!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17ce52fe-da2d-4a33-9d6d-9e40df76c21e_2134x1182.png 1272w, /__u/substackcdn.com/image/fetch/$s_!YmCU!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17ce52fe-da2d-4a33-9d6d-9e40df76c21e_2134x1182.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!YmCU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17ce52fe-da2d-4a33-9d6d-9e40df76c21e_2134x1182.png" width="1456" height="806" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/17ce52fe-da2d-4a33-9d6d-9e40df76c21e_2134x1182.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:806,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:280979,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://mvnrepository.com/artifact/org.apache.datafusion&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/200167715?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17ce52fe-da2d-4a33-9d6d-9e40df76c21e_2134x1182.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!YmCU!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17ce52fe-da2d-4a33-9d6d-9e40df76c21e_2134x1182.png 424w, /__u/substackcdn.com/image/fetch/$s_!YmCU!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17ce52fe-da2d-4a33-9d6d-9e40df76c21e_2134x1182.png 848w, /__u/substackcdn.com/image/fetch/$s_!YmCU!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17ce52fe-da2d-4a33-9d6d-9e40df76c21e_2134x1182.png 1272w, /__u/substackcdn.com/image/fetch/$s_!YmCU!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17ce52fe-da2d-4a33-9d6d-9e40df76c21e_2134x1182.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>We should be able to line this up with a <a href="https://docs.databricks.com/aws/en/release-notes/runtime/">Databricks DBR version</a> that fits our needs eh. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://docs.databricks.com/aws/en/release-notes/runtime/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!aqUD!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bdffbed-80db-48f9-937e-e69af19b0bd8_2248x1196.png 424w, /__u/substackcdn.com/image/fetch/$s_!aqUD!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bdffbed-80db-48f9-937e-e69af19b0bd8_2248x1196.png 848w, /__u/substackcdn.com/image/fetch/$s_!aqUD!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bdffbed-80db-48f9-937e-e69af19b0bd8_2248x1196.png 1272w, /__u/substackcdn.com/image/fetch/$s_!aqUD!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bdffbed-80db-48f9-937e-e69af19b0bd8_2248x1196.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!aqUD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bdffbed-80db-48f9-937e-e69af19b0bd8_2248x1196.png" width="1456" height="775" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9bdffbed-80db-48f9-937e-e69af19b0bd8_2248x1196.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:775,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:340725,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://docs.databricks.com/aws/en/release-notes/runtime/&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/200167715?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bdffbed-80db-48f9-937e-e69af19b0bd8_2248x1196.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!aqUD!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bdffbed-80db-48f9-937e-e69af19b0bd8_2248x1196.png 424w, /__u/substackcdn.com/image/fetch/$s_!aqUD!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bdffbed-80db-48f9-937e-e69af19b0bd8_2248x1196.png 848w, /__u/substackcdn.com/image/fetch/$s_!aqUD!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bdffbed-80db-48f9-937e-e69af19b0bd8_2248x1196.png 1272w, /__u/substackcdn.com/image/fetch/$s_!aqUD!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bdffbed-80db-48f9-937e-e69af19b0bd8_2248x1196.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><blockquote><p>Let&#8217;s pick Spark 4.0.</p></blockquote><p>So now we&#8217;ve got our <em><strong>comet-common-spark4.0_2.13-0.16.0.jar</strong></em> that we can align with DBR 17.3 LTS. Next, we just need to gather the required Spark configs needed to go along with this JAR, we can unwind what we need from the Comet examples given.</p><p>Based on what I can see, this is what we will need to add to our Databricks Cluster config.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;bash&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-bash">--jars $COMET_JAR \
    --conf spark.driver.extraClassPath=$COMET_JAR \
    --conf spark.executor.extraClassPath=$COMET_JAR \
    --conf spark.plugins=org.apache.spark.CometPlugin \
    --conf spark.shuffle.manager=org.apache.spark.sql.comet.execution.shuffle.CometShuffleManager \
    --conf spark.comet.explainFallback.enabled=true \</code></pre></div><p>As well as possibly</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;bash&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-bash">--driver-class-path spark/target/comet-spark-spark4.1_2.13-0.17.0-SNAPSHOT.jar
</code></pre></div><p>Also, if you want your brain to go numb, you can read through the <a href="https://datafusion.apache.org/comet/user-guide/latest/configs.html">Comet Configs located here</a>, it&#8217;s the next page that comes up in the Installation Instructions.</p><p>I&#8217;m assuming some of these are important, and greatly assist with how Comet performs, but God knows how one is simply supposed to scroll through all 1000 of them and know what to do. Your guess is as good as mine.</p><ul><li><p>Might be nice if they put some sort of overview of the the most important ones, things that should not be left to default, or the most commonly used ones and put some sort of conceptual overview together for how to tune them.</p></li></ul><p>To top it all off, <a href="https://datafusion.apache.org/comet/user-guide/latest/compatibility/index.html">there is a very large and complex &#8220;Compatibility&#8221; section</a> detailing what Comet can, and cannot do, where it will fall back to Spark etc. This one will give you a headache as well.</p><div class="pullquote"><p>Between that and the configs, you either need to have an ungodly amount of time on your hands, or be a core maintainer &#8230; or know someone who is &#8230; at that point you can probably get everything figured out.</p></div><p>If you meet someone behind the old oak tree at midnight, throw salt over your left shoulder, and say these words &#8230; &#8220;Ooga Booga&#8221; 3 times over. At that point you will know if the production Spark pipeline you have will benefit from Comet and how to tune the configs for optimal performance.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Data Engineering Central is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h3>Tear* &#8230; let&#8217;s do this thing.</h3><p>Ok, let&#8217;s switch over to Databricks and get our cluster setup. First, let&#8217;s get this JAR available somewhere Databricks clusters can access it. Probably a Volume would be the easiest way to do this.</p><p>Here I have made a volume <code>Volumes/confessions/default/jars</code> and put our JAR up in there.</p><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!l836!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa346dda8-e17d-49ef-a72b-630c91c54413_1848x934.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!l836!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa346dda8-e17d-49ef-a72b-630c91c54413_1848x934.png 424w, /__u/substackcdn.com/image/fetch/$s_!l836!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa346dda8-e17d-49ef-a72b-630c91c54413_1848x934.png 848w, /__u/substackcdn.com/image/fetch/$s_!l836!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa346dda8-e17d-49ef-a72b-630c91c54413_1848x934.png 1272w, /__u/substackcdn.com/image/fetch/$s_!l836!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa346dda8-e17d-49ef-a72b-630c91c54413_1848x934.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!l836!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa346dda8-e17d-49ef-a72b-630c91c54413_1848x934.png" width="1456" height="736" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a346dda8-e17d-49ef-a72b-630c91c54413_1848x934.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:736,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:140105,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/200167715?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa346dda8-e17d-49ef-a72b-630c91c54413_1848x934.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!l836!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa346dda8-e17d-49ef-a72b-630c91c54413_1848x934.png 424w, /__u/substackcdn.com/image/fetch/$s_!l836!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa346dda8-e17d-49ef-a72b-630c91c54413_1848x934.png 848w, /__u/substackcdn.com/image/fetch/$s_!l836!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa346dda8-e17d-49ef-a72b-630c91c54413_1848x934.png 1272w, /__u/substackcdn.com/image/fetch/$s_!l836!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa346dda8-e17d-49ef-a72b-630c91c54413_1848x934.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Next, let&#8217;s make a little init.sh script that can run on any cluster.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;bash&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-bash">#!/bin/bash
COMET_JAR="/Volumes/confessions/default/jars/comet-common-spark4.0_2.13-0.16.0.jar"
LOCAL_JAR="/databricks/jars/comet-common-spark4.0_2.13-0.16.0.jar"

cp "$COMET_JAR" "$LOCAL_JAR"
chmod 644 "$LOCAL_JAR"</code></pre></div><p>Next, we can put that bash file into the same Databricks volume.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!b4Qf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab0d7843-f6c0-42e3-8458-992f9dbcefcc_1694x114.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!b4Qf!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab0d7843-f6c0-42e3-8458-992f9dbcefcc_1694x114.png 424w, /__u/substackcdn.com/image/fetch/$s_!b4Qf!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab0d7843-f6c0-42e3-8458-992f9dbcefcc_1694x114.png 848w, /__u/substackcdn.com/image/fetch/$s_!b4Qf!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab0d7843-f6c0-42e3-8458-992f9dbcefcc_1694x114.png 1272w, /__u/substackcdn.com/image/fetch/$s_!b4Qf!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab0d7843-f6c0-42e3-8458-992f9dbcefcc_1694x114.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!b4Qf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab0d7843-f6c0-42e3-8458-992f9dbcefcc_1694x114.png" width="1456" height="98" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ab0d7843-f6c0-42e3-8458-992f9dbcefcc_1694x114.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:98,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:18558,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/200167715?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab0d7843-f6c0-42e3-8458-992f9dbcefcc_1694x114.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!b4Qf!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab0d7843-f6c0-42e3-8458-992f9dbcefcc_1694x114.png 424w, /__u/substackcdn.com/image/fetch/$s_!b4Qf!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab0d7843-f6c0-42e3-8458-992f9dbcefcc_1694x114.png 848w, /__u/substackcdn.com/image/fetch/$s_!b4Qf!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab0d7843-f6c0-42e3-8458-992f9dbcefcc_1694x114.png 1272w, /__u/substackcdn.com/image/fetch/$s_!b4Qf!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab0d7843-f6c0-42e3-8458-992f9dbcefcc_1694x114.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Ok, so let&#8217;s just use one of those dreaded All-Purpose clusters in Databricks, configure it with the init script, as well as the rest of our configs.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!K4qJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb36b534f-ea1c-408d-b7ab-935e40eecf71_2022x910.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!K4qJ!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb36b534f-ea1c-408d-b7ab-935e40eecf71_2022x910.png 424w, /__u/substackcdn.com/image/fetch/$s_!K4qJ!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb36b534f-ea1c-408d-b7ab-935e40eecf71_2022x910.png 848w, /__u/substackcdn.com/image/fetch/$s_!K4qJ!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb36b534f-ea1c-408d-b7ab-935e40eecf71_2022x910.png 1272w, /__u/substackcdn.com/image/fetch/$s_!K4qJ!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb36b534f-ea1c-408d-b7ab-935e40eecf71_2022x910.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!K4qJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb36b534f-ea1c-408d-b7ab-935e40eecf71_2022x910.png" width="1456" height="655" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b36b534f-ea1c-408d-b7ab-935e40eecf71_2022x910.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:655,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:134254,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/200167715?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb36b534f-ea1c-408d-b7ab-935e40eecf71_2022x910.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!K4qJ!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb36b534f-ea1c-408d-b7ab-935e40eecf71_2022x910.png 424w, /__u/substackcdn.com/image/fetch/$s_!K4qJ!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb36b534f-ea1c-408d-b7ab-935e40eecf71_2022x910.png 848w, /__u/substackcdn.com/image/fetch/$s_!K4qJ!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb36b534f-ea1c-408d-b7ab-935e40eecf71_2022x910.png 1272w, /__u/substackcdn.com/image/fetch/$s_!K4qJ!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb36b534f-ea1c-408d-b7ab-935e40eecf71_2022x910.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>As well, we can add in that init script we made.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!nnQw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F956a8815-c9d8-4c69-b548-d6ae84a6a329_2116x602.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!nnQw!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F956a8815-c9d8-4c69-b548-d6ae84a6a329_2116x602.png 424w, /__u/substackcdn.com/image/fetch/$s_!nnQw!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F956a8815-c9d8-4c69-b548-d6ae84a6a329_2116x602.png 848w, /__u/substackcdn.com/image/fetch/$s_!nnQw!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F956a8815-c9d8-4c69-b548-d6ae84a6a329_2116x602.png 1272w, /__u/substackcdn.com/image/fetch/$s_!nnQw!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F956a8815-c9d8-4c69-b548-d6ae84a6a329_2116x602.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!nnQw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F956a8815-c9d8-4c69-b548-d6ae84a6a329_2116x602.png" width="1456" height="414" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/956a8815-c9d8-4c69-b548-d6ae84a6a329_2116x602.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:414,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:83278,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/200167715?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F956a8815-c9d8-4c69-b548-d6ae84a6a329_2116x602.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!nnQw!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F956a8815-c9d8-4c69-b548-d6ae84a6a329_2116x602.png 424w, /__u/substackcdn.com/image/fetch/$s_!nnQw!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F956a8815-c9d8-4c69-b548-d6ae84a6a329_2116x602.png 848w, /__u/substackcdn.com/image/fetch/$s_!nnQw!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F956a8815-c9d8-4c69-b548-d6ae84a6a329_2116x602.png 1272w, /__u/substackcdn.com/image/fetch/$s_!nnQw!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F956a8815-c9d8-4c69-b548-d6ae84a6a329_2116x602.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>And finally, our Spark configs for Comet.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!t3kD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa444b40-976d-450c-8070-82a0ca1c4bc5_2086x426.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!t3kD!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa444b40-976d-450c-8070-82a0ca1c4bc5_2086x426.png 424w, /__u/substackcdn.com/image/fetch/$s_!t3kD!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa444b40-976d-450c-8070-82a0ca1c4bc5_2086x426.png 848w, /__u/substackcdn.com/image/fetch/$s_!t3kD!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa444b40-976d-450c-8070-82a0ca1c4bc5_2086x426.png 1272w, /__u/substackcdn.com/image/fetch/$s_!t3kD!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa444b40-976d-450c-8070-82a0ca1c4bc5_2086x426.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!t3kD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa444b40-976d-450c-8070-82a0ca1c4bc5_2086x426.png" width="1456" height="297" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fa444b40-976d-450c-8070-82a0ca1c4bc5_2086x426.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:297,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:97320,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/200167715?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa444b40-976d-450c-8070-82a0ca1c4bc5_2086x426.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!t3kD!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa444b40-976d-450c-8070-82a0ca1c4bc5_2086x426.png 424w, /__u/substackcdn.com/image/fetch/$s_!t3kD!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa444b40-976d-450c-8070-82a0ca1c4bc5_2086x426.png 848w, /__u/substackcdn.com/image/fetch/$s_!t3kD!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa444b40-976d-450c-8070-82a0ca1c4bc5_2086x426.png 1272w, /__u/substackcdn.com/image/fetch/$s_!t3kD!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa444b40-976d-450c-8070-82a0ca1c4bc5_2086x426.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>I have zero idea if this is going to work, just a shot in the dark. We will find out soon enough, maybe. Ok, next we need some data in s3 to munge around with. <a href="https://www.backblaze.com/cloud-storage/resources/hard-drive-test-data#downloadingTheRawTestData">Let&#8217;s use the open-source Backblaze harddrive dataset.</a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.backblaze.com/cloud-storage/resources/hard-drive-test-data#downloadingTheRawTestData" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!DJBk!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20311177-c2af-42d2-8370-ab88ae8a6ca5_1808x460.png 424w, /__u/substackcdn.com/image/fetch/$s_!DJBk!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20311177-c2af-42d2-8370-ab88ae8a6ca5_1808x460.png 848w, /__u/substackcdn.com/image/fetch/$s_!DJBk!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20311177-c2af-42d2-8370-ab88ae8a6ca5_1808x460.png 1272w, /__u/substackcdn.com/image/fetch/$s_!DJBk!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20311177-c2af-42d2-8370-ab88ae8a6ca5_1808x460.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!DJBk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20311177-c2af-42d2-8370-ab88ae8a6ca5_1808x460.png" width="1456" height="370" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/20311177-c2af-42d2-8370-ab88ae8a6ca5_1808x460.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:370,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:108365,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.backblaze.com/cloud-storage/resources/hard-drive-test-data#downloadingTheRawTestData&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/200167715?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20311177-c2af-42d2-8370-ab88ae8a6ca5_1808x460.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!DJBk!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20311177-c2af-42d2-8370-ab88ae8a6ca5_1808x460.png 424w, /__u/substackcdn.com/image/fetch/$s_!DJBk!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20311177-c2af-42d2-8370-ab88ae8a6ca5_1808x460.png 848w, /__u/substackcdn.com/image/fetch/$s_!DJBk!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20311177-c2af-42d2-8370-ab88ae8a6ca5_1808x460.png 1272w, /__u/substackcdn.com/image/fetch/$s_!DJBk!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20311177-c2af-42d2-8370-ab88ae8a6ca5_1808x460.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>We can get all the 2025 data and use that. This is 365 files for about 43GB of CSV data in total. Not big data, but then again, most Spark pipelines running today picking up CSV files at not munching on Big Data.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!qQcN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee52e8c9-8ef9-46d0-975f-b883c9a3517d_2270x676.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!qQcN!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee52e8c9-8ef9-46d0-975f-b883c9a3517d_2270x676.png 424w, /__u/substackcdn.com/image/fetch/$s_!qQcN!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee52e8c9-8ef9-46d0-975f-b883c9a3517d_2270x676.png 848w, /__u/substackcdn.com/image/fetch/$s_!qQcN!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee52e8c9-8ef9-46d0-975f-b883c9a3517d_2270x676.png 1272w, /__u/substackcdn.com/image/fetch/$s_!qQcN!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee52e8c9-8ef9-46d0-975f-b883c9a3517d_2270x676.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!qQcN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee52e8c9-8ef9-46d0-975f-b883c9a3517d_2270x676.png" width="1456" height="434" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ee52e8c9-8ef9-46d0-975f-b883c9a3517d_2270x676.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:434,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:132864,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/200167715?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee52e8c9-8ef9-46d0-975f-b883c9a3517d_2270x676.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!qQcN!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee52e8c9-8ef9-46d0-975f-b883c9a3517d_2270x676.png 424w, /__u/substackcdn.com/image/fetch/$s_!qQcN!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee52e8c9-8ef9-46d0-975f-b883c9a3517d_2270x676.png 848w, /__u/substackcdn.com/image/fetch/$s_!qQcN!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee52e8c9-8ef9-46d0-975f-b883c9a3517d_2270x676.png 1272w, /__u/substackcdn.com/image/fetch/$s_!qQcN!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee52e8c9-8ef9-46d0-975f-b883c9a3517d_2270x676.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This will do for now. Let&#8217;s write some average Spark code that would represent the average Spark pipeline in production.</p>
      <p>
          <a href="/__u/dataengineeringcentral.substack.com/p/apache-datafusion-comet-spark-accelerator">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Review of Databricks Data + AI Summit 2026]]></title><description><![CDATA[from someone who wasn't there.]]></description><link>https://dataengineeringcentral.substack.com/p/review-of-databricks-data-ai-summit</link><guid isPermaLink="false">https://dataengineeringcentral.substack.com/p/review-of-databricks-data-ai-summit</guid><dc:creator><![CDATA[Daniel Beach]]></dc:creator><pubDate>Fri, 19 Jun 2026 18:52:08 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!LnEr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb329723-cf91-4789-8151-d87197833453_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!LnEr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb329723-cf91-4789-8151-d87197833453_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!LnEr!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb329723-cf91-4789-8151-d87197833453_1672x941.png 424w, /__u/substackcdn.com/image/fetch/$s_!LnEr!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb329723-cf91-4789-8151-d87197833453_1672x941.png 848w, /__u/substackcdn.com/image/fetch/$s_!LnEr!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb329723-cf91-4789-8151-d87197833453_1672x941.png 1272w, /__u/substackcdn.com/image/fetch/$s_!LnEr!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb329723-cf91-4789-8151-d87197833453_1672x941.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!LnEr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb329723-cf91-4789-8151-d87197833453_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cb329723-cf91-4789-8151-d87197833453_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2127943,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/202658374?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb329723-cf91-4789-8151-d87197833453_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!LnEr!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb329723-cf91-4789-8151-d87197833453_1672x941.png 424w, /__u/substackcdn.com/image/fetch/$s_!LnEr!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb329723-cf91-4789-8151-d87197833453_1672x941.png 848w, /__u/substackcdn.com/image/fetch/$s_!LnEr!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb329723-cf91-4789-8151-d87197833453_1672x941.png 1272w, /__u/substackcdn.com/image/fetch/$s_!LnEr!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb329723-cf91-4789-8151-d87197833453_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Well, it&#8217;s that time of year again. My feed has been full of a little bit of this, little bit of that from the Databricks Data and AI Summit 2026. It&#8217;s kinda hard to miss, although this year, I must say, it seemed a little on the quiet side as compared to others. </p><blockquote><p>Who knows, 2026 has been a busy year in the world in all ya know, wars, rumors of wars, layoffs, and generally it&#8217;s either the beginning of a new world or the end of our current one.</p></blockquote><p>Like any good hunter of technology, I keep my veteran ear to the ground, ruffling through the fluff and litter, trying to find out what is actually worth your time, and what is just another layer on the AI cake we are all too tired to choke down.</p><p>So I&#8217;m just going to give you my take on the important announcements and products released or announced at this years Databricks Data and AI Summit 2026. I mean I wasn&#8217;t there, so take me with a grain of salt.</p><p>Here&#8217;s my list, and I will then follow it up with my take on each one.</p><ul><li><p>Zach Wilson went after blowing a raspberry at them last year.</p></li><li><p>Lakehouse//RT aka &#8220;Reyden&#8221;</p></li><li><p>LTAP - OLAP + OLTP on a single copy of data in the lake</p></li></ul><p>Yeah, I&#8217;m giving a big ho-hum to the plethora of AI shiny rocks released, like Genie Ontology, Genie ZeroOps, Omnigent, Unity AI Gateway,  etc. The world of Agents and AI is still in flux, no clear winners, everyone is throwing stuff at the wall to see what sticks.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.reddit.com/r/databricks/comments/1u8g2by/databricks_just_dropped_genie_one_ontology_and/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!GqD8!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb76659e0-a8d2-4949-b981-3b7d49814497_1554x658.png 424w, /__u/substackcdn.com/image/fetch/$s_!GqD8!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb76659e0-a8d2-4949-b981-3b7d49814497_1554x658.png 848w, /__u/substackcdn.com/image/fetch/$s_!GqD8!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb76659e0-a8d2-4949-b981-3b7d49814497_1554x658.png 1272w, /__u/substackcdn.com/image/fetch/$s_!GqD8!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb76659e0-a8d2-4949-b981-3b7d49814497_1554x658.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!GqD8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb76659e0-a8d2-4949-b981-3b7d49814497_1554x658.png" width="1456" height="617" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b76659e0-a8d2-4949-b981-3b7d49814497_1554x658.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:617,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:185951,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.reddit.com/r/databricks/comments/1u8g2by/databricks_just_dropped_genie_one_ontology_and/&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/202658374?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb76659e0-a8d2-4949-b981-3b7d49814497_1554x658.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!GqD8!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb76659e0-a8d2-4949-b981-3b7d49814497_1554x658.png 424w, /__u/substackcdn.com/image/fetch/$s_!GqD8!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb76659e0-a8d2-4949-b981-3b7d49814497_1554x658.png 848w, /__u/substackcdn.com/image/fetch/$s_!GqD8!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb76659e0-a8d2-4949-b981-3b7d49814497_1554x658.png 1272w, /__u/substackcdn.com/image/fetch/$s_!GqD8!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb76659e0-a8d2-4949-b981-3b7d49814497_1554x658.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>For my part, I&#8217;m a big believer in Databricks, they have a propensity to fundamentally change technology and how we use it. Truly ground breaking technical solutions and products they bring to market. If you can&#8217;t admit that, then check yourself. That being said, I&#8217;m just reviewing what I consider products or announcements that meet that critera. <em><strong>Ground breaking and game changing.</strong></em></p><p>If you think I&#8217;m full of it about something, or I missed something big, drop a comment.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/review-of-databricks-data-ai-summit?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Data Engineering Central! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/review-of-databricks-data-ai-summit?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/p/review-of-databricks-data-ai-summit?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share"><span>Share</span></a></p></div><div><hr></div><h2>Zach showed up.</h2><p>Hey, I like a little spice in my life, the hot stuff keeps everyone on their toes. <a href="https://www.linkedin.com/posts/ritchievink_we-tried-to-reproduce-ops-post-and-couldnt-share-7466112259820433408-1DGU/">I regularly get on the wrong side of powerful people</a>, much to my joy. Nothing like free head space to bring me more followers.</p><p>Anywho, <a href="https://www.linkedin.com/posts/eczachly_i-wont-be-at-the-databricks-ai-summit-this-share-7337871019052789761-OaEr/">last year Zach was throwing rocks at Databricks</a>, as you can see below. Good Lord you gotta love seeing behind the curtain sometimes. We need our own data Netflix series on this sorta thing ya know?</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.linkedin.com/posts/eczachly_i-wont-be-at-the-databricks-ai-summit-this-share-7337871019052789761-OaEr/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!5BS5!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5f8781a-26ab-474b-b480-ce89f8cc31bf_1104x852.png 424w, /__u/substackcdn.com/image/fetch/$s_!5BS5!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5f8781a-26ab-474b-b480-ce89f8cc31bf_1104x852.png 848w, /__u/substackcdn.com/image/fetch/$s_!5BS5!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5f8781a-26ab-474b-b480-ce89f8cc31bf_1104x852.png 1272w, /__u/substackcdn.com/image/fetch/$s_!5BS5!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5f8781a-26ab-474b-b480-ce89f8cc31bf_1104x852.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!5BS5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5f8781a-26ab-474b-b480-ce89f8cc31bf_1104x852.png" width="1104" height="852" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f5f8781a-26ab-474b-b480-ce89f8cc31bf_1104x852.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:852,&quot;width&quot;:1104,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:152232,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.linkedin.com/posts/eczachly_i-wont-be-at-the-databricks-ai-summit-this-share-7337871019052789761-OaEr/&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/202658374?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5f8781a-26ab-474b-b480-ce89f8cc31bf_1104x852.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!5BS5!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5f8781a-26ab-474b-b480-ce89f8cc31bf_1104x852.png 424w, /__u/substackcdn.com/image/fetch/$s_!5BS5!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5f8781a-26ab-474b-b480-ce89f8cc31bf_1104x852.png 848w, /__u/substackcdn.com/image/fetch/$s_!5BS5!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5f8781a-26ab-474b-b480-ce89f8cc31bf_1104x852.png 1272w, /__u/substackcdn.com/image/fetch/$s_!5BS5!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5f8781a-26ab-474b-b480-ce89f8cc31bf_1104x852.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>But, Zach attended this years Summit, which I was glad to see. I think Zach is one of the smartest and hard working engineers I&#8217;ve ever scene, and I love Databricks because they make the best products. I&#8217;m glad they are getting along now.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.linkedin.com/posts/eczachly_data-modeling-is-getting-even-more-important-activity-7473150390377742336-xMfB?utm_source=share&amp;utm_medium=member_desktop&amp;rcm=ACoAACCGWeMBpzyTjCHWjac5iobhsbGE41GBhto" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!dA1W!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba64e47f-8257-4f5a-9788-57d6494eaaa0_1104x970.png 424w, /__u/substackcdn.com/image/fetch/$s_!dA1W!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba64e47f-8257-4f5a-9788-57d6494eaaa0_1104x970.png 848w, /__u/substackcdn.com/image/fetch/$s_!dA1W!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba64e47f-8257-4f5a-9788-57d6494eaaa0_1104x970.png 1272w, /__u/substackcdn.com/image/fetch/$s_!dA1W!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba64e47f-8257-4f5a-9788-57d6494eaaa0_1104x970.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!dA1W!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba64e47f-8257-4f5a-9788-57d6494eaaa0_1104x970.png" width="1104" height="970" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ba64e47f-8257-4f5a-9788-57d6494eaaa0_1104x970.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:970,&quot;width&quot;:1104,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:858143,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.linkedin.com/posts/eczachly_data-modeling-is-getting-even-more-important-activity-7473150390377742336-xMfB?utm_source=share&amp;utm_medium=member_desktop&amp;rcm=ACoAACCGWeMBpzyTjCHWjac5iobhsbGE41GBhto&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/202658374?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba64e47f-8257-4f5a-9788-57d6494eaaa0_1104x970.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!dA1W!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba64e47f-8257-4f5a-9788-57d6494eaaa0_1104x970.png 424w, /__u/substackcdn.com/image/fetch/$s_!dA1W!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba64e47f-8257-4f5a-9788-57d6494eaaa0_1104x970.png 848w, /__u/substackcdn.com/image/fetch/$s_!dA1W!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba64e47f-8257-4f5a-9788-57d6494eaaa0_1104x970.png 1272w, /__u/substackcdn.com/image/fetch/$s_!dA1W!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba64e47f-8257-4f5a-9788-57d6494eaaa0_1104x970.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Anywho, enough on that, next.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/subscribe"><span>Subscribe now</span></a></p><div><hr></div><h1>Lakehouse//RT: Databricks Brings Real-Time Analytics to the Lakehouse</h1><p>This one caught my poor little ears as soon as the words dripped out onto LinkedIn. Again, all this stuff is new so who knows what the future holds or if anything will come of it, but it solves some major pain points we&#8217;ve been dealing with in a new and novel way.</p><ul><li><p>I&#8217;m excited for this one.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.databricks.com/blog/introducing-lakehousert-real-time-performance-unified-lakehouse" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!GXQd!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f789d8d-8808-419b-aa8e-a0cc4ddf457c_1804x472.png 424w, /__u/substackcdn.com/image/fetch/$s_!GXQd!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f789d8d-8808-419b-aa8e-a0cc4ddf457c_1804x472.png 848w, /__u/substackcdn.com/image/fetch/$s_!GXQd!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f789d8d-8808-419b-aa8e-a0cc4ddf457c_1804x472.png 1272w, /__u/substackcdn.com/image/fetch/$s_!GXQd!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f789d8d-8808-419b-aa8e-a0cc4ddf457c_1804x472.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!GXQd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f789d8d-8808-419b-aa8e-a0cc4ddf457c_1804x472.png" width="1456" height="381" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8f789d8d-8808-419b-aa8e-a0cc4ddf457c_1804x472.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:381,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:135575,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.databricks.com/blog/introducing-lakehousert-real-time-performance-unified-lakehouse&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/202658374?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f789d8d-8808-419b-aa8e-a0cc4ddf457c_1804x472.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!GXQd!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f789d8d-8808-419b-aa8e-a0cc4ddf457c_1804x472.png 424w, /__u/substackcdn.com/image/fetch/$s_!GXQd!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f789d8d-8808-419b-aa8e-a0cc4ddf457c_1804x472.png 848w, /__u/substackcdn.com/image/fetch/$s_!GXQd!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f789d8d-8808-419b-aa8e-a0cc4ddf457c_1804x472.png 1272w, /__u/substackcdn.com/image/fetch/$s_!GXQd!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f789d8d-8808-419b-aa8e-a0cc4ddf457c_1804x472.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>One of the biggest challenges in modern data architecture has been serving real-time applications from a Data Lake or Lake House. When we adopted technologies like Delta Lake and Apache Iceberg, aka file storage with ACID, we gained some stuff and lost others. Well lost isn&#8217;t a good word. <em><strong>Delta Lake + Spark ain&#8217;t no Postgres + Python ya know??</strong></em></p><p>Traditional LakeHouses excel at ETL, analytics, machine learning, and business intelligence, but when teams need dashboards that refresh in milliseconds or applications serving thousands of users simultaneously, they often introduce an entirely separate serving database such as ClickHouse, Pinot, Druid, or Redis. </p><blockquote><p><em>That second system brings another copy of the data, another synchronization pipeline, another set of security policies, and another operational burden.</em></p></blockquote><p>It brings complexity and overhead. These technologies just had a difficult time jiving.</p><p><a href="https://www.databricks.com/blog/introducing-lakehousert-real-time-performance-unified-lakehouse">Lakehouse//RT</a> is Databricks&#8217; attempt to eliminate that architecture altogether. Instead of exporting data into a specialized serving database, <a href="https://www.databricks.com/blog/introducing-lakehousert-real-time-performance-unified-lakehouse">Lakehouse//RT</a> delivers millisecond query performance directly against Delta Lake while keeping the data inside the governed Lakehouse.</p><div><hr></div><h3>What is Lakehouse//RT?</h3><p>Lakehouse//RT is a new real-time compute designed specifically for workloads that require both <strong>very low latency</strong> and <strong>extremely high concurrency</strong>. It is powered by a new execution engine called <strong>Reyden</strong>, which Databricks says was built from the ground up for operational analytics, application serving, observability, dashboards, and AI agents.</p><blockquote><p>I&#8217;m still unsure if we are dealing with two things, or one &#8230; read this closely &#8230;</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!4ABQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ee117bd-42db-4165-b5ce-9f0170ebc60f_1600x558.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!4ABQ!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ee117bd-42db-4165-b5ce-9f0170ebc60f_1600x558.png 424w, /__u/substackcdn.com/image/fetch/$s_!4ABQ!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ee117bd-42db-4165-b5ce-9f0170ebc60f_1600x558.png 848w, /__u/substackcdn.com/image/fetch/$s_!4ABQ!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ee117bd-42db-4165-b5ce-9f0170ebc60f_1600x558.png 1272w, /__u/substackcdn.com/image/fetch/$s_!4ABQ!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ee117bd-42db-4165-b5ce-9f0170ebc60f_1600x558.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!4ABQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ee117bd-42db-4165-b5ce-9f0170ebc60f_1600x558.png" width="1456" height="508" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4ee117bd-42db-4165-b5ce-9f0170ebc60f_1600x558.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:508,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:186460,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/202658374?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ee117bd-42db-4165-b5ce-9f0170ebc60f_1600x558.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="/__u/substackcdn.com/image/fetch/$s_!4ABQ!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ee117bd-42db-4165-b5ce-9f0170ebc60f_1600x558.png 424w, /__u/substackcdn.com/image/fetch/$s_!4ABQ!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ee117bd-42db-4165-b5ce-9f0170ebc60f_1600x558.png 848w, /__u/substackcdn.com/image/fetch/$s_!4ABQ!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ee117bd-42db-4165-b5ce-9f0170ebc60f_1600x558.png 1272w, /__u/substackcdn.com/image/fetch/$s_!4ABQ!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ee117bd-42db-4165-b5ce-9f0170ebc60f_1600x558.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p>Powered by Reyden, a &#8220;new engine for realtime workloads&#8221;</p></li><li><p>Lakehouse/RT, &#8220;real time data warehouse&#8221;</p></li></ul><p>Are these two separate things you can use, or you use them both at the same time? I don&#8217;t know. Time will tell the details.</p><p>Unlike traditional analytical warehouses that optimize long-running reports, Reyden focuses on thousands of simultaneous interactive queries while maintaining consistent response times. According to Databricks, preview customers have seen:</p><ul><li><p><em>Up to <strong>16&#215; faster</strong> performance than existing real-time serving layers</em></p></li><li><p><em>Query latencies as low as <strong>10 milliseconds</strong></em></p></li><li><p><em>Sub-100 ms performance on much larger datasets</em></p></li><li><p><em>Around <strong>12,000 queries per second</strong> while maintaining low latency</em></p></li></ul><div><hr></div><h3>Eliminating the Serving Layer</h3><p>The biggest architectural shift isn&#8217;t simply that queries are faster, we&#8217;ve been hearing people say &#8220;<em><strong>My thing is faster</strong></em>,&#8221; for a decade or more. The difference is that Databricks wants to remove an entire layer of infrastructure.</p><p>Today&#8217;s architecture often looks like this:</p><pre><code><code>Delta Lake
      &#9474;
   ETL / CDC
      &#9474;
ClickHouse / Pinot / Druid / Redis
      &#9474;
 Applications &amp; Dashboards</code></code></pre><p>With Lakehouse//RT, Databricks wants applications to query the Lakehouse directly:</p><pre><code><code>Delta Lake
      &#9474;
Lakehouse//RT
      &#9474;
 Applications
 Dashboards
 AI Agents</code></code></pre><p>That means:</p><ul><li><p>no duplicate storage</p></li><li><p>no synchronization pipelines</p></li><li><p>no additional serving clusters</p></li><li><p>no proprietary storage formats</p></li><li><p>no duplicated governance</p></li></ul><p>Everything continues to use Delta Lake and Unity Catalog. Some will argue that this isn&#8217;t new technology, and that Databricks sees the growth of <a href="https://clickhouse.com/cloud?utm_campaign=google-brand-na-tier-1&amp;utm_source=google&amp;utm_medium=paid-search&amp;utm_source=google.com&amp;utm_medium=paid_search&amp;utm_campaign=21862172345_169330245029&amp;utm_content=764403839947&amp;utm_term=clickhouse_g_c&amp;gad_source=1&amp;gad_campaignid=21862172345&amp;gbraid=0AAAAAocOPCbtFWZH1GWrTR98um9mtF-hk&amp;gclid=Cj0KCQjwrs7RBhDuARIsAIVfBD3ibg5Mjr8pE6n0Ek_rMzC-N0U9B8cnuYQz6yVM79VYMP_DkonGBf8aAjZnEALw_wcB">ClickHouse</a> for example, and decided they needed to do something about that.</p><p>I agree, but I also think that Databricks providing this sort of extremely fast Compute option is ground breaking inside the Data Platform they provide. You simply CANNOT discount the reduction in complexity and code when you</p><div><hr></div><h3>Built for Operational Analytics</h3><p>Databricks positions Lakehouse//RT for workloads that have traditionally been difficult to run directly from a data lake:</p><ul><li><p><em>customer-facing SaaS applications</em></p></li><li><p><em>operational dashboards</em></p></li><li><p><em>observability platforms</em></p></li><li><p><em>security analytics</em></p></li><li><p><em>embedded analytics</em></p></li><li><p><em>AI agent retrieval</em></p></li><li><p><em>interactive business intelligence</em></p></li></ul><p>These are all scenarios where thousands of users&#8212;or AI agents&#8212;may issue queries simultaneously and expect responses in tens of milliseconds rather than seconds. It takes something tradtionally done outside Databricks, or at the minimum with third party tools, and brings it back inside the MotherShip.</p><blockquote><p>All the chickens coming home to roost so to speak.</p></blockquote><div><hr></div><h4>Simpler Operations</h4><p>Lakehouse//RT also introduces a different compute model. Instead of selecting warehouse sizes manually, Databricks automatically determines the appropriate baseline compute. Rather than scaling by duplicating entire warehouse clusters, it incrementally adds or removes nodes as concurrency changes, aiming to improve utilization while reducing costs. </p><h4>Governance Doesn&#8217;t Change</h4><p>One of the more compelling aspects of Lakehouse//RT is that governance remains centralized. Since the data never leaves the Lakehouse:</p><ul><li><p>Unity Catalog permissions stay intact</p></li><li><p>security policies are defined once</p></li><li><p>business logic isn&#8217;t duplicated</p></li><li><p>data lineage remains consistent</p></li></ul><p>Organizations no longer need to recreate governance rules inside a separate serving database. Governance is indeed the next big topic in the world of data and AI. Security breaches every work, Claude 100X Engineers releasing buggy code left and right.</p><p>Can&#8217;t be too careful these days.</p><div><hr></div><h3>How It Fits Into Databricks&#8217; Bigger Picture</h3><p>Lakehouse//RT makes even more sense when viewed alongside Databricks&#8217; other announcements this year.</p><ul><li><p><strong>Lakebase</strong> provides a PostgreSQL-compatible operational database.</p></li><li><p><strong>LTAP</strong> unifies transactional and analytical storage on a single copy of data.</p></li><li><p><strong>Lakehouse//RT</strong> provides millisecond analytical serving directly from that same data.</p></li></ul><p>Together, Databricks is attempting to collapse what has historically been three separate systems:</p><ul><li><p>OLTP databases</p></li><li><p>analytical warehouses</p></li><li><p>real-time serving databases</p></li></ul><p>into a single platform built around Delta Lake, Unity Catalog, and specialized execution engines.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Data Engineering Central is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h3>My Take on RT</h3><p>This feels like one of the most strategically important announcements from this year&#8217;s Data + AI Summit. The performance numbers are certainly impressive, but the bigger story is architectural simplification. </p><blockquote><p>For decades, data teams have accepted that customer-facing applications require a separate serving database. Lakehouse//RT challenges that assumption by making the lakehouse itself fast enough to serve those workloads. Will it catch? I don&#8217;t know. We will all find out in a year I guess.</p></blockquote><p>The remaining question is whether those benchmark results translate to the wide variety of real-world production environments that rely on ClickHouse, Pinot, Druid, Elasticsearch, and similar systems today. If they do, Lakehouse//RT could remove an entire category of infrastructure from many modern data platforms.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/review-of-databricks-data-ai-summit?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/p/review-of-databricks-data-ai-summit?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share"><span>Share</span></a></p><div><hr></div><h1>Lake Transactional/Analytical Processing Architecture</h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.databricks.com/company/newsroom/press-releases/databricks-launches-ltap-first-lake-transactionalanalytical" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!gqCA!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69085442-3d2a-49d5-8b20-dbba50ec99f1_1804x560.png 424w, /__u/substackcdn.com/image/fetch/$s_!gqCA!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69085442-3d2a-49d5-8b20-dbba50ec99f1_1804x560.png 848w, /__u/substackcdn.com/image/fetch/$s_!gqCA!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69085442-3d2a-49d5-8b20-dbba50ec99f1_1804x560.png 1272w, /__u/substackcdn.com/image/fetch/$s_!gqCA!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69085442-3d2a-49d5-8b20-dbba50ec99f1_1804x560.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!gqCA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69085442-3d2a-49d5-8b20-dbba50ec99f1_1804x560.png" width="1456" height="452" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/69085442-3d2a-49d5-8b20-dbba50ec99f1_1804x560.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:452,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:129315,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.databricks.com/company/newsroom/press-releases/databricks-launches-ltap-first-lake-transactionalanalytical&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/202658374?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69085442-3d2a-49d5-8b20-dbba50ec99f1_1804x560.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!gqCA!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69085442-3d2a-49d5-8b20-dbba50ec99f1_1804x560.png 424w, /__u/substackcdn.com/image/fetch/$s_!gqCA!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69085442-3d2a-49d5-8b20-dbba50ec99f1_1804x560.png 848w, /__u/substackcdn.com/image/fetch/$s_!gqCA!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69085442-3d2a-49d5-8b20-dbba50ec99f1_1804x560.png 1272w, /__u/substackcdn.com/image/fetch/$s_!gqCA!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69085442-3d2a-49d5-8b20-dbba50ec99f1_1804x560.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I&#8217;ve been waiting for this one since I was knee high to a grasshopper. Jezz, <a href="https://www.forbes.com/sites/victordey/2026/06/16/databricks-ceo-says-hes-cracked-a-40-year-old-database-problem-with-ltap/">even Forbes is writing about this one</a>, what the heck do they know about anything??</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://www.forbes.com/sites/victordey/2026/06/16/databricks-ceo-says-hes-cracked-a-40-year-old-database-problem-with-ltap/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!ks3m!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8561070f-4b61-40ef-a163-46fa1c56cde5_2240x552.png 424w, /__u/substackcdn.com/image/fetch/$s_!ks3m!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8561070f-4b61-40ef-a163-46fa1c56cde5_2240x552.png 848w, /__u/substackcdn.com/image/fetch/$s_!ks3m!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8561070f-4b61-40ef-a163-46fa1c56cde5_2240x552.png 1272w, /__u/substackcdn.com/image/fetch/$s_!ks3m!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_webp, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8561070f-4b61-40ef-a163-46fa1c56cde5_2240x552.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!ks3m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8561070f-4b61-40ef-a163-46fa1c56cde5_2240x552.png" width="1456" height="359" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8561070f-4b61-40ef-a163-46fa1c56cde5_2240x552.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:359,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:154815,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.forbes.com/sites/victordey/2026/06/16/databricks-ceo-says-hes-cracked-a-40-year-old-database-problem-with-ltap/&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dataengineeringcentral.substack.com/i/202658374?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8561070f-4b61-40ef-a163-46fa1c56cde5_2240x552.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!ks3m!, /__u/dataengineeringcentral.substack.com/w_424, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8561070f-4b61-40ef-a163-46fa1c56cde5_2240x552.png 424w, /__u/substackcdn.com/image/fetch/$s_!ks3m!, /__u/dataengineeringcentral.substack.com/w_848, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8561070f-4b61-40ef-a163-46fa1c56cde5_2240x552.png 848w, /__u/substackcdn.com/image/fetch/$s_!ks3m!, /__u/dataengineeringcentral.substack.com/w_1272, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8561070f-4b61-40ef-a163-46fa1c56cde5_2240x552.png 1272w, /__u/substackcdn.com/image/fetch/$s_!ks3m!, /__u/dataengineeringcentral.substack.com/w_1456, /__u/dataengineeringcentral.substack.com/c_limit, /__u/dataengineeringcentral.substack.com/f_auto, /__u/dataengineeringcentral.substack.com/q_auto:good, /__u/dataengineeringcentral.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8561070f-4b61-40ef-a163-46fa1c56cde5_2240x552.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>This is the one thing I wasn&#8217;t ready for, although it makes total sense. It was <strong><a href="https://www.databricks.com/company/newsroom/press-releases/databricks-launches-ltap-first-lake-transactionalanalytical">LTAP</a></strong><a href="https://www.databricks.com/company/newsroom/press-releases/databricks-launches-ltap-first-lake-transactionalanalytical">, short for </a><strong><a href="https://www.databricks.com/company/newsroom/press-releases/databricks-launches-ltap-first-lake-transactionalanalytical">Lake Transactional/Analytical Processing</a></strong>, and if you spend your days building data platforms instead of making keynote slides, this is the announcement that deserves your attention.</p><blockquote><p>The elevator pitch sounds almost suspiciously simple. Databricks wants operational databases and analytical workloads to operate on the <strong>same copy of data</strong>, eliminating CDC pipelines, ETL jobs, replicas, synchronization processes, and the collection of brittle plumbing that has somehow become accepted as &#8220;modern data architecture.&#8221; </p></blockquote><p>After reading both the press release and Ali Ghodsi&#8217;s interview explaining the thinking behind it, I don&#8217;t think this is really a story about ETL at all. It&#8217;s a story about removing a 40 year old architectural assumption that everyone stopped questioning years ago.</p><pre><code><code>Today's architecture

Application
     &#9474;
 PostgreSQL
     &#9474;
 CDC / ETL
     &#9474;
 Data Lake
     &#9474;
 Analytics</code></code></pre><p>For decades we&#8217;ve accepted that applications belong in one database while analytics belong somewhere else, usually connected together by a growing pile of Kafka topics, replication jobs, Airflow DAGs, managed CDC services, and a Slack channel dedicated entirely to asking why yesterday&#8217;s pipeline failed again. </p><blockquote><p><em>The industry has spent years trying to make this architecture less painful instead of asking whether the architecture itself is the problem.</em></p></blockquote><p>Databricks thinks it is.</p><p>The obvious <a href="https://en.wikipedia.org/wiki/Hybrid_transactional/analytical_processing">comparison is HTAP, which promised to unify transactional and analytical workloads years ago. The problem was that HTAP</a> largely tried to shove both workloads into the same engine, which meant eventually your dashboard and your checkout page were competing for the same resources. </p><p>Databricks is taking a different approach. Instead of building one engine that tries to do everything, they&#8217;re building <strong>one storage layer</strong> that multiple specialized engines can operate against. </p><div class="pullquote"><p>Lakebase handles PostgreSQL transactions, the Lakehouse handles analytics, Lakehouse//RT handles low latency serving, and they all operate on the same governed copy of Delta or Iceberg data.</p></div><pre><code><code>LTAP

          Delta / Iceberg
                &#9474;
   &#9484;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9532;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9488;
   &#9474;            &#9474;            &#9474;
Lakebase   Lakehouse   Lakehouse//RT
  OLTP        OLAP        Real Time</code></code></pre><p>That distinction is important because LTAP isn&#8217;t replacing PostgreSQL with Spark, and it isn&#8217;t asking Spark to become an operational database. It&#8217;s saying the engines can stay specialized while the storage becomes unified. That is a much bigger architectural shift than &#8220;we removed ETL.&#8221;</p><ul><li><p><em>The other piece that clicked for me came from Ghodsi&#8217;s explanation of why they&#8217;re doing this now. His argument is that the real pressure isn&#8217;t coming from human developers anymore. It&#8217;s coming from AI agents. Humans create applications relatively slowly. Agents don&#8217;t. </em></p></li></ul><p>They create databases, clone environments, test ideas, throw them away, and repeat the process constantly. Databricks claims roughly 80 percent of the databases on Lakebase are already being created by agents rather than people. </p><blockquote><p>Whether that number surprises you or makes you instinctively reach for a fact check, the direction is hard to argue with. Infrastructure built around dozens of data copies and endless synchronization simply doesn&#8217;t scale when your primary users become software instead of humans. </p></blockquote><p>The real takeaway here isn&#8217;t that Databricks found a clever way to remove another Airflow DAG. They&#8217;re trying to remove entire categories of infrastructure. No operational database replica feeding analytics. No warehouse copy that&#8217;s always fifteen minutes behind production. No &#8220;Zero ETL&#8221; marketing that quietly hides another synchronization service behind the curtain. </p><ul><li><p><em>One copy of the data, multiple engines reading and writing it, and governance living in one place.</em></p></li></ul><p>Will it work? That&#8217;s the billion dollar question, or perhaps the hundred billion dollar question given Databricks&#8217; valuation. Lakebase still has to prove it can be a production operational database at massive scale, and LTAP has to demonstrate that this elegant architecture survives contact with messy enterprise workloads. </p><p>But if Databricks pulls it off, we may eventually look back at maintaining separate OLTP and OLAP systems the same way we now look at nightly FTP jobs and hand-written shell scripts. Necessary once, painful always, and eventually replaced by something that made us wonder why we tolerated the old way for so long.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/review-of-databricks-data-ai-summit?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Data Engineering Central! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dataengineeringcentral.substack.com/p/review-of-databricks-data-ai-summit?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dataengineeringcentral.substack.com/p/review-of-databricks-data-ai-summit?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share"><span>Share</span></a></p></div><p></p>]]></content:encoded></item></channel></rss>