Bird
Raised Fist0
Kafkadevops~5 mins

Topic creation in Kafka - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Topic creation
O(n)
Understanding Time Complexity

When creating a topic in Kafka, it is important to understand how the time taken grows as the number of topics or partitions increases.

We want to know how the creation process scales when we add more topics or partitions.

Scenario Under Consideration

Analyze the time complexity of the following Kafka topic creation code snippet.


// Create a Kafka topic with a given number of partitions
AdminClient admin = AdminClient.create(props);
NewTopic newTopic = new NewTopic("my-topic", numPartitions, (short) replicationFactor);
admin.createTopics(Collections.singleton(newTopic)).all().get();
admin.close();
    

This code creates one topic with a specified number of partitions and replication factor.

Identify Repeating Operations

Look for operations that repeat or scale with input size.

  • Primary operation: Creating partitions inside the topic.
  • How many times: The number of partitions requested (numPartitions).
How Execution Grows With Input

As the number of partitions increases, the time to create the topic grows roughly in proportion.

Input Size (numPartitions)Approx. Operations
10About 10 partition creation steps
100About 100 partition creation steps
1000About 1000 partition creation steps

Pattern observation: The work grows linearly as the number of partitions increases.

Final Time Complexity

Time Complexity: O(n)

This means the time to create a topic grows in a straight line with the number of partitions.

Common Mistake

[X] Wrong: "Creating a topic always takes the same time, no matter how many partitions it has."

[OK] Correct: Each partition requires setup, so more partitions mean more work and more time.

Interview Connect

Understanding how topic creation time grows helps you design Kafka systems that scale well and avoid surprises in production.

Self-Check

"What if we create multiple topics at once instead of one? How would the time complexity change?"

Practice

(1/5)
1. What is the main purpose of a topic in Kafka?
easy
A. To compile Java programs
B. To store user login credentials
C. To manage database connections
D. To organize messages like folders organize files

Solution

  1. Step 1: Understand Kafka topic role

    A Kafka topic is a category or feed name to which messages are published.
  2. Step 2: Compare options with topic function

    Only To organize messages like folders organize files correctly describes topics as organizing messages like folders organize files.
  3. Final Answer:

    To organize messages like folders organize files -> Option D
  4. Quick Check:

    Topic = Organize messages [OK]
Hint: Topics group messages like folders group files [OK]
Common Mistakes:
  • Confusing topics with databases
  • Thinking topics store user data
  • Mixing topics with program compilation
2. Which command correctly creates a Kafka topic named orders with 3 partitions and replication factor 2?
easy
A. kafka-topics.sh --create --topic orders --partitions 3 --replication-factor 2 --bootstrap-server localhost:9092
B. kafka-create-topic orders 3 2
C. create-topic --name orders --partitions 3 --replicas 2
D. kafka-topics.sh --new --topic orders --partitions=3 --replicas=2

Solution

  1. Step 1: Identify correct Kafka topic creation syntax

    The official command uses kafka-topics.sh with --create, --topic, --partitions, --replication-factor, and --bootstrap-server options.
  2. Step 2: Match options with correct syntax

    kafka-topics.sh --create --topic orders --partitions 3 --replication-factor 2 --bootstrap-server localhost:9092 matches the correct syntax exactly; others use wrong commands or options.
  3. Final Answer:

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

    Correct syntax = kafka-topics.sh --create --topic orders --partitions 3 --replication-factor 2 --bootstrap-server localhost:9092 [OK]
Hint: Use kafka-topics.sh with --create and proper flags [OK]
Common Mistakes:
  • Using wrong command names
  • Missing --bootstrap-server option
  • Incorrect option names like --replicas
3. What will happen if you run this command?
kafka-topics.sh --create --topic sales --partitions 5 --replication-factor 1 --bootstrap-server localhost:9092
medium
A. Creates a topic named 'sales' with 1 partition and replication factor 5
B. Fails because replication factor cannot be 1
C. Creates a topic named 'sales' with 5 partitions and replication factor 1
D. Fails due to missing zookeeper connection

Solution

  1. Step 1: Analyze command parameters

    The command specifies topic 'sales', 5 partitions, replication factor 1, and bootstrap server.
  2. Step 2: Understand Kafka topic creation rules

    Replication factor 1 is valid (means no replicas), and partitions set to 5 means 5 partitions created.
  3. Final Answer:

    Creates a topic named 'sales' with 5 partitions and replication factor 1 -> Option C
  4. Quick Check:

    Partitions=5, Replication=1 [OK]
Hint: Replication factor 1 means no replicas, partitions as given [OK]
Common Mistakes:
  • Confusing partitions with replication factor
  • Assuming replication factor 1 is invalid
  • Expecting zookeeper connection with bootstrap-server
4. You tried to create a topic with this command:
kafka-topics.sh --create --topic logs --partitions two --replication-factor 3 --bootstrap-server localhost:9092

What is the error?
medium
A. Missing --create flag
B. Invalid number for partitions: 'two' should be a number
C. Replication factor cannot be 3
D. Bootstrap server address is incorrect

Solution

  1. Step 1: Check partitions parameter

    The partitions option expects a number, but 'two' is a word, causing a syntax error.
  2. Step 2: Verify other parameters

    Replication factor 3 and bootstrap server are valid; --create flag is present.
  3. Final Answer:

    Invalid number for partitions: 'two' should be a number -> Option B
  4. Quick Check:

    Partitions must be numeric [OK]
Hint: Partitions must be numeric, not words [OK]
Common Mistakes:
  • Using words instead of numbers for partitions
  • Assuming replication factor 3 is invalid
  • Forgetting --create flag
5. You want to create a Kafka topic for a critical system that must not lose messages and should handle high load. Which topic creation settings are best?
hard
A. Partitions: 10, Replication factor: 3
B. Partitions: 1, Replication factor: 1
C. Partitions: 5, Replication factor: 1
D. Partitions: 3, Replication factor: 2

Solution

  1. Step 1: Understand requirements for critical system

    High load needs many partitions for parallelism; no message loss needs high replication factor.
  2. Step 2: Evaluate options

    Partitions: 10, Replication factor: 3 has 10 partitions (high load) and replication factor 3 (high safety). Others have fewer partitions or lower replication.
  3. Final Answer:

    Partitions: 10, Replication factor: 3 -> Option A
  4. Quick Check:

    High load + safety = many partitions + high replication [OK]
Hint: More partitions + higher replication = speed + safety [OK]
Common Mistakes:
  • Choosing low replication for safety
  • Choosing few partitions for high load
  • Ignoring replication factor importance
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