Felix is young. This is what works today, what's next, and where it fits.
Today 34Partial 13Planned 1
Status table
What works today, and what's next
Felix is pre-1.0, so the API can change between releases. The marks follow the status table in the docs, row for row.
Today implemented and testedPartial real, but incompletePlanned not built yet
Delivery
TodayPublish and subscribe with high fanout
TodayBatched publish and delivery
TodayBounded per-subscriber queues
TodaySlow-consumer isolation
TodayIdempotent producers
TodayConditional publish and commit
TodayPublisher identity on delivered events
TodayGap-free current state, then changes
PartialGraceful shutdownWriters inside a connection aren't told to wind down early
Clustering
TodaySharding
TodayQuorum acknowledgement
TodayLinearizable Quorum reads
TodayLeader failover
TodayPipelined publishes
TodayOnline rebalancing
TodayReplication factor restore
TodayZone-aware placement
TodayClients that survive a broker failure
TodayFleet-wide feature gate
PartialMulti-node clusteringThe control plane decides every failover
PartialConsistent backup pointOffsets are read one broker at a time, with no write pause
PartialRaft for cluster metadata
PartialCross-region routingBrokers don't check regions themselves
PlannedLoad-aware placement
Durable streams and state
TodayDurable streams
TodayResumable subscriptions
TodayBounded range reads
TodayRecord times and replay from a time
TodayKey/value cache with TTL
TodayCompare-and-set cache writes
TodayKeyed cache watch
TodayCounters
PartialConsumer groupsA group is bound to one shard
PartialLog-backed cacheThe key index is held whole in memory
PartialAtomic event and state commitsA re-sent commit may land twice
Access and operations
TodayQUIC, with TLS 1.3 always on
TodayTenants and namespaces
TodayToken-based authorization and revocation
TodayKafka consumers
TodayKafka Produce
TodayControl-plane metadata service
TodayPrometheus metrics and health endpoints
TodayKubernetes packaging
PartialPer-tenant quotasNo quotas on subscriptions, cache or storage yet
PartialTiered storageOffload only, nothing reads it back yet
PartialClients beyond RustPython and TypeScript ship; Go and C# are not started
PartialfelixctlState reads are not built yet
PartialOperator inspectionNo connection listing or offline record decoding yet
What's next
0.6 now
Moving shards between brokers without downtime, with each stream's leaders spread across them, and numbers for replicated streams on a three-broker cluster. Durable streams acknowledge a publish once it is written, and a new cluster turns on the fleet features its brokers support, publisher identity aside, without an operator step. Subscriber queues are held to a byte budget; QUIC receive windows and the cache key index are next.
0.7 next
Open in the 0.7 milestone: failover that doesn't wait on the control plane's lease, subscriptions that stop at an end offset, per-key checks on commits, reads from tiered storage, and Go and C# clients.
1.0 later
A stability promise, backed by a long-running public workload on Felix.
Felix is young. This is where it fits today, and where it doesn't yet.
Good fit
Live collaboration and fanout to many clients. A publish is encoded once however many subscribers it reaches, and a slow subscriber falls behind on its own. Browsers connect through felix-gateway.
Streams with state beside them. Caches with keyed watches, counters and consumer groups sit on the same log as the stream, behind one client and one set of grants.
Multi-tenant products. Every operation is scoped to a tenant and namespace, and tokens are narrowed to the actions and resources a tenant was granted.
Per-stream choices. Each stream picks in memory or durable, and Leader or Quorum acknowledgement, so one cluster can carry both throwaway and must-keep data.
Not yet
You need the Kafka ecosystem. Felix serves Kafka producers and consumers that assign their own partitions, but has no consumer groups or transactions over the Kafka protocol, so Kafka Connect, Kafka Streams and ksqlDB don't run.
You need proven scale. Published numbers come from one broker and from a three-broker cluster. Larger clusters and a long-running public workload are still to come.
You need Go or C#. Clients ship for Rust, Python and TypeScript. Go and C# are not started.
You need a 1.0 stability promise. Felix is pre-1.0, and its API, wire protocol and semantics can change between releases.