📖 Scenario: Imagine you work at a company that needs to handle lots of messages from different parts of the system, like orders, payments, and notifications. These messages must be sent quickly and reliably between different services.
🎯 Goal: You will learn why Kafka was created by setting up a simple example of message passing and understanding the problems Kafka solves.
📋 What You'll Learn
Create a topic to hold messages
Produce messages to the topic
Consume messages from the topic
Understand the need for a fast, reliable messaging system
💡 Why This Matters
🌍 Real World
Many companies use Kafka to handle real-time data streams like orders, logs, and user activity.
💼 Career
Understanding Kafka is important for roles in data engineering, backend development, and system architecture.
Progress0 / 4 steps
1
Create a Kafka topic called orders
Write the command to create a Kafka topic named orders with 1 partition and a replication factor of 1.
Kafka
Hint
Use the kafka-topics command with --create and specify the topic name, partitions, and replication factor.
2
Produce messages to the orders topic
Write the command to send the message Order123 to the Kafka topic orders using the console producer.
Kafka
Hint
Use kafka-console-producer with --topic orders and send the message Order123.
3
Consume messages from the orders topic
Write the command to read messages from the Kafka topic orders using the console consumer, starting from the beginning.
Kafka
Hint
Use kafka-console-consumer with --topic orders and --from-beginning to read all messages.
4
Display the consumed message to understand Kafka's purpose
Write a command or statement that shows the output message Order123 received from the orders topic.
Kafka
Hint
The consumer command will print the message Order123 to the console.
Practice
(1/5)
1. Why does Kafka exist in software systems?
easy
A. To help programs send and receive messages reliably and quickly
B. To replace databases for storing user profiles
C. To create user interfaces for web applications
D. To compile code faster
Solution
Step 1: Understand Kafka's main purpose
Kafka is designed to handle messaging between programs efficiently and reliably.
Step 2: Compare options with Kafka's role
The other options describe unrelated tasks like databases, UI, or compiling, which Kafka does not do.
Final Answer:
To help programs send and receive messages reliably and quickly -> Option A
Quick Check:
Kafka = Reliable fast messaging [OK]
Hint: Kafka is about messaging, not databases or UI [OK]
Common Mistakes:
Confusing Kafka with a database
Thinking Kafka builds user interfaces
Assuming Kafka compiles code
2. Which of the following is the correct way to describe Kafka's data storage?
easy
A. Kafka stores messages in tables like a database
B. Kafka stores messages in files on a user's desktop
C. Kafka stores messages only temporarily in memory
D. Kafka stores messages in topics for multiple programs to use
Solution
Step 1: Recall Kafka's storage method
Kafka organizes messages into topics, which multiple programs can read from or write to.
Step 2: Evaluate each option
Kafka stores messages in tables like a database is incorrect because Kafka does not use tables like a database. Kafka stores messages in files on a user's desktop is wrong because Kafka does not store messages on a user's desktop. Kafka stores messages only temporarily in memory is incorrect because Kafka stores messages durably, not just temporarily in memory.
Final Answer:
Kafka stores messages in topics for multiple programs to use -> Option D
Quick Check:
Kafka storage = Topics for sharing [OK]
Hint: Remember Kafka uses topics, not tables or temporary memory [OK]
Common Mistakes:
Thinking Kafka stores data like a traditional database
Assuming Kafka stores data only temporarily
Confusing Kafka storage location with local files
3. Consider this scenario: A program sends messages to a Kafka topic, and multiple other programs read from it. What is the main benefit of this setup?
medium
A. Messages are lost if one program fails
B. Multiple programs can read the same messages independently
C. Only one program can read messages at a time
D. Messages are deleted immediately after being read
Solution
Step 1: Understand Kafka's message consumption model
Kafka allows multiple programs to read the same messages independently from a topic.
Step 2: Analyze each option
Messages are lost if one program fails is false because Kafka ensures message durability. Only one program can read messages at a time is incorrect because Kafka supports multiple consumers reading simultaneously. Messages are deleted immediately after being read is wrong because Kafka retains messages for a configured time, not deleting immediately after reading.
Final Answer:
Multiple programs can read the same messages independently -> Option B
Quick Check:
Kafka supports multiple independent readers [OK]
Hint: Kafka lets many programs read same messages independently [OK]
Common Mistakes:
Believing messages disappear after one read
Thinking only one consumer can read at a time
Assuming message loss on failure
4. A developer wrote code to send messages to Kafka but notices messages are not received by consumers. What could be a likely error?
medium
A. Kafka does not support multiple consumers
B. Kafka deletes messages immediately after sending
C. The topic name used by producer and consumer do not match
D. Kafka requires messages to be sent as files
Solution
Step 1: Identify common communication errors in Kafka
If producer and consumer use different topic names, messages won't be received.
Step 2: Evaluate other options
Kafka does not support multiple consumers is false; Kafka supports multiple consumers. Kafka deletes messages immediately after sending is incorrect; Kafka retains messages for a set time. Kafka requires messages to be sent as files is wrong; Kafka messages are sent as data, not files.
Final Answer:
The topic name used by producer and consumer do not match -> Option C
Quick Check:
Matching topic names needed for communication [OK]
Hint: Check topic names match between sender and receiver [OK]
Common Mistakes:
Assuming Kafka deletes messages immediately
Thinking Kafka only supports one consumer
Believing messages must be files
5. You want to build a real-time system where many services process the same data stream independently and reliably. Why is Kafka a good choice?
hard
A. Kafka allows multiple consumers to read the same data without losing messages
B. Kafka stores data only temporarily, so it is fast but unreliable
C. Kafka requires all consumers to read messages in order and together
D. Kafka is designed only for batch processing, not real-time data
Solution
Step 1: Understand Kafka's support for real-time data and multiple consumers
Kafka stores messages durably and allows many consumers to read independently, making it reliable for real-time systems.
Step 2: Analyze incorrect options
Kafka stores data only temporarily, so it is fast but unreliable is false because Kafka stores data durably, not just temporarily. Kafka requires all consumers to read messages in order and together is incorrect; consumers can read independently and at different speeds. Kafka is designed only for batch processing, not real-time data is wrong; Kafka is designed for real-time streaming, not just batch.
Final Answer:
Kafka allows multiple consumers to read the same data without losing messages -> Option A