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 developer is writing a producer application that must send a 3 MB message to a Kafka topic. The broker is configured with message.max.bytes=1048576 (1 MB). What happens when the producer attempts to send this message? (Select one!)
Explanation
RecordTooLargeException is thrown when a message exceeds the broker's message.max.bytes limit. This is a non-retriable exception because retrying will not resolve the fundamental problem that the message is too large. The producer must either reduce the message size, split it at the application level, or coordinate with administrators to increase broker limits (message.max.bytes, replica.fetch.max.bytes, and consumer fetch.message.max.bytes). Kafka does not automatically split messages; the application must implement message splitting if needed. While compression reduces message size, a 3 MB message is unlikely to compress to under 1 MB, and the size check occurs after compression. Brokers enforce maximum message sizes and reject oversized messages; they do not split messages across segment files.
2. A topic is configured with min.insync.replicas=2, replication.factor=3, and unclean.leader.election.enable=false. A producer uses acks=1. One replica is in the ISR along with the leader. What is the behavior when the producer sends a message? (Select one!)
Explanation
The min.insync.replicas setting only applies when acks=all (or acks=-1). With acks=1, the producer only waits for the leader's acknowledgment and does not verify the ISR size. The message is accepted as soon as the leader writes it to its local log, regardless of whether min.insync.replicas is satisfied. This creates a potential data loss scenario: if the leader fails before followers replicate the message, and unclean.leader.election.enable=false prevents out-of-sync replicas from becoming leader, the topic becomes unavailable. For data durability, use acks=all which enforces min.insync.replicas. The acks setting and min.insync.replicas work together only when acks=all.
3. A Kafka Streams application joins two KStreams with a 5-minute time window. Messages arrive out of order due to network delays. The application uses grace period configuration to handle late-arriving messages. What is the purpose of the grace period? (Select one!)
Explanation
The grace period delays window closing to accept late-arriving messages that fall within the window time range but arrive after the window would normally close. This prevents premature window closure and allows complete results despite out-of-order delivery. The grace period does not extend the window size itself, only the time before the window is finalized. Kafka Streams does not reorder messages in a buffer. The window size, not grace period, defines the maximum time difference between joined messages.
4. A Kafka Streams application must count the number of orders per customer using a KTable. The source topic contains order events with customerId as the key. Multiple orders from the same customer arrive continuously. Which operation correctly implements this requirement? (Select one!)
Explanation
Converting the KTable to a KStream with toStream, then grouping and counting produces the correct running count of orders per customer. KTables represent changelog streams where each record is an update. Converting to KStream treats each changelog event as a discrete event to count. Simply calling count on a grouped KTable counts the number of unique keys, not the number of update events. Calling groupByKey().count() on a KStream is valid but the question specifies the source is used as a KTable, suggesting the data should be treated as updates. Using aggregate on a KStream counts events correctly but is more verbose than needed. The key insight is understanding when to use KTable versus KStream semantics and that toStream conversion allows treating updates as countable events.
5. A Kafka cluster has three brokers with broker IDs 0, 1, and 2. An administrator needs to dynamically increase log.cleaner.threads from 1 to 3 on broker 1 without restarting the broker. Which kafka-configs.sh command accomplishes this? (Select one!)
Explanation
The correct command uses --bootstrap-server with --entity-type brokers and --entity-name 1 to target the specific broker by its broker ID. Dynamic broker configurations in modern Kafka use the bootstrap server connection and entity-type brokers with the specific broker ID as entity-name. This allows changing configurations like log.cleaner.threads without broker restart. Using --entity-type cluster would apply the configuration cluster-wide as a default, not to a specific broker. Using --zookeeper is deprecated in modern Kafka versions; all configuration management now uses --bootstrap-server, especially in KRaft mode where ZooKeeper doesn't exist. Using --entity-default sets default configurations rather than targeting a specific broker instance.
$17.99
One-time access to this exam