WHERE, and no way to change a message once it is written, so the grid drops those affordances
instead of pretending to honor them. What replaces them is a start position: read the newest
hundred messages, or the oldest, or everything after an offset or a timestamp.
Quick setup
Click Create Connection…, select Kafka, enter one broker’s host and port, and connect. Any broker in the cluster works as the bootstrap: the rest are discovered from it. The driver speaks Kafka’s binary protocol directly and needs Kafka 0.11 or later, the release that introduced the record format every message has used since. The driver is not in the app. Picking in the Choose a Database sheet offers the download before the form opens, and opening a saved connection installs it without asking. Settings > Plugins > Browse > installs it up front. See Plugins.Connection settings
There is no Database field. A connection is one cluster, and the sidebar shows its topics directly.
Connection URL
Authentication
Leave Security Protocol onPLAINTEXT for a broker with no authentication, which is the usual
local Docker setup. Managed Kafka nearly always wants SASL_SSL.
Pick
SCRAM-SHA-512 when the cluster offers both. If the mechanism is wrong the broker names the
ones it accepts in the error.
Reading messages
Opening a topic shows its most recent hundred messages, newest last. Columns arepartition,
offset, timestamp, key, value, headers, key_size, and value_size.
Messages from different partitions are interleaved by timestamp. Kafka orders messages only within a
partition, so that ordering is a reading convenience and not a property of the log; partition and
offset together are what identify a message.
A key or value that is not valid UTF-8 is shown as hex. A null value is a tombstone and renders
empty but distinct from a zero-length message, which matters on a compacted topic.
KafkaQL
The query editor takes a small command language.FROM TIME takes an ISO 8601 instant or milliseconds since the epoch, and resolves to the first
message at or after it in each partition.
DESCRIBE GROUP is the lag report: committed offset, end offset, and the gap, per partition. A
partition the group has never committed shows an empty lag rather than a number counted from zero.
Producing a message
PARTITION, a keyed message is placed by the same hash Kafka’s own producer uses, so it
lands with the rest of that key’s messages. A message with no key goes to partition 0.
Compression
Messages are decompressed as they are read. gzip, snappy, lz4, and zstd all work, and no setting selects them: each batch declares its own codec and brokers hand back whatever the producer stored.SSL/TLS
Security Protocol decides whether the connection is encrypted, and the SSL mode decides how strictly the certificate is checked. Setting the protocol toSSL or SASL_SSL with no mode chosen
verifies the chain and the hostname. A private CA goes in the CA Certificate field; mutual TLS
also needs the client certificate and key.
Setting the protocol to PLAINTEXT or SASL_PLAINTEXT turns encryption off whatever the SSL mode
says, so a mode left over from an earlier edit cannot silently encrypt a plaintext listener.
Limitations
Editing a cell, deleting a row, and sorting a column are all unavailable, and the grid dims them rather than failing at save time. Kafka has no update primitive, no per-message delete, and no server-side sort. To change what a consumer sees, produce a new message. Paging jumps are unavailable. Page two continues from where page one stopped, so a topic being written to while you read it will not repeat or skip a message. Row counts are approximate. The count is the end offset minus the start offset, which overcounts where retention has removed messages from the middle of a compacted topic. Schema Registry is not read. A topic whose values are Avro or Protobuf shows the raw bytes, including the five-byte Confluent wire-format prefix. Creating and deleting topics, editing topic configuration, and resetting consumer group offsets are not available.Troubleshooting
Could not reach the Kafka cluster: the connection was refused
Nothing is listening on that address. Check the port:9092 is the usual plaintext listener and
9093 is often the controller, which does not answer client requests.
Could not reach the Kafka cluster: the TLS handshake failed
Security Protocol isSSL or SASL_SSL but the port is a plaintext listener. Brokers expose
one protocol per port, so use the port configured for TLS.

