Skip to main content

Get started with Krabka

Try Krabka with your Kafka applications, or explore it in your browser. Choose a starting point below.

Local and CI validation

Run a local broker with the quickstart, then produce and consume your first records. Point your existing Kafka clients, kcat, or integration tests at localhost:9092, and repeat those checks in CI as your application changes.

Evaluate in depth

Preflight compatibility and parity check

Check your clients, Kafka APIs, schema registry workflow, and tooling limitations before a broader trial; Krabka serves no JMX and loads no JVM plugins. Use evidence for your intended release; results from another revision do not establish support for your build.

Check the support matrix

Check performance for your workload

Compare measured throughput, latency, and CPU use for workloads relevant to your application. Review the test conditions and limits; published results do not promise the same performance for your workload.

Explore the benchmarks

Non-disruptive staging evaluation

Evaluate representative traffic on an isolated Krabka cluster while production clients stay on Kafka. Use the migration guide to compare application behavior and results with dual writes, MirrorMaker 2 replication, or shadow consumers, and review their limitations, precautions, and consumer offsets before you plan a cutover.

Plan a staging evaluation

How Krabka is verified

Explore the evidence behind Krabka's correctness claims, including formal proofs, model checking, and testing. The verification overview explains what each approach covers and where its limits lie.

Explore verification

Wire-protocol verification

Complete the quickstart before you run an example. The examples use localhost:9092 and the quickstart-events topic. For Kubernetes, use the quickstart's in-cluster address. Test your application's features and security settings separately.

Standard Kafka Java client
// Maven dependency: org.apache.kafka:kafka-clients:4.3.1
// Produce a record with the standard Apache Kafka Java client.
import org.apache.kafka.clients.producer.*;
import java.util.Properties;

public class App {
    public static void main(String[] args) throws InterruptedException, java.util.concurrent.ExecutionException {
        Properties props = new Properties();
        props.put("bootstrap.servers", "localhost:9092");
        props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
        props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");

        Producer<String, String> producer = new KafkaProducer<>(props);
        producer.send(new ProducerRecord<>("quickstart-events", "user-1", "Hello Krabka from Java!")).get();
        System.out.println("Record delivered to quickstart-events.");
        producer.close();
    }
}

The CLI example prints hello krabka. To read other examples' records, omit --max-messages 1 from the consumer command. Press Ctrl+C to stop.

Run the JavaScript example as a project

Install Node.js with npm to run this project. Run these commands in a separate terminal after the quickstart.

mkdir krabka-javascript
cd krabka-javascript
curl -fsSL https://krabka.io/quickstart/javascript/package.json -o package.json
curl -fsSL https://krabka.io/quickstart/javascript/app.cjs -o app.cjs
npm install
npm start

Download the source ยท Download the package manifest