Kafka Topic

Kafka Topics

Kafka Topics pada dasarnya adalah kumpulan data yang terus mengalir (stream of data). Data dalam Kafka Topics disebut data stream dan sifatnya tidak dapat diubah (immutable).
Setiap topik diidentifikasi berdasarkan namanya.
Kafka Topics mirip dengan tabel dalam database, tetapi tidak memiliki batasan (constraints). Topik Kafka dapat menyimpan berbagai jenis data dalam format yang berbeda-beda, termasuk data yang tidak terstruktur. Untuk mengambil data dari Kafka, kita tidak bisa melakukan pencarian (query) seperti dalam database, melainkan dengan menggunakan Kafka Producer yang akan mengirimkan data ke Kafka Consumer.
Data yang disimpan dalam sebuah topik memiliki batas waktu tertentu (biasanya satu minggu) sebelum akhirnya dihapus. Namun, waktu ini dapat diatur sesuai dengan kebutuhan.

Partitions

Kafka Topics akan dibagi menjadi beberapa bagian yang disebut partitions. Jumlah partitions bisa diatur sesuai dengan kebutuhan.
Setiap data yang disimpan dalam sebuah partisi memiliki sebuah ID incremental yang disebut Offset.
Data yang dikirim ke topik disimpan ke dalam partisi secara acak, kecuali jika datanya mengandung key. Jadi, jika sebuah key ada bersama data, maka data tersebut akan disimpan di dalam partisi yang sama untuk setiap pesan yang memiliki key yang sama.