Skip to main content
Source baselineNereuscommit c820391dc1de·verified 2026-08-07·authority reader-facing-summary

KoP versus Native Kafka

Nereus has two Kafka-facing directions. They are not interchangeable and should not be described as one execution path.

PathRequest routeProtocol authorityNereus integration boundary
KoPKafka client -> Kafka-on-Pulsar adapter -> Pulsar Broker/ManagedLedger -> NereusPulsar Topic, ownership, Position, subscription, and its protocol projectionManagedLedger facade and Pulsar cursor semantics
Native KafkaKafka client -> native Kafka Broker fork -> ReplicaManager/Partition/UnifiedLog -> Nereus Kafka adapterKRaft Topic/partition, leader, producer, transaction, group, and Fetch/Produce semanticsPartition log storage, binding, checkpoint, and Kafka state reconstruction

Why the distinction matters

KoP can inherit the Pulsar projection and the one-Entry/one-offset mapping. Native Kafka must preserve Kafka ranged RecordBatch entries, KRaft leadership, LEO/HW/LSO, transaction visibility, internal topics, and native recovery. A design that is correct for the ManagedLedger facade is not automatically correct for a Kafka Partition.

The shared Nereus core still owns protocol-neutral facts—stream head, commit intent, storage profile, generation index, physical target identity, and recovery contracts. Each adapter owns its protocol validation and final response assembly.

Current scope

The Native Kafka path is the active architecture described by the phase-9 contract. The KoP adapter is kept as a separate module boundary and is not a shortcut for Native Kafka compatibility claims. When documenting a feature, name the path explicitly and identify which authority owns the state.

Source anchors