<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Deniz | Blog</title><description>Notes on data engineering and distributed systems. From data warehouses to modern lakehouse architectures; writing about end-to-end data pipelines that carry source data into analytics and machine learning.</description><link>https://deniz-blog.vercel.app/</link><language>en</language><item><title>How Many Piano Tuners Are in Chicago? Fermi Problems and the Art of Estimation</title><link>https://deniz-blog.vercel.app/en/blog/fermi-problemleri/</link><guid isPermaLink="true">https://deniz-blog.vercel.app/en/blog/fermi-problemleri/</guid><description>How do you give a reasonable answer to an enormous question when you have no data, no measuring instrument, and no sources? Enrico Fermi was famous for doing exactly that. This post covers what Fermi problems are, walks step by step through the famous piano tuner question, explains why the method produces surprisingly accurate results, and why companies from Google to McKinsey still ask these questions in interviews — then applies the same method to a data engineering capacity estimate.</description><pubDate>Sun, 02 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Which Data Goes Where: Data Warehouse, Lakehouse, and the Real-Time Analytics Store</title><link>https://deniz-blog.vercel.app/en/blog/data-warehouse-lakehouse-realtime-store/</link><guid isPermaLink="true">https://deniz-blog.vercel.app/en/blog/data-warehouse-lakehouse-realtime-store/</guid><description>Analytical data has three classic homes: the clean, modeled Data Warehouse; the Lakehouse, which keeps raw files and open tables under one roof; and the real-time analytics store that answers queries over streaming events in under a second (ClickHouse, Druid, Pinot, Azure Data Explorer). This post answers &quot;which data goes where?&quot; through each store&apos;s identity, the decision signals, the traps that exams and architects love, and how all three flow together in the real world.</description><pubDate>Tue, 28 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Language &gt; Framework &gt; Library: A Correct but Incomplete Hierarchy</title><link>https://deniz-blog.vercel.app/en/blog/dil-framework-kutuphane-hiyerarsisi/</link><guid isPermaLink="true">https://deniz-blog.vercel.app/en/blog/dil-framework-kutuphane-hiyerarsisi/</guid><description>The familiar ordering is right on the scope axis, but it hides the line that actually separates a framework from a library: who holds control. Independent versus framework-bound libraries, when a library is enough and when a framework is worth it, how to diagnose a tool without asking anyone — and the unexpected place Spark, Airflow, Kafka, and dbt occupy in this picture.</description><pubDate>Wed, 15 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Why SQL Isn&apos;t Considered &quot;Flexible&quot; — and Why &quot;SQL or NoSQL&quot; Is the Wrong Question</title><link>https://deniz-blog.vercel.app/en/blog/sql-neden-nosql-kadar-esnek-degil/</link><guid isPermaLink="true">https://deniz-blog.vercel.app/en/blog/sql-neden-nosql-kadar-esnek-degil/</guid><description>If ALTER TABLE adds a column in seconds, why does SQL get called &quot;inflexible&quot;? Because flexibility means two different things: the micro-flexibility of adding a column, and the architectural flexibility of changing billions of rows without downtime, storing schemaless data, and scaling horizontally. This post argues that SQL&apos;s rigidity is not a flaw but a deliberate safety trade-off — and that the real-world answer is combining both in one project (polyglot persistence).</description><pubDate>Tue, 14 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Same SELECT, Entirely Different Engine: What Is a DataFrame, and Why PySpark?</title><link>https://deniz-blog.vercel.app/en/blog/dataframe-ve-sql-vs-pyspark-sql/</link><guid isPermaLink="true">https://deniz-blog.vercel.app/en/blog/dataframe-ve-sql-vs-pyspark-sql/</guid><description>The SELECT inside spark.sql(&quot;SELECT ...&quot;) is the very one you&apos;ve written in Oracle or PostgreSQL for years — so what does the PySpark around it actually do? From the DataFrame concept and the pandas–Spark divide, to why transformations aren&apos;t written in plain SQL, to the industry&apos;s SQL/PySpark balance; and most importantly, the distinction that keeps the syntax identical while completely changing the engine, where the data lives, and how it scales — built from classic-SQL reflexes.</description><pubDate>Sun, 12 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Why No Distributed System Can Be &quot;CA&quot;: From CAP to PACELC via the Stock Market, Instagram, and LoL</title><link>https://deniz-blog.vercel.app/en/blog/neden-hicbir-dagitik-sistem-ca-olamaz/</link><guid isPermaLink="true">https://deniz-blog.vercel.app/en/blog/neden-hicbir-dagitik-sistem-ca-olamaz/</guid><description>How do thousands of servers agree on the price of the same stock? Putting the stock market, Instagram, and online games side by side, we rebuild the CAP theorem, its blind spot, and its successor PACELC: why a partition forces you to sacrifice C or A, why the objection &quot;isn&apos;t the system CA when nothing is wrong?&quot; doesn&apos;t hold, why the speed of light makes a pure CA system physically impossible — and why an exchange won&apos;t even settle for a quorum.</description><pubDate>Sat, 11 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Where Does Big Data Begin? Three Misconceptions, One Real Criterion</title><link>https://deniz-blog.vercel.app/en/blog/bir-veri-ne-zaman-buyuk-veri-olur/</link><guid isPermaLink="true">https://deniz-blog.vercel.app/en/blog/bir-veri-ne-zaman-buyuk-veri-olur/</guid><description>Big data does not mean &quot;unstructured data,&quot; &quot;a large company&apos;s data,&quot; or &quot;a real-time system.&quot; So can structured data alone be big data? What separates the data an organization shows off from the data that actually flows behind the scenes? Does real-time require big data? This post takes apart three common misconceptions and rebuilds the one criterion that actually draws the line — the architectural difference between traditional tools and big data tools.</description><pubDate>Thu, 09 Jul 2026 00:00:00 GMT</pubDate></item><item><title>No One at the Center: How Open-Source Tools Recognize Each Other</title><link>https://deniz-blog.vercel.app/en/blog/acik-kaynak-ekosistemi-kim-yonetiyor/</link><guid isPermaLink="true">https://deniz-blog.vercel.app/en/blog/acik-kaynak-ekosistemi-kim-yonetiyor/</guid><description>Coming from the Oracle world, where everything lives under one roof, it&apos;s startling how open-source tools click together like lego bricks. How does PowerShell recognize git, what does pip install actually do, and which contract lets Airflow talk to Spark? And the real question: who governs any of this? A piece that builds up, step by step, how an order with no one at the center actually works.</description><pubDate>Mon, 06 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Understanding the Kafka Broker Through Oracle Eyes</title><link>https://deniz-blog.vercel.app/en/blog/kafka-broker-nedir/</link><guid isPermaLink="true">https://deniz-blog.vercel.app/en/blog/kafka-broker-nedir/</guid><description>The fourth post in the Kafka series: what does a broker actually do? Is a topic the counterpart of a table, is picking a controller mandatory, how does Raft consensus work, what does 5 brokers = 5 instances mean, and how do local ports become real servers in prod? The broker, built up from scratch for someone arriving from Oracle&apos;s client-server world.</description><pubDate>Sun, 05 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Where a Message Lands in Kafka: Partitions, Offsets, and Ordering Guarantees</title><link>https://deniz-blog.vercel.app/en/blog/kafka-partition-offset-siralama/</link><guid isPermaLink="true">https://deniz-blog.vercel.app/en/blog/kafka-partition-offset-siralama/</guid><description>The second post in the Kafka series: the hash mechanism that decides which partition a message lands on, why the partition count must be right from day one, the hot key risk, what an offset actually does and does not guarantee, and retention — why Kafka is a distributed commit log, not a queue.</description><pubDate>Fri, 03 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Which Partition Does a Message Land In? Kafka Partitioner Strategies</title><link>https://deniz-blog.vercel.app/en/blog/kafka-partitioner-cesitleri/</link><guid isPermaLink="true">https://deniz-blog.vercel.app/en/blog/kafka-partitioner-cesitleri/</guid><description>The third post in the Kafka series: the partitioner that decides which partition each message lands in. Hash-based, round-robin, sticky and custom strategies; what each choice costs you in ordering guarantees, and how often each one actually shows up in production.</description><pubDate>Fri, 03 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Anatomy of a Kafka Cluster: Brokers, Partitions, and Replication</title><link>https://deniz-blog.vercel.app/en/blog/kafka-cluster-mimarisi/</link><guid isPermaLink="true">https://deniz-blog.vercel.app/en/blog/kafka-cluster-mimarisi/</guid><description>The inner workings of Kafka through a three-broker cluster: how data spreads across brokers, what leaders and replicas do, what changed when KRaft took over metadata from ZooKeeper, and how CDC tools capture changes at the source. (Kafka series — part 1)</description><pubDate>Thu, 02 Jul 2026 00:00:00 GMT</pubDate></item></channel></rss>