Morty Taghdisi

Series

Kafka Mastery

A series about using Kafka in real JVM systems, with each article anchored on a concrete failure mode or design decision.

Reading order

  1. 01Choosing Between Kafka, RabbitMQ, and RESTChoosing between Kafka, RabbitMQ, and REST is a design decision, not a stack preference. This article gives a decision rule that holds up before a line of code is written.
  2. 02Building a Minimal Kafka System You Can Actually DebugThe smallest useful Kafka setup is a producer, a consumer, and a way to see what is happening. Local visibility tooling is part of the development environment, not an extra.
  3. 03From REST Calls to Event FlowsMoving an order flow from REST calls to Kafka events forces two things into the open: which business state is real, and the gap between a database commit and a Kafka publish.
  4. 04How Kafka Partitions Decide Order and DurabilityKafka's storage model is where ordering, throughput, and durability are all decided. Get the partition key wrong, or the replication settings wrong, and the failure modes have names worth recognizing.
  5. 05Consumer Groups, Lag, and Rebalancing in KafkaMost Kafka production incidents live on the consumer side. Consumer groups, lag as a reliability signal, and the cost of a stop-the-world rebalance are where the failure modes hide.
  6. 06Delivery Semantics and Idempotency in KafkaKafka transactions give exactly-once for Kafka-internal flows. They do not help with HTTP calls, payment APIs, or external databases. Idempotency is the design that does.