Hanzo Stream
A Kafka port in front of Hanzo PubSub
Stream speaks the Kafka binary protocol on 9092 and stores nothing itself. A produce becomes a message in a durable PubSub stream — topic orders, partition 0, is the stream kafka-orders-0 — and a fetch reads it back out. Your producers and consumers connect unchanged, and it runs inside your cluster, next to the store it fronts.
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.
Read https://hanzo.ai/skill.md and use Hanzo Stream in my project.
One line changes: the bootstrap server
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)20% to the author of the code that runs
Verify that you own a repository, and every org that deploys a project built from it pays you 20% of its metered spend, accrued each period.
Point the bootstrap server at it
The clients stay as they are. The cluster underneath them goes away.