Bird
Raised Fist0
Kafkadevops~10 mins

Topic configuration in Kafka - Step-by-Step Execution

Choose your learning style10 modes available
Process Flow - Topic configuration
Create Topic Request
↓
Broker Receives Request
↓
Validate Configurations
↓
Apply Configurations
↓
Topic Created with Settings
↓
Topic Ready for Use
This flow shows how a Kafka topic is created with specific configurations, validated by the broker, and then made ready for use.
Execution Sample
Kafka
bin/kafka-topics.sh --create --topic my-topic --partitions 3 --replication-factor 2 --config cleanup.policy=compact
This command creates a Kafka topic named 'my-topic' with 3 partitions, replication factor 2, and a cleanup policy set to compact.
Process Table
StepActionConfiguration ParameterValueResult
1Receive create topic requesttopicmy-topicRequest accepted
2Validate partitionspartitions3Valid number of partitions
3Validate replication factorreplication-factor2Valid replication factor
4Apply topic configcleanup.policycompactConfig applied
5Create topic metadataN/AN/ATopic metadata created
6Topic creation completeN/AN/ATopic 'my-topic' ready for use
💡 Topic creation ends after all validations and configurations are successfully applied.
Status Tracker
VariableStartAfter Step 2After Step 3After Step 4Final
topicN/Amy-topicmy-topicmy-topicmy-topic
partitionsN/A3333
replication-factorN/AN/A222
cleanup.policydefault (delete)default (delete)default (delete)compactcompact
topic statusnot createdvalid partitionsvalid replicationconfig appliedready
Key Moments - 3 Insights
Why must the replication factor be less than or equal to the number of brokers?
Because each replica must be on a different broker, so replication factor cannot exceed available brokers. See execution_table step 3 where replication factor is validated.
What happens if an invalid configuration is provided?
The broker rejects the topic creation request during validation steps, stopping the process before topic creation. This is implied in execution_table steps 2 and 3 validations.
Why is the cleanup.policy configuration important?
It controls how Kafka manages old data in the topic. Setting it to 'compact' changes retention behavior, as shown in step 4 where the config is applied.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the value of 'partitions' after step 2?
Adefault
B2
C3
DN/A
💡 Hint
Check the 'partitions' column in the execution_table row for step 2.
At which step is the cleanup.policy configuration applied?
AStep 2
BStep 4
CStep 3
DStep 5
💡 Hint
Look for the row mentioning 'Apply topic config' in the execution_table.
If the replication factor was set to 5 but only 3 brokers exist, what would happen during execution?
AValidation would fail at step 3
BTopic would be created with replication factor 5
CCleanup policy would be ignored
DPartitions number would be adjusted automatically
💡 Hint
Refer to key_moments about replication factor validation and execution_table step 3.
Concept Snapshot
Kafka Topic Configuration:
- Create topic with partitions and replication factor
- Validate configs on broker
- Apply configs like cleanup.policy
- Topic ready after successful creation
- Invalid configs cause creation failure
Full Transcript
This visual execution shows how Kafka creates a topic with specific configurations. First, the create topic request is received with parameters like topic name, partitions, replication factor, and configs. The broker validates the number of partitions and replication factor to ensure they are valid. Then, it applies configurations such as cleanup.policy. After all validations and configurations are applied, the topic metadata is created and the topic becomes ready for use. If any validation fails, the topic creation stops. Variables like partitions and replication factor are tracked through each step to show their values. Key moments clarify why replication factor must be less than or equal to the number of brokers, what happens with invalid configs, and the importance of cleanup.policy. The quiz questions help reinforce understanding of the steps and values during topic creation.

Practice

(1/5)
1. What does the retention.ms configuration control in a Kafka topic?
easy
A. How long messages are kept before deletion
B. The number of partitions in the topic
C. The replication factor of the topic
D. The maximum message size allowed

Solution

  1. Step 1: Understand retention.ms meaning

    The retention.ms setting defines the time in milliseconds that Kafka retains messages before deleting them.
  2. Step 2: Compare with other options

    Other options like partitions, replication factor, and message size are controlled by different configurations.
  3. Final Answer:

    How long messages are kept before deletion -> Option A
  4. Quick Check:

    retention.ms = message retention time [OK]
Hint: Retention means how long messages stay before removal [OK]
Common Mistakes:
  • Confusing retention.ms with replication factor
  • Thinking retention.ms controls partition count
  • Assuming retention.ms limits message size
2. Which of the following is the correct syntax to create a Kafka topic with a replication factor of 3 using the command line?
easy
A. kafka-topics.sh --create --topic myTopic --replication-factor 3 --partitions 1 --bootstrap-server localhost:9092
B. kafka-topics.sh --create --topic myTopic --replication 3 --partitions 1 --bootstrap-server localhost:9092
C. kafka-topics.sh --create --topic myTopic --replica-factor 3 --partitions 1 --bootstrap-server localhost:9092
D. kafka-topics.sh --create --topic myTopic --replication-factor=3 --partitions 1 --bootstrap-server localhost:9092

Solution

  1. Step 1: Identify correct option name

    The correct option for replication factor is --replication-factor without equals sign.
  2. Step 2: Check syntax correctness

    kafka-topics.sh --create --topic myTopic --replication-factor 3 --partitions 1 --bootstrap-server localhost:9092 uses the correct syntax with spaces and proper option names; others have wrong option names or equals sign which is invalid here.
  3. Final Answer:

    kafka-topics.sh --create --topic myTopic --replication-factor 3 --partitions 1 --bootstrap-server localhost:9092 -> Option A
  4. Quick Check:

    Use --replication-factor with space, no equals [OK]
Hint: Use --replication-factor with space, no equals sign [OK]
Common Mistakes:
  • Using --replication instead of --replication-factor
  • Adding equals sign (=) after option name
  • Misspelling replication-factor option
3. Given the command:
kafka-topics.sh --alter --topic logs --config retention.ms=60000 --bootstrap-server localhost:9092
What will be the effect on the topic logs?
medium
A. Messages will be retained indefinitely
B. The topic's replication factor will be set to 60000
C. The topic will be deleted after 60000 messages
D. Messages will be retained for 1 minute before deletion

Solution

  1. Step 1: Understand the command's purpose

    The command alters the topic logs by setting retention.ms to 60000 milliseconds (1 minute).
  2. Step 2: Interpret retention.ms effect

    This means messages older than 1 minute will be deleted automatically.
  3. Final Answer:

    Messages will be retained for 1 minute before deletion -> Option D
  4. Quick Check:

    retention.ms=60000 means 1 minute retention [OK]
Hint: retention.ms value is in milliseconds for message lifetime [OK]
Common Mistakes:
  • Thinking retention.ms controls message count
  • Confusing retention.ms with replication factor
  • Assuming retention.ms disables deletion
4. You tried to set the cleanup policy of a Kafka topic with:
kafka-topics.sh --alter --topic data --config cleanup.policy=delete,compact --bootstrap-server localhost:9092
But it failed. What is the likely cause?
medium
A. The --alter command cannot change cleanup.policy
B. The cleanup.policy value is invalid; it must be either 'delete' or 'compact', not both
C. The topic name 'data' is reserved and cannot be altered
D. The bootstrap server address is incorrect

Solution

  1. Step 1: Check cleanup.policy valid values

    Kafka allows cleanup.policy to be either 'delete' or 'compact' or both separated by comma, but the syntax must be exact and supported by the Kafka version.
  2. Step 2: Identify common error

    Some Kafka versions or setups do not support combined policies or require no spaces; if the command failed, likely the value was invalid or syntax incorrect.
  3. Final Answer:

    The cleanup.policy value is invalid; it must be either 'delete' or 'compact', not both -> Option B
  4. Quick Check:

    cleanup.policy must be valid single or combined value [OK]
Hint: Check cleanup.policy values carefully; some setups disallow combined [OK]
Common Mistakes:
  • Using unsupported combined cleanup policies
  • Trying to alter topic with wrong bootstrap server
  • Assuming topic names cannot be altered
5. You want to create a Kafka topic named events with 4 partitions, replication factor 2, and a retention time of 2 hours. Which command correctly sets all these configurations?
hard
A. kafka-topics.sh --create --topic events --partitions 4 --replication-factor 2 --config retention.ms=120 --bootstrap-server localhost:9092
B. kafka-topics.sh --create --topic events --partitions 2 --replication-factor 4 --config retention.ms=7200000 --bootstrap-server localhost:9092
C. kafka-topics.sh --create --topic events --partitions 4 --replication-factor 2 --config retention.ms=7200000 --bootstrap-server localhost:9092
D. kafka-topics.sh --create --topic events --partitions 4 --replication-factor 2 --config retention.ms=7200 --bootstrap-server localhost:9092

Solution

  1. Step 1: Verify partitions and replication factor

    The topic requires 4 partitions and replication factor 2, so options with these exact values are correct.
  2. Step 2: Calculate retention.ms for 2 hours

    2 hours = 2 * 60 * 60 * 1000 = 7,200,000 milliseconds. Only kafka-topics.sh --create --topic events --partitions 4 --replication-factor 2 --config retention.ms=7200000 --bootstrap-server localhost:9092 uses this correct retention.ms value.
  3. Final Answer:

    kafka-topics.sh --create --topic events --partitions 4 --replication-factor 2 --config retention.ms=7200000 --bootstrap-server localhost:9092 -> Option C
  4. Quick Check:

    Retention in ms for 2 hours = 7200000 [OK]
Hint: Convert hours to ms: hours * 3600000 for retention.ms [OK]
Common Mistakes:
  • Mixing partitions and replication factor values
  • Using retention.ms in seconds or minutes instead of ms
  • Incorrect retention.ms calculation
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard