Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

14 Okt 2026

Waktu: 08:00-12:00

Membaca buku untuk sebagai fundamental dasar Kafka

Dalam buku Kafka definitive Guide 2nd menjelaskan bahwa Kafka merupakan perangkat lunak yang dibangun karena ada masalah jalur distribusi potongan data. Sebelum mengenal kafka, secara konsep Kafka merupakan layanan publisher dan subscribe (pub/sub) yang mana yang mengatur jalur distribusi data. Misalnya aplikasi A mengirim ke aplikasi D, aplikasi B mengirim ke aplikasi D, aplikasi C mengirimkan ke aplikasi D dan E. Sepintas jalur ini masih mudah untuk digambarkan tetapi jika sudah memiliki banyak aplikasi misal berjumlah 100 layanan aplikasi , maka jalur distribusi datanya sudah untuk dilacak. Sehingga perangkat lunak publish/subscribe diperlukan untuk kasus ini.

Alih-alih mengirimkan jalur distribusi langsung ke aplikasi tujuan, Kafka memiliki fungsi untuk menjembatani distribusi setiap layanan aplikasi. Dari contoh sebelumnya, setelah menggunakan Kafka. Layanan aplikasi A, B, dan C dikirim ke Kafka. Lalu Kafka yang mengatur datanya dikirimkan ke layanan aplikasi D dan E.

Apache Kafka dibangun untuk mengatasi masalah ini. Kafka bisa disebut sebagai “distribusi log commit”. Sebuah sistem file yang tahan lama, memiliki retensi yang bisa dikonfigurasi sesuai kebutuhan, bahkan jika layanan aplikasinya sedang ofline jika tersimpan di kafka maka bisa diteruskan ke nodes lain. Dan banyak lagi fitur kafka.

Message dan Batch

Setiap pesan/message yang dikirimkan ke kafka yang mana berupa data array dari byte. Setiap pesan memiliki metadata yang di referensikan ke masing-masing key. Setiap pesan yang masuk ke Kafka, diteruskan ke topik dan partisi agar lebih optimal. Batch juga bisa dikatakan pesan yang dikirim secara bersamaan tetapi terurut.

Skema

Pesan di kafka yang sebenarnya tidak artinya di kafka memiliki struktur tambahan yand disebut skema. Skema ini tergantung dari developer aplikasinya. Dapat berupa file JSON atau XML.

Topic dan Partisi

Setiap pengiriman pesan, Kafka memiliki Topic untuk mengkategorikan setiap penyimpanan pesan. Penyimpanan ini juga dibagi lagi di setiap partisi. Partisi-partisi ini yang mengurutkan pesan dan mengatur distribusi data.

Producer dan Consumer

Produser sebagai pengirim pesan Kafka, sedangkan konsumer sebagai pembaca pesan dari Kafka. Kurang lebih ini yang saya pahami secara sederhananya. Produser akan mengirimkan pesan ke topik yang spesifik. Konsumer pada dasarnya berada di dalam kelompok konsumer (consumer group) yang bekerja bersamaan dengan konsumer lainnya.

Broker dan Cluster

Setiap server Kafka disebut sebagai Broker Message, lebih mudahnya disebut broker saja. Setiap broker menerima pesan dari producer, menandai pesannya dan disimpan ke dalam disk.

Setiap broker didesain sebagai bagian dari cluster. Setiap cluster ini bisa terdiri dari beberapa server broker. Cluster tidak hanya sebagai tempat broker saja, tetapi broker juga digunakan sebagai cadangan broker. Istilahnya sebagai replicate broker. Replicate ini bertujuan sebagai cadangan, jika broker utama mati listrik atau troble, maka replicate akan jalan sebagai broker utama.

Menariknya broker yaitu memiliki fitur retensi yang berdasarkan waktu dan jumlah ukuran disk maksimal yang sudah ditentukan. Misalnya maksimal 7 hari, maka data yang lama dihapus. Atau jika melebihi 5 GB maka data lama akan dihapus. Hal ini bertujuan untuk mengoptimalkan pemakaian disk.

Multiple cluster

Seiring berkembangnya broker, cluster juga bertambah banyak sehingga terdapat cluster-cluster yang sesuai kebutuhan. Misalnya untuk keamanan data jika terjadi bencana, isolasi keamanan dan ketidaksesuaian tipe data.

Banyak lagi fitur kafka yang belum saya dokumentasikan di sini.