Sebelum menyentuh Apache Kafka, kalian perlu menguasai konsep distributed systems, pub/sub messaging, dan serialisasi data. Di episode ini kalian juga menyiapkan JDK, Kafka binary, dan Docker, lalu memverifikasi bahwa seluruh environment siap digunakan.

Selamat datang di series Belajar Apache Kafka! Series ini akan membawa kalian menguasai Apache Kafka — distributed event streaming platform yang dipakai ribuan perusahaan untuk memproses data real-time — dari fondasi konsep sampai production readiness. Total ada 36 episode yang tersusun dari enam fase.
Kafka bukan sekadar message queue biasa. Dia adalah sistem terdistribusi yang menyimpan event dalam sebuah commit log yang dapat diputar ulang, dengan replikasi, partition, dan throughput tinggi. Karena kompleksitas inilah, ada beberapa skill dasar dan perangkat lunak yang wajib kalian miliki sebelum mulai.
Episode 0 ini adalah peta jalan kalian: kita akan memastikan skill dasar, menyiapkan JDK, mengunduh Apache Kafka, menyiapkan Docker, dan melakukan verifikasi pertama. Setelah episode ini selesai, seluruh series bisa diikuti dengan nyaman.
Kafka adalah sistem terdistribusi, jadi kalian harus paham konsep dasar seperti node, cluster, replikasi, konsistensi, dan toleransi kegagalan. Pahami juga networking dasar: TCP/IP, port, dan DNS, karena Kafka berkomunikasi antar broker dan dengan klien lewat protokol TCP.
Pahami pola publish/subscribe: ada producer yang mengirim pesan dan consumer yang menerima. Kenali istilah seperti queue, topic, dan event. Yang tidak kalah penting adalah serialisasi data — JSON, Avro, dan Protobuf — karena pesan Kafka hanyalah deretan byte yang harus disepakati formatnya oleh kedua sisi.
Kafka berjalan di atas JVM, jadi wajib nyaman dengan Java minimal versi 11. Biasakan juga dengan command line interface dan konsep async programming: pengiriman pesan di Kafka bersifat asinkron dan memakai callback, berbeda dengan pemanggilan fungsi sinkron pada umumnya.
java -versionOutput harus menampilkan versi 17 atau 11. Jika belum, install JDK LTS terlebih dahulu.
Apache Kafka membutuhkan JDK. Untuk series ini gunakan JDK 17 LTS:
sudo apt update
sudo apt install openjdk-17-jdk -ySetelah terinstall, verifikasi dengan java -version dan javac -version.
Unduh release terbaru dari situs resmi Apache, lalu ekstrak:
curl -O https://downloads.apache.org/kafka/3.7.1/kafka_2.13-3.7.1.tgz
tar -xzf kafka_2.13-3.7.1.tgz
mv kafka_2.13-3.7.1 ~/kafka
cd ~/kafkaKafka 3.7.1 adalah stable release yang mendukung KRaft mode tanpa ZooKeeper. Pastikan direktori ~/kafka/bin berisi tool CLI seperti kafka-topics.sh dan kafka-console-producer.sh.
Info
Selalu gunakan release stabil terbaru. Versi lama di bawah 3.x masih bergantung pada ZooKeeper, dan seluruh series ini memakai KRaft mode yang lebih sederhana.
Beberapa episode nanti akan menjalankan Kafka beserta ekosistemnya (Schema Registry, Kafka Connect, ksqlDB) secara containerized. Siapkan Docker sekarang:
docker --version
docker compose versionSiapkan juga kcat (dulu kafkacat) untuk testing cepat, Offset Explorer atau Conduktor sebagai GUI, serta SDK untuk bahasa yang kalian pilih: Java, Python (confluent-kafka), Go (sarama), atau Node.js (kafkajs). Untuk development, RAM minimal 4GB dengan rekomendasi 8GB, storage bebas 20GB, dan CPU quad-core.
Tambahkan direktori Kafka ke PATH agar perintah CLI mudah diakses:
export PATH="$HOME/kafka/bin:$PATH"
echo 'export PATH="$HOME/kafka/bin:$PATH"' >> ~/.bashrc
kafka-topics.sh --versionOutput 3.7.1 menandakan tool CLI sudah siap dipakai. Skrip kafka-topics.sh adalah gerbang utama mengelola topic, dan akan kita pakai hampir di setiap episode.
Verifikasi paling meyakinkan adalah menjalankan broker KRaft satu node. Kafka menyediakan konfigurasi awal untuk ini:
KAFKA_CLUSTER_ID="$(bin/kafka-storage.sh random-uuid)"
bin/kafka-storage.sh format --standalone -t $KAFKA_CLUSTER_ID -c config/kraft/reconfig-server.properties
bin/kafka-server-start.sh config/kraft/reconfig-server.propertiesJika broker berjalan tanpa error dan menampilkan log started (kafka.server.KafkaRaftServer), environment kalian sudah siap. Perintah kafka-storage.sh format membuat metadata log KRaft, dan kafka-server-start.sh menjalankan broker.
Tip
Simpan KAFKA_CLUSTER_ID karena ID ini diperlukan untuk semua broker dalam satu cluster. Di episode 3 kita akan membangun cluster multi-broker dengan skrip yang sama.
Rangkuman prasyarat yang sudah kalian siapkan di episode 0:
Jika ada yang belum terpenuhi, berhenti dulu dan lengkapi sebelum melanjutkan. Fondasi yang kuat akan membuat 35 episode berikutnya terasa jauh lebih ringan.
Di episode 0 ini kalian sudah menyiapkan pijakan untuk seluruh series: memahami skill dasar distributed systems dan pub/sub, menyiapkan JDK, mengunduh Kafka 3.7.1, mengkonfigurasi PATH, dan menjalankan broker KRaft pertama kali.
Inti yang harus dibawa pulang:
Di episode 1 selanjutnya kita akan membahas sejarah, latar belakang, dan mengapa membutuhkan event streaming — dari tantangan data pipeline LinkedIn, kelahiran Kafka pada 2011, hingga perbandingannya dengan RabbitMQ, Kinesis, dan Pulsar. Pastikan environment kalian sudah siap, karena perjalanan Belajar Apache Kafka baru saja dimulai!