Auto-commit is when Kafka automatically saves the position of the last message read (offset) at regular intervals without programmer intervention.
Click to reveal answer
beginner
What does manual commit mean in Kafka consumer?
Manual commit means the programmer explicitly tells Kafka when to save the offset after processing messages, giving more control over message handling.
Click to reveal answer
intermediate
Why might you prefer manual commit over auto-commit?
Manual commit is preferred when you want to ensure messages are fully processed before saving the offset, avoiding message loss or duplication.
Click to reveal answer
intermediate
What is a risk of using auto-commit in Kafka?
Auto-commit can cause message loss or duplication if the consumer crashes after committing but before processing messages fully.
Click to reveal answer
beginner
How does Kafka track which messages a consumer has read?
Kafka tracks this using offsets, which are numbers marking the position of the last message read in a topic partition.
Click to reveal answer
What does auto-commit do in Kafka consumers?
ARequires manual saving of offsets
BAutomatically saves the offset at intervals
CDeletes messages after reading
DSends messages to another topic
✗ Incorrect
Auto-commit automatically saves the offset at regular intervals without manual intervention.
Why use manual commit in Kafka?
ATo avoid using offsets
BTo speed up message consumption
CTo automatically delete messages
DTo control when offsets are saved after processing
✗ Incorrect
Manual commit lets you decide when to save offsets, ensuring messages are processed before committing.
What risk is associated with auto-commit?
AOffsets never saved
BSlower message processing
CMessage loss or duplication if crash happens after commit
DMessages get corrupted
✗ Incorrect
If a consumer crashes after auto-commit but before processing, messages may be lost or duplicated.
Which Kafka feature tracks the last read message?
AOffset
BPartition
CTopic
DBroker
✗ Incorrect
Offsets mark the position of the last message read in a partition.
If you want to ensure no message is lost, which commit method is better?
AManual commit
BAuto-commit
CNo commit
DRandom commit
✗ Incorrect
Manual commit allows you to commit offsets only after successful processing, reducing message loss.
Explain the difference between auto-commit and manual commit in Kafka consumers.
Think about who controls when the offset is saved.
You got /4 concepts.
Why might manual commit be safer than auto-commit when processing messages?
Consider what happens if the consumer crashes.
You got /3 concepts.
Practice
(1/5)
1. What is the main difference between auto-commit and manual commit in Kafka consumer offset management?
easy
A. Auto-commit requires manual calls to commit offsets, manual commit commits automatically.
B. Auto-commit disables offset tracking, manual commit enables it.
C. Auto-commit commits offsets automatically at intervals, manual commit requires explicit commit calls.
D. Auto-commit commits offsets only after consumer shutdown, manual commit commits continuously.
Solution
Step 1: Understand auto-commit behavior
Auto-commit commits offsets automatically at regular intervals without user intervention.
Step 2: Understand manual commit behavior
Manual commit requires the consumer to explicitly call commit() after processing messages.
Final Answer:
Auto-commit commits offsets automatically at intervals, manual commit requires explicit commit calls. -> Option C
What happens if commitSync() is called before processing the records?
medium
A. Offsets are committed before processing, risking message loss on failure.
B. Offsets are committed after processing, ensuring safe processing.
C. commitSync() throws an exception if called before processing.
D. Offsets are not committed at all.
Solution
Step 1: Understand commitSync timing
commitSync() commits the current offsets to Kafka immediately when called.
Step 2: Analyze calling commitSync before processing
If commitSync() is called before processing, offsets are saved before messages are handled, risking data loss if processing fails.
Final Answer:
Offsets are committed before processing, risking message loss on failure. -> Option A
Quick Check:
Commit before processing = risk of message loss [OK]
Hint: Commit offsets only after processing messages [OK]
Common Mistakes:
Assuming commitSync waits for processing
Thinking commitSync throws error if called early
Believing offsets commit automatically without call
4. You have disabled auto-commit and use manual commit in your Kafka consumer. You notice some offsets are not committed, causing message reprocessing. What is the likely cause?
medium
A. Kafka broker is down, so commits fail silently.
B. Auto-commit is enabled, causing conflicts.
C. You called commit() before processing messages.
D. You forgot to call commit() after processing messages.
Solution
Step 1: Check manual commit requirements
When auto-commit is disabled, the consumer must call commit() explicitly after processing.
Step 2: Identify cause of missing commits
If offsets are not committed, likely commit() was not called after processing, causing reprocessing.
Final Answer:
You forgot to call commit() after processing messages. -> Option D
Quick Check:
Manual commit needs explicit commit() call [OK]
Hint: Always call commit() after processing when auto-commit is off [OK]
Common Mistakes:
Assuming auto-commit still works when disabled
Blaming Kafka broker without checking code
Calling commit() before processing messages
5. You want to ensure exactly-once processing in a Kafka consumer application. Which commit strategy is safer and why?
hard
A. Auto-commit, because it commits offsets automatically without extra code.
B. Manual commit, because you commit offsets only after successful processing.
C. Auto-commit, because it commits offsets after processing each message.
D. Manual commit, because it commits offsets before processing messages.
Solution
Step 1: Understand exactly-once processing needs
Exactly-once means processing each message once and committing offset only after success.
Step 2: Compare commit strategies
Auto-commit commits offsets automatically at intervals, risking committing before processing completes. Manual commit lets you commit only after successful processing.
Final Answer:
Manual commit, because you commit offsets only after successful processing. -> Option B
Quick Check:
Exactly-once needs manual commit after success [OK]
Hint: Commit manually after success for exactly-once processing [OK]
Common Mistakes:
Assuming auto-commit guarantees exactly-once
Committing offsets before processing
Ignoring commit timing importance
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.