Try Hanzo
Kafka Wire Protocol

Hanzo Stream

A Kafka port in front of Hanzo PubSub

Your clients, our store

Produce, Fetch, ListOffsets, Metadata, OffsetCommit, OffsetFetch, FindCoordinator, JoinGroup, SyncGroup, Heartbeat, CreateTopics and ApiVersions, at the versions modern clients negotiate. kafka-python, sarama, confluent-kafka and franz-go all connect.

Paste and ship

Paste this into any agent. It reads the skill manifest and calls Stream from there.

Agent prompt
Read https://hanzo.ai/skill.md and use Hanzo Stream in my project.
KafkaWire protocol
PubSubHolds the log
StatelessNo broker disk
DurableAt-least-once

One line changes: the bootstrap server

producer.py
import json
from kafka import KafkaProducer, KafkaConsumer

# The only line that changes
producer = KafkaProducer(
    bootstrap_servers=["stream.hanzo.ai:9092"],
    value_serializer=lambda v: json.dumps(v).encode(),
)

producer.send("events", {"type": "user.signup", "user_id": "usr_123"})

# Consumer groups work identically
consumer = KafkaConsumer(
    "events",
    bootstrap_servers=["stream.hanzo.ai:9092"],
    group_id="my-service",
    auto_offset_reset="earliest",
)

for message in consumer:
    process(message.value)

Point the bootstrap server at it

The clients stay as they are. The cluster underneath them goes away.

Get Stream

Event stream

License: Apache-2.0hanzoai/stream4 stars