DataLane

All stacks · Streaming & CDC

Kafka

Event streaming, topics, Kafka Connect, and real-time pipelines.

Kafka cover
Illustrated overview of Kafka vs Amazon Kinesis: Control vs Less Ops
Kafka
12 min read

Kafka vs Amazon Kinesis: Control vs Less Ops

When to run Kafka (or MSK) versus Kinesis Data Streams: partitions vs shards, replay, multi-cloud, and the hidden cost of “managed.”

  • kafka
  • aws
  • streaming

Related reading

About Kafka

Kafka is the backbone of event-driven data platforms: a distributed, replayable log that decouples producers from consumers and makes real-time pipelines possible. It is also a system where defaults are rarely what production needs — acks, retention, partitioning, and consumer group behavior all reward understanding.

The guides here cover Kafka from a data engineer's seat: designing topics and keys, getting exactly-once guarantees where they exist (and not pretending they exist where they do not), running Kafka Connect for ingestion, and landing streams into warehouses and lakehouses without duplicates.

What you'll learn here

  • Topics, partitions, keys, and ordering guarantees you can actually rely on
  • Consumer groups, rebalancing, and offset management without lost or duplicate reads
  • Delivery semantics: at-least-once vs exactly-once, idempotent producers, transactions
  • Kafka Connect and Schema Registry for pipelines that survive schema change
  • Streams into Snowflake, Delta, and Iceberg with dedup patterns that hold up

Frequently asked questions

When do I actually need Kafka?

When multiple consumers need the same events, when you need replay, or when sub-minute latency matters. If one system just needs rows moved to a warehouse hourly, batch ingestion is simpler and cheaper. Kafka pays off as an architecture, not as a fancy queue.

How many partitions should a topic have?

Enough for your target consumer parallelism with headroom — partitions are the unit of parallelism, and you cannot reduce them later without pain. For most application topics, 6–12 is a sane start; very high-throughput topics go higher deliberately, not by default.

Does Kafka guarantee ordering?

Only within a partition. Messages with the same key land in the same partition and stay ordered; there is no global order across partitions. Design keys around the entity whose order matters — user_id, order_id — and this is enough.

Is exactly-once real?

Within the Kafka ecosystem, yes: idempotent producers plus transactions give exactly-once from producer through Kafka Streams. End-to-end into external systems, it becomes exactly-once processing with at-least-once delivery — your sink still needs idempotent writes or dedup.

Kafka or Kinesis?

Kinesis if you are all-in on AWS and want zero cluster operations at modest scale. Kafka for ecosystem breadth (Connect, Streams, exactly-once), multi-cloud portability, and high-throughput economics. Managed Kafka (MSK, Confluent) covers the middle ground.

New Kafka posts, straight to your inbox

One email a week with our latest tutorials. No spam.

Newsletter signup is not live yet. Use the contact form if you want to be notified.

↑↓ navigate openesc close