Confluent · CCDAK
Validates proficiency in building applications with Apache Kafka, covering Kafka fundamentals, application development using producer and consumer APIs, Kafka Streams, Kafka Connect, testing, and observability.
Questions
624
Duration
90 minutes
Passing Score
70%
Difficulty
AssociateLast Updated
Feb 2026
Use this CCDAK practice exam to prepare for Confluent Certified Developer for Apache Kafka (CCDAK) with realistic questions, detailed explanations, and focused study modes. The practice bank includes 624 questions for Confluent CCDAK, so you can review the exam steadily instead of relying on one long cram session.
As you practice, pay extra attention to patterns in your missed answers. Start with short sessions to identify weak areas, then move into timed quizzes once your accuracy is consistent.
The explanations are especially useful when you want to connect exam wording to the responsibilities and scenarios described in the official certification guidance. Use the free preview first, then unlock the full question bank when you are ready to build a complete study routine.
The Confluent Certified Developer for Apache Kafka (CCDAK) is a vendor-issued certification from Confluent — the company founded by the original creators of Apache Kafka — that validates a developer's ability to build, deploy, and maintain production-grade applications on the Kafka platform. The exam covers the full spectrum of Kafka application development: core architecture, the Producer and Consumer APIs, Kafka Streams for real-time stream processing, Kafka Connect for data integration, Schema Registry with Avro serialization, and application testing and observability practices.
The certification is positioned at the associate level and reflects hands-on proficiency rather than surface-level familiarity. It tests knowledge of delivery semantics (at-most-once, at-least-once, and exactly-once), partition and offset management, serialization strategies, connector configuration, and stream processing topology design. The exam was last updated to align with the current Confluent Platform and covers both Apache Kafka open-source features and Confluent-specific components such as Confluent Schema Registry and ksqlDB basics.
The CCDAK is aimed at software developers, backend engineers, and solutions architects who work with Kafka-based event streaming systems in professional environments. Ideal candidates have 6–12 months of hands-on experience working with Apache Kafka or Confluent Platform and are comfortable reading and writing code in Java, Python, or through RESTful interfaces.
This certification is particularly relevant for engineers building real-time data pipelines, event-driven microservices, or stream processing applications at companies in finance, healthcare, technology, and media — industries where Kafka is commonly deployed at scale. It is also a strong credential for architects who design Kafka-based solutions and need to validate their technical depth to employers or clients.
Confluent does not enforce formal prerequisites for the CCDAK, but the exam assumes 6–12 months of practical experience with Apache Kafka or Confluent Platform. Candidates should be comfortable with core distributed systems concepts — topics, partitions, replication, brokers, and consumer groups — before attempting the exam.
Proficiency in at least one of Java, Python, or a RESTful API client is recommended, as the exam tests application-level knowledge of the Kafka client libraries. Familiarity with the Confluent Schema Registry, Avro serialization, and basic stream processing concepts will also be beneficial. No formal training course or prior Confluent certification is required.
The CCDAK consists of 55 multiple-choice and multiple-select questions delivered in a 90-minute timed session. The exam is fully remote and proctored online, and can be taken from any location worldwide that meets Confluent's internet connectivity, security, and privacy requirements; in-person testing center options are also available globally. The exam costs $150 USD and is valid for two years from the date of passing.
The passing threshold is 70%. Results are provided immediately upon completion. The exam does not include unscored pilot questions in its published format. There is no partial credit on multiple-select questions.
Earning the CCDAK signals verified, hands-on competence to employers in a market where Apache Kafka has become the de facto standard for real-time event streaming. Major technology companies — including Netflix, Uber, Spotify, LinkedIn, and thousands of financial services firms — operate Kafka at scale, creating sustained demand for certified Kafka developers. As of 2024, the average annual salary for Kafka developers in the United States is approximately $125,000, with senior roles and architects earning substantially more. In Europe, salaries range from roughly €57,500–€82,500 in Germany and £70,000–£80,000 in the UK.
The certification is issued by Confluent, the company founded by Kafka's original creators, which gives it strong industry credibility compared to third-party Kafka credentials. It differentiates candidates in hiring processes, supports salary negotiation, and can serve as a stepping stone toward the Confluent Certified Operator for Apache Kafka (CCOAK) or solutions architect roles leading event-driven architecture initiatives. The credential is valid for two years, requiring renewal to stay current with the evolving platform.
5 sample questions with answers and explanations. Start a practice session to test yourself across all 624 questions.
Preview — answers shown1. A producer application experiences message rejections with RecordTooLargeException. The messages are 1.5 MB each. Which configuration changes are required to send these messages successfully? (Select two!)
Multiple correct answersExplanation
Both the producer max.request.size and broker message.max.bytes configurations must be increased to send messages larger than 1 MB. The producer max.request.size (default 1 MB) controls the maximum size of a request the producer will send. The broker message.max.bytes (default 1 MB) controls the maximum size of messages the broker will accept. Both must be configured to at least 1.5 MB (1572864 bytes) for 1.5 MB messages. Consumer fetch.max.bytes should also be increased for consumers to read these messages, but it's not required for the producer to send successfully. Compression reduces size but doesn't eliminate the need for configuration changes. Buffer.memory affects total producer memory, not individual message size limits.
2. An application sends messages to Kafka with keys to ensure related events are processed in order. The producer is configured with default partitioning. The topic initially has 4 partitions, and the operations team increases it to 8 partitions. What impact does this have on message ordering? (Select one!)
Explanation
Increasing partition count changes the partitioning calculation for keyed messages. The default partitioner uses murmur2 hash: Utils.toPositive(Utils.murmur2(keyBytes)) % numPartitions. When numPartitions changes from 4 to 8, the modulo operation produces different results, causing messages with the same key to route to different partitions than before. This breaks ordering guarantees for those keys across the partition increase boundary. Existing messages already written to partitions remain in their original partitions and are not moved. Messages with the same key sent before and after the partition count change will likely go to different partitions, breaking ordering. The producer does not throw exceptions when partition counts increase, it simply recalculates partition assignments. This is why increasing partitions is a breaking change for keyed messages.
3. A financial application uses a consumer with enable.auto.commit=true and auto.commit.interval.ms=5000. The consumer polls records, processes them, and the processing takes 12 seconds per batch. After a consumer restart, the application processes many duplicate records. What explains this behavior? (Select one!)
Explanation
Auto-commit commits offsets during the poll call for records returned by the previous poll, not after processing completes. When enable.auto.commit is true, if auto.commit.interval.ms has elapsed, the next poll automatically commits offsets for all records returned by the last poll. If processing fails after the next poll but before those records are fully processed, the offsets are already committed, and a restart will skip those records. However, if the consumer crashes during processing before the next poll, offsets are not committed, causing reprocessing and duplicates. The 5-second interval being too low is incorrect because commits only occur during poll calls regardless of interval. Session timeout would cause rebalances but not duplicate processing patterns. Auto-commit does not commit asynchronously during processing, only during poll calls.
4. A consumer application processes messages slowly due to complex business logic. The application sometimes takes 6 minutes to process a batch of records between poll calls. The operations team observes frequent consumer group rebalances. Which configuration change will prevent rebalances while maintaining failure detection? (Select one!)
Explanation
The max.poll.interval.ms configuration controls the maximum delay between poll invocations. The default is 300000 milliseconds (5 minutes), which is exceeded by the 6-minute processing time. Increasing this value to 400000 (6.67 minutes) prevents the consumer from being considered failed during long processing periods. Increasing session.timeout.ms addresses heartbeat-related failures but not processing delays. Decreasing max.poll.records reduces batch size which may help indirectly but doesn't address the root timeout issue. Increasing heartbeat.interval.ms to 60 seconds would violate the requirement that it must be less than session.timeout.ms and could delay failure detection.
5. A consumer group with 6 consumers subscribes to topics orders and shipments, each with 8 partitions. The consumer group is configured with partition.assignment.strategy=org.apache.kafka.clients.consumer.RangeAssignor. How are partitions distributed? (Select one!)
Explanation
RangeAssignor operates per-topic independently. For each topic with 8 partitions and 6 consumers, the calculation is 8/6 = 1 partition per consumer with remainder 2. The first 2 consumers (lexicographically sorted) receive 2 partitions each, while the remaining 4 consumers receive 1 partition each. This pattern applies separately to orders topic and shipments topic. Consumers 1-2 get 2 partitions from orders plus 2 from shipments (4 total). Consumers 3-6 get 1 partition from orders plus 1 from shipments (2 total). RangeAssignor does not distribute evenly across all topics; it creates imbalance when partitions don't divide evenly. Round-robin distribution would require RoundRobinAssignor.
$17.99
One-time access to this exam