Bird
Raised Fist0
Kafkadevops~20 mins

Partition ordering guarantees in Kafka - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Kafka Partition Ordering Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
What is the output order of messages consumed from a single Kafka partition?

Consider a Kafka topic with one partition. A producer sends messages with keys 1, 2, 3 in that order. The consumer reads from this partition. What order will the consumer receive the messages?

Kafka
Producer sends messages: [1, 2, 3]
Consumer reads messages from partition 0
AMessages will be received in random order with duplicates
BMessages may be received in any order, e.g., 3, 1, 2
CMessages will be received in reverse order: 3, 2, 1
DMessages will be received in order: 1, 2, 3
Attempts:
2 left
💡 Hint

Think about how Kafka guarantees ordering within a partition.

❓ Predict Output
intermediate
2:00remaining
What happens to message order when consuming from multiple partitions?

A Kafka topic has 3 partitions. A producer sends messages with keys 1 to 6, distributed across partitions. The consumer reads from all partitions. What can be said about the order of messages received?

Kafka
Producer sends messages with keys 1 to 6 across 3 partitions
Consumer reads from all partitions
AMessages are ordered globally from 1 to 6
BMessages are ordered within each partition but not globally
CMessages are unordered even within partitions
DMessages are received in reverse order globally
Attempts:
2 left
💡 Hint

Recall Kafka's ordering guarantees across partitions.

🧠 Conceptual
advanced
2:00remaining
Why does Kafka guarantee ordering only within partitions?

Kafka guarantees message order within a partition but not across partitions. Why is this design chosen?

ATo allow parallelism and scalability by distributing load across partitions
BBecause Kafka cannot track message order globally
CTo reduce network traffic between brokers
DBecause partitions are stored on the same physical disk
Attempts:
2 left
💡 Hint

Think about how Kafka achieves high throughput and fault tolerance.

❓ Predict Output
advanced
2:00remaining
What error occurs if a consumer tries to read messages out of order from a partition?

A consumer manually tries to read offset 10 before offset 9 in a Kafka partition. What happens?

Kafka
Consumer seeks to offset 10 before reading offset 9
AConsumer receives duplicate messages
BConsumer automatically reads offset 9 first
CConsumer receives messages starting from offset 10, skipping offset 9
DConsumer receives an error or exception about invalid offset order
Attempts:
2 left
💡 Hint

Consider how Kafka consumers control offsets.

🧠 Conceptual
expert
3:00remaining
How can a Kafka producer ensure strict global ordering of messages?

Kafka guarantees ordering only within partitions. How can a producer ensure strict global ordering of messages sent to a topic?

AUse a single partition topic so all messages go to one partition
BUse multiple partitions with random keys to balance load
CSend messages asynchronously to multiple partitions
DUse a consumer to reorder messages after consumption
Attempts:
2 left
💡 Hint

Think about how partitioning affects ordering guarantees.

Practice

(1/5)
1. What does Kafka guarantee about message order when using partitions?
easy
A. Messages are ordered only within the same partition.
B. Messages are ordered across all partitions.
C. Messages are never ordered in Kafka.
D. Messages are ordered only if sent without keys.

Solution

  1. Step 1: Understand Kafka partition concept

    Kafka divides topics into partitions, and each partition stores messages in order.
  2. Step 2: Identify ordering guarantee scope

    Ordering is guaranteed only inside each partition, not across partitions.
  3. Final Answer:

    Messages are ordered only within the same partition. -> Option A
  4. Quick Check:

    Partition ordering = within partition only [OK]
Hint: Remember: order is per partition, not across partitions [OK]
Common Mistakes:
  • Thinking Kafka orders messages across all partitions
  • Assuming messages without keys are ordered
  • Believing Kafka never guarantees order
2. Which Kafka producer code snippet correctly ensures messages with the same key go to the same partition?
easy
A. producer.send(new ProducerRecord<>(topic, key, value));
B. producer.send(new ProducerRecord<>(topic, null, value));
C. producer.send(new ProducerRecord<>(topic, value));
D. producer.send(new ProducerRecord<>(key, topic, value));

Solution

  1. Step 1: Check ProducerRecord constructor usage

    The correct constructor to send with key is ProducerRecord(topic, key, value).
  2. Step 2: Identify correct parameter order

    producer.send(new ProducerRecord<>(topic, key, value)); uses (topic, key, value) correctly; others misuse parameters or omit key.
  3. Final Answer:

    producer.send(new ProducerRecord<>(topic, key, value)); -> Option A
  4. Quick Check:

    Key in ProducerRecord = (topic, key, value) [OK]
Hint: Use ProducerRecord(topic, key, value) to keep keys [OK]
Common Mistakes:
  • Omitting the key parameter
  • Swapping topic and key positions
  • Using null as key to preserve order
3. Given a Kafka topic with 3 partitions, what happens if you send messages with different keys in this code?
producer.send(new ProducerRecord<>("topic", "key1", "msg1"));
producer.send(new ProducerRecord<>("topic", "key2", "msg2"));
producer.send(new ProducerRecord<>("topic", "key1", "msg3"));

What is true about message order?
medium
A. All messages are ordered in the same partition.
B. "msg1" and "msg3" are ordered; "msg2" may be in a different partition.
C. "msg2" and "msg3" are ordered; "msg1" is unordered.
D. Messages are randomly ordered regardless of keys.

Solution

  1. Step 1: Identify partition assignment by key

    Messages with the same key ("key1") go to the same partition; "key2" goes to another partition.
  2. Step 2: Understand ordering within partitions

    "msg1" and "msg3" share "key1" so they keep order; "msg2" with "key2" is separate.
  3. Final Answer:

    "msg1" and "msg3" are ordered; "msg2" may be in a different partition. -> Option B
  4. Quick Check:

    Same key = same partition order [OK]
Hint: Same key means same partition and order [OK]
Common Mistakes:
  • Assuming all messages go to one partition
  • Thinking different keys keep order together
  • Believing order is global across partitions
4. You have this Kafka producer code snippet:
producer.send(new ProducerRecord<>("topic", null, "msg1"));
producer.send(new ProducerRecord<>("topic", null, "msg2"));

Why might message order not be preserved?
medium
A. Because the topic has only one partition.
B. Because Kafka always reorders messages regardless of keys.
C. Because messages with null keys can go to different partitions, losing order.
D. Because the producer is synchronous.

Solution

  1. Step 1: Analyze key usage in ProducerRecord

    Null keys mean Kafka uses round-robin or default partitioner, sending messages to different partitions.
  2. Step 2: Understand ordering impact

    Messages in different partitions have no ordering guarantee, so order may be lost.
  3. Final Answer:

    Because messages with null keys can go to different partitions, losing order. -> Option C
  4. Quick Check:

    Null key = no partition order guarantee [OK]
Hint: Null keys cause messages to spread partitions, breaking order [OK]
Common Mistakes:
  • Thinking Kafka always orders messages
  • Assuming one partition means no order loss
  • Confusing synchronous with ordering guarantee
5. You want to ensure strict message order for user events in Kafka. You have multiple users sending events simultaneously. Which approach best guarantees order per user?
hard
A. Send all messages without keys to a single partition topic.
B. Use multiple topics, one per user, to keep order.
C. Use random keys to balance load and rely on consumer ordering.
D. Use the user ID as the message key so all events for a user go to the same partition.

Solution

  1. Step 1: Identify how Kafka partitions messages

    Kafka uses the key to assign messages to partitions; same key means same partition.
  2. Step 2: Apply to user event ordering

    Using user ID as key ensures all events for that user go to one partition, preserving order.
  3. Step 3: Evaluate other options

    Sending without keys or random keys breaks order; multiple topics is complex and inefficient.
  4. Final Answer:

    Use the user ID as the message key so all events for a user go to the same partition. -> Option D
  5. Quick Check:

    User ID key = per-user order guaranteed [OK]
Hint: Key by user ID to keep their events ordered [OK]
Common Mistakes:
  • Sending messages without keys expecting order
  • Using random keys and expecting order
  • Creating many topics instead of using keys
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard