Prepare Smarter for the CCDAK Exam
Build your exam confidence with flexible preparation resources designed around the latest CCDAK exam objectives. Practice at your own pace using PDF questions, online exam simulations, or desktop practice software.
(Which configuration determines the maximum number of records a consumer can poll in a single call to poll()?)
Correct Answer: A
The Apache Kafka consumer configuration max.poll.records explicitly controls the maximum number of records returned in a single call to Consumer.poll(). This is clearly documented in the official Kafka consumer configuration reference. It allows developers to limit the size of the batch returned to the application, helping to control processing latency, memory usage, and CPU load.
This setting does not affect how much data the broker sends to the consumer; instead, it limits how many records the consumer returns to the application layer from the fetched data. This makes it especially useful for applications where processing each record is expensive and needs predictable batch sizes.
Option B (max.records.consumer) does not exist in Kafka. Option C (fetch.max.records) is also invalid; Kafka uses fetch.max.bytes and related byte-based configurations, not record-count limits, at the fetch level. Option D (max.poll.records.interval) is not a valid Kafka configuration; the correct related setting is max.poll.interval.ms, which controls liveness, not batch size.
Thus, max.poll.records is the correct and officially documented configuration.
You need to correctly join data from two Kafka topics.
Which two scenarios will allow for co-partitioning?
Correct Answer: A, B
For Kafka Streams to perform joins, topics must be co-partitioned, meaning:
They have the same number of partitions (A), and
They use the same partitioning strategy (typically by key) (B)
From Kafka Streams Documentation > Joins:
“Co-partitioning is required for Kafka Streams joins. Topics must have the same number of partitions and use the same key-based partitioner.”
Value schema (C) and retention time (D) have no bearing on join compatibility.
A stream processing application is tracking user activity in online shopping carts.
You want to identify periods of user inactivity.
Which type of Kafka Streams window should you use?
Correct Answer: D
Session windows are ideal for tracking periods of activity separated by inactivity, such as user sessions.
From Kafka Streams Documentation > Windowing:
“A session window captures streams of events that are intermittent and separated by a gap of inactivity.”
Tumbling/Hopping/Sliding windows are fixed in size
Session windows are dynamic and close after inactivity timeout
This makes them perfect for identifying gaps in user interaction.
You create a topic named loT-Data with 10 partitions and replication factor of three.
A producer sends 1 MB messages compressed with Gzip.
Which two statements are true in this scenario?
(Select two.)
Correct Answer: A, B
A: Kafka batches store compression metadata in their headers, indicating how the batch was compressed.
B: Compression is controlled via the producer config compression.type, which defaults to none. Producers explicitly set Gzip or other formats.
From Kafka Producer Docs:
“Compression is done by the producer, and the type is stored in the message batch metadata. The broker does not recompress.”
C is false: messages are serialized before compression.
D is false: messages without keys are distributed across multiple partitions.
You have a Kafka consumer in production actively reading from a critical topic.
You need to update the offset of your consumer to start reading from the beginning of the topic.
Which action should you take?
Correct Answer: D
To reset offsets for an existing consumer group, you must use the kafka-consumer-groups.sh tool with the --reset-offsets and --to-earliest flags.
From Kafka Consumer Group Tool Documentation:
“You can use the kafka-consumer-groups tool to reset offsets for a consumer group. This is required if the consumer has already committed offsets.”
Setting auto.offset.reset=earliest only works if no committed offset exists.
Starting a new consumer with the same group won’t reset offsets.
Retention settings don’t affect committed offsets.