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
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 correct answers and explanations. Start a practice session to test yourself across all 624 questions.
1. A data engineering team configures a Kafka Connect sink connector to write data from Kafka topics to a database. The connector must transform nested JSON structures by flattening them before database insertion. The team also needs to route records from different topics to different database tables based on topic name. Which combination of transformations should they configure? (Select two!)
Multiple correct answersExplanation
The Flatten transformation recursively flattens nested structures into a flat map with configurable delimiters, which is essential for database schemas that do not support nested objects. RegexRouter applies regular expressions to modify the destination topic name, which in sink connectors controls the table name where data is written, enabling routing based on source topic patterns. InsertField adds metadata fields like topic, partition, or timestamp but does not enable routing logic. ValueToKey creates keys from value fields but does not flatten structures or route to different tables. TimestampConverter changes timestamp formats but does not address flattening or routing requirements. The combination of Flatten for structure transformation and RegexRouter for destination routing meets both requirements.
2. A producer experiences blocking when calling send() during peak traffic periods. Metrics show that buffer.memory=33554432 (32 MB) is exhausted. The producer is configured with max.block.ms=60000 and batch.size=16384. The application logs show TimeoutExceptions after 60 seconds. Which two changes would most effectively prevent blocking while maintaining reliability? (Select two!)
Multiple correct answersExplanation
Increasing buffer.memory provides more capacity for buffering records during traffic spikes, preventing exhaustion and blocking. Adding more producer instances distributes the workload across multiple buffers, reducing the load on each producer's buffer. Decreasing linger.ms may help clear buffers faster but could reduce batching efficiency and increase broker load. Increasing batch.size does not address buffer exhaustion as batches still consume buffer memory. Decreasing max.block.ms causes faster failures but does not prevent the underlying buffer exhaustion problem.
3. A developer implements a custom Partitioner class that routes all messages with keys starting with VIP to partition 0, while distributing other messages using the default murmur2 hash. The topic has 6 partitions. Which method must be implemented in the custom Partitioner? (Select one!)
Explanation
The Partitioner interface requires implementing the partition() method with the exact signature that includes topic, key, keyBytes, value, valueBytes, and cluster parameters. This method returns an integer representing the target partition number. The cluster parameter provides metadata about available partitions and brokers. The other method signatures are not part of the Kafka Partitioner interface. Custom partitioners allow fine-grained control over message distribution while maintaining compatibility with Kafka's producer API.
4. A Kafka Streams application needs to join a high-volume clickstream KStream with a small product catalog that changes infrequently. The product catalog has 5000 entries and is updated once per hour. The development team wants to avoid co-partitioning requirements. Which approach should they use? (Select one!)
Explanation
GlobalKTable replicates the entire dataset to every Kafka Streams instance, eliminating co-partitioning requirements and allowing joins on any key. This is ideal for small, slowly changing reference data like a product catalog. KStream-KTable joins require co-partitioning and do not eliminate the requirement. KTable-KTable joins also require co-partitioning and produce KTable output which may not suit clickstream processing. KStream-KStream joins require windowing and co-partitioning, adding unnecessary complexity.
5. A data pipeline uses Avro serialization with Schema Registry. The producer is configured with auto.register.schemas=true and sends records with a new schema version that adds a required field without a default value. The schema compatibility mode is set to BACKWARD. What happens when the producer attempts to register this schema? (Select one!)
Explanation
Schema Registry enforces compatibility rules regardless of the auto.register.schemas setting. BACKWARD compatibility requires that new schemas can read data written with old schemas, which means new schemas can only delete fields or add optional fields with default values. Adding a required field (without a default) violates BACKWARD compatibility because old data won't have values for this new required field. Schema Registry will reject the registration with a compatibility error, and the producer will receive an exception. The auto.register.schemas=true setting enables automatic registration but does not bypass compatibility checks. Incompatible schemas are rejected before registration, preventing the scenario where consumers fail. Schema Registry does not automatically modify schemas; it either accepts or rejects them based on compatibility rules.
One-time access to this exam