{ "@context": "https://schema.org", "@graph": [ { "@type": "WebSite", "@id": "https://www.ggorantala.dev/#website", "url": "https://www.ggorantala.dev/", "name": "Gopi Gorantala", "description": "Staff engineer building Kafka and Flink platforms for banking. Production failures traced to root cause." }, { "@type": "Person", "@id": "https://www.ggorantala.dev/#person", "name": "Gopi Gorantala", "url": "https://www.ggorantala.dev/", "jobTitle": "Staff Software Engineer", "worksFor": { "@type": "Organization", "name": "ING Bank" }, "sameAs": [ "https://x.com/ggorantala", "https://www.linkedin.com/in/ggorantala/", "https://github.com/ggorantala", "https://leetcode.com/ggorantala" ] } ] }
Skip to content

Foundations: Why Kafka & Event-Driven Thinking

9 Posts

Events as facts, not commands

Learn why Kafka events are immutable facts, not commands, and how that decouples services. Modeled on the passport lifecycle with Java 21 records.

The distributed commit log explained

Learn the single data structure — the append-only, partitioned commit log — that makes Apache Kafka fundamentally different from a queue or a database.

Getting Started With Apache Kafka

Apache Kafka is a distributed event streaming platform built for high-throughput, fault-tolerant, real-time data pipelines. In 60 seconds, learn the core mental model every Java developer needs before writing a single line of Kafka code.

The Problem Before Kafka

Learn why Apache Kafka was built to solve the N×N integration mess, and the problem Kafka was built to solve. Meet the Passport Lifecycle project we'll build all program long.

Getting Started With Real-Time Systems

Real-time data isn't "we'll know eventually" — it's knowing the instant something happens and acting on it. This lesson breaks down what real-time actually means, why Kafka exists, and how one event reaches many systems at once, in plain English.