Five connected streaming engineering domains
Kafka engineering is more than producing JSON to a topic. Partition keys define ordering and parallelism. Retention defines the replay window. Commit timing defines duplicate or loss risk. Schemas define whether old data remains readable. Processor state and sink behavior define recovery. Security, telemetry, multi-cluster replication, and cost decide whether the platform is operable.
Kafka records, topics, keys, and durable storage
Week 1Build the mental model of a replicated partitioned log. Connect every configuration to an application ordering, durability, replay, or cost requirement.
- Explain records, offsets, topics, partitions, leaders, followers, and in-sync replicas
- Use stable aggregate keys for required per-entity ordering
- Distinguish partition order from nonexistent topic-wide total order
- Choose partition counts from measured parallelism, throughput, skew, and operational cost
- Understand replication factor, acks, and minimum in-sync replicas as a trade-off
- Design time and size retention around replay and compliance needs
- Use compaction only for keyed latest-state use cases with tested tombstones
- Inventory internal, business, quarantine, replay, and processor-state topics
- Measure record size, compression, batch behavior, disk use, and network transfer
- Create a failure matrix for broker, controller, disk, network, and under-replicated state
Reliable producers, consumers, and delivery semantics
Weeks 2-3Make every retry and commit point explicit. Separate producer retry deduplication from business idempotency and Kafka-atomic transactions from external side effects.
- Configure durable acknowledgments, idempotence, retries, delivery timeout, batching, and compression
- Handle asynchronous callbacks and classify retriable, fatal, authorization, and serialization failures
- Understand group assignment, useful parallelism, coordinator state, heartbeats, and poll liveness
- Choose offset reset behavior for new, expired, and out-of-range positions
- Commit only completed work and handle revocation and shutdown safely
- Make external writes idempotent with stable event identity and atomic deduplication where possible
- Use Kafka transactions for consume-transform-produce workflows and downstream read_committed
- Document why transactions do not automatically cover databases, emails, or payment-like calls
- Bound retries, pause partitions, and apply backpressure without losing group ownership
- Inject timeouts, retries, crashes, rebalances, and destination outages at every commit boundary
Schemas and stateful stream processing
Weeks 4-5Treat a schema and partition key as durable contracts. Then build keyed state that can be recovered, upgraded, and rescaled without inventing stronger guarantees than the source and sink support.
- Choose Avro, Protobuf, or JSON Schema using current format-specific rules
- Define subject naming, ownership, versioning, and compatibility policy
- Test backward, forward, full, and transitive behavior with retained records
- Coordinate producer and consumer deployment order with the chosen compatibility mode
- Use Kafka Streams keys, repartition topics, state stores, changelogs, and processing guarantees deliberately
- Use Flink keyed state and understand key groups and rescaling
- Enable durable Flink checkpoints and measure checkpoint versus replay trade-offs
- Assign stable Flink operator UIDs before relying on savepoint restore
- Test state schema and topology evolution rather than assuming restore compatibility
- Validate late, out-of-order, duplicate, window, and terminal-state behavior against known truth
Security, observability, testing, and cost control
Weeks 6-7Operate streaming as a distributed application. Restrict every principal, correlate asynchronous work safely, detect stale processing, test quotas and overload, and attribute retained and replicated bytes.
- Use TLS with server verification and approved client authentication
- Grant distinct principals least-privilege topic, group, transactional-ID, schema, and admin access
- Test denied reads, writes, group use, schema changes, and administration
- Use quotas and bounded client configuration to contain noisy producers and consumers
- Observe broker requests, replication, controllers, storage, networks, and throttling
- Observe producer errors, retries, record rates, latency, and delivery outcomes
- Observe consumer assignments, rebalances, commits, lag, processing time, and event age
- Follow current OpenTelemetry messaging conventions and use links for batches and fan-out
- Exclude payloads, credentials, and unbounded business IDs from metrics and routine telemetry
- Attribute partitions, replicas, retention, compute, state, transfer, schemas, and telemetry costs
Replay, multi-cluster resilience, and disaster recovery
Week 8Turn retention into a controlled recovery capability. Preserve poison-record evidence, isolate backfills, measure asynchronous replication, fence writers, translate consumer positions, restore processor state, and reconcile every uncertain event.
- Classify transient and permanent failures before retry, stop, quarantine, or skip
- Preserve original topic, partition, offset, event ID, schema identity, and safe reason
- Use dedicated replay groups, rate limits, idempotent outputs, and suppressed irreversible effects
- Reconcile input, unique event IDs, quarantine, terminal state, and output before cutover
- Design explicit topic replication direction, allowlists, naming, loop prevention, and retention
- Measure replication lag, heartbeat freshness, checkpoint state, and consumer offset translation
- Set honest RPO and RTO targets and test broker, connector, schema, network, and processor failures
- Fence or freeze source writers before active-passive failover and failback
- Restore Flink state with stable UIDs and validate source and sink consistency
- Dispose topics, schemas, snapshots, credentials, telemetry, clusters, and retained lab data
PrepKloud Kafka streaming learning surfaces
Twenty-five original scenarios across architecture, clients, schemas, Flink, security, observability, replay, and recovery. Kafka streaming flashcards
Review ordering, offsets, idempotence, compatibility, state, lag, tracing, replay, DR, cost, and cleanup. Two substantial projects
Build a contract-first order platform and an observable active-passive multi-cluster recovery platform. Complete Kafka streaming guide
Read the architecture, correctness, security, testing, operations, replay, and portfolio strategy. Data, platform, and cloud jobs
Explore roles that use event streaming, distributed systems, data engineering, platform engineering, and SRE skills. Editorial policy
Review PrepKloud's source, independence, quality, and update approach.
Official sources
Start with design, APIs, topic and broker configuration, producer and consumer settings, Kafka Streams, security, monitoring, and geo-replication.
Open Apache Kafka docsVerify current defaults and constraints for acknowledgments, idempotence, transactions, polling, group protocol, commits, assignment, and reset behavior.
Producer configs · Consumer configsUse the authoritative format-specific guidance for schema evolution, compatibility, transitive checks, and client upgrade order.
Open schema evolution docsStudy keyed state, checkpoint barriers, durable checkpoint storage, savepoints, stable operator IDs, restore behavior, and ownership.
Stateful processing · SavepointsModel create, send, receive, process, settle, message creation context, batches, links, span kinds, and bounded messaging attributes.
Open messaging span conventionsGround TLS, authentication, authorization, MirrorMaker 2, cross-cluster flows, heartbeats, checkpoints, and offset sync behavior in official guidance.
Security · Geo-replicationFrequently asked questions
Is this Kafka streaming path a certification?
No. It is an independent practical engineering path with original scenarios and projects. It is not an exam, credential, passing-score program, or guarantee.
Do I need a managed Kafka service?
No. The projects can use disposable local or authorized sandbox clusters. Focus on portable architecture, contracts, failure behavior, evidence, security, recovery, cost, and cleanup.
When is exactly-once processing realistic?
Kafka transactions can atomically coordinate Kafka output and consumed offsets. Flink checkpoints can restore managed state consistently with rewindable sources. External databases, notifications, and other side effects still need compatible transactional or idempotent designs.
Why include both Kafka Streams and Apache Flink?
Kafka Streams is an embedded Kafka-native processing library with local state and internal topics. Flink is a distributed stateful processor with explicit checkpoint and savepoint operations. Learning both clarifies where state, deployment, and recovery responsibilities live.
What projects are included?
The first builds an event-driven order platform with schema contracts, stable keys, idempotent producers and consumers, state, security, telemetry, quarantine, and replay. The second builds active-passive clusters with MirrorMaker 2, offset-aware recovery, Flink restore, failover, failback, reconciliation, and teardown.
Learn streaming by testing the failure boundaries
Check design judgment, reinforce core concepts, and build systems that can retry, deduplicate, evolve, recover state, alert, replay, fail over, reconcile, and clean up.