// the find
LGouellec/streamiz
.NET Stream Processing Library for Apache Kafka 🚀
Streamiz is a .NET port of Kafka Streams, giving C# developers the same KStream/KTable DSL (joins, windowed aggregations, exactly-once) without needing a JVM sidecar. It's for teams already using Kafka who want stream processing logic to live in their .NET codebase instead of bolting on a Java service just for that.
The compatibility table in the README is refreshingly honest about what's missing rather than pretending parity - you know upfront that standby replicas and session/sliding windows aren't there. SerDes coverage is solid: Schema Registry support for Avro, Protobuf, and JSON as separate NuGet packages you only pull in if you need them. Observability is taken seriously - dedicated Prometheus and OpenTelemetry metrics packages, plus public SonarCloud badges for coverage and maintainability instead of just claiming quality. Remote state store backends (Azure, with GCP/AWS coming) is a feature Java Kafka Streams doesn't even have.
No interactive queries support, and it's marked 'no plan for now' - that's a real gap if you wanted to expose local state store contents over an API, which is one of the more common reasons people reach for Kafka Streams-style processing. No standby replicas means state has to rebuild from the changelog topic on every rebalance, so recovery time scales with state size. Session and sliding windows aren't supported, only hopping/tumbling, which rules out common use cases like variable-length user session aggregation. It wraps Confluent's Kafka client under the hood, so you inherit librdkafka's native dependency and its platform-specific quirks (musl/Alpine issues, ARM builds) rather than a pure managed implementation.