Apache Kafka has spent more than a decade proving that append-only logs are a strong foundation for real-time data infrastructure. The pressure point shows up when those logs move into the cloud. Broker-local disks, replica traffic across Availability Zones (AZs), partition rebalancing, and capacity planning all become more expensive as throughput and retention grow.
That is why "diskless Kafka" has become a serious architectural direction. In this context, diskless does not mean there are literally no disks anywhere. It means broker-local disks are no longer the primary durable storage for user data. Durable data moves to object storage or lakehouse storage, while brokers become easier to replace, scale, and rebalance.
The category is still young, and the projects inside it are not all trying to solve the same problem. Some preserve Kafka's codebase and replace the storage layer. Some implement the Kafka protocol from scratch. Some are not open source yet but matter because they show where the market is moving. The right question is not "which one is best?" but "which trade-off matches your workload?"
The Contenders
The table below separates current open-source projects from emerging options. Stars and availability were checked on April 28, 2026; these numbers can change quickly.
| Project | Public code | GitHub stars | Language | License | Status |
|---|---|---|---|---|---|
| AutoMQ | Yes | ~9,700 | Java | Apache 2.0 | Open source, production deployments published |
| Inkless (Aiven) | Yes | ~90 | Java | Source license requires review | Early public implementation of diskless topics |
| Tansu | Yes | ~1,750 | Rust | Apache 2.0 | Kafka-compatible broker with pluggable storage |
| Ursa (StreamNative) | Not yet | N/A | Java | TBD | Managed/lakehouse-native option, open source not available as of April 28, 2026 |
WarpStream is not included in the main comparison because it is proprietary and is now part of Confluent. Ursa is included as an emerging reference point, not as an open-source project available for code-level evaluation.
What "Diskless" Changes
Traditional Kafka was designed around broker-local persistent storage. Each partition has replicas, each replica lives on broker-attached storage, and replication keeps those copies in sync. That model is reliable, but in the cloud it creates three recurring costs: block storage, inter-AZ replication traffic, and operational effort whenever data has to move with brokers.
Diskless designs change the unit of durability. Instead of making the broker disk the durable home of the log, they use an external storage system:
- Object storage, such as S3-compatible storage, Google Cloud Storage, Azure Blob Storage, or OCI Object Storage.
- Database-backed storage, such as PostgreSQL or SQLite, for smaller or specialized deployments.
- Lakehouse storage, such as Apache Iceberg or Delta Lake, when the goal is to make streams queryable as tables.
This shift is not free. Object storage has different latency, consistency, request-cost, and batching characteristics than local disk. A good diskless Kafka architecture therefore has to answer two questions at once: how to preserve Kafka semantics, and how to hide or manage the storage-system trade-offs underneath.
Architecture Comparison
The projects take different paths because they optimize for different starting points.
| Dimension | AutoMQ | Inkless | Tansu | Ursa |
|---|---|---|---|---|
| Starting point | Apache Kafka fork | Apache Kafka extension/fork work around KIP-1150 | Kafka-compatible broker written in Rust | Kafka/Pulsar service with lakehouse-native storage |
| Storage direction | S3-compatible object storage plus WAL options | Diskless topics backed by object storage and coordinator metadata | PostgreSQL, SQLite/libSQL, S3, or memory | Iceberg/Delta-oriented lakehouse storage |
| Kafka semantics goal | Preserve Kafka computation layer and feature compatibility | Bring diskless topics into the Apache Kafka direction through KIPs | Implement a Kafka-compatible API for lighter deployments | Provide Kafka protocol access to a lakehouse-native engine |
| Operational model | Kafka-compatible cluster with stateless brokers | Aiven-managed service as of April 2026; upstream direction still evolving | Single statically linked binary | Primarily managed service as of April 2026 |
| Best fit | Kafka migration with low application-change risk | Teams aligned with Aiven and upstream Kafka diskless direction | Greenfield or lightweight Kafka-compatible use cases | Lakehouse-first streaming use cases |
The most important difference is not whether each project uses object storage. It is where Kafka compatibility lives. AutoMQ keeps Kafka's computation layer and replaces the storage layer. Inkless works from the Apache Kafka codebase direction through diskless topics. Tansu implements the Kafka API in a separate Rust broker. Ursa approaches the problem from a lakehouse-native streaming engine and exposes Kafka compatibility as part of that service.
AutoMQ: Kafka Codebase, Shared Storage Architecture
AutoMQ takes the conservative path for application compatibility: it is based on Apache Kafka and replaces the storage layer with a Shared Storage architecture. Brokers remain Kafka-compatible from the client perspective, while user data is persisted to S3-compatible object storage. This is why AutoMQ is a strong fit when an organization wants diskless architecture without rewriting producers, consumers, Kafka Streams applications, or Kafka Connect pipelines.
The core architectural idea is straightforward. Brokers should own compute, request processing, and Kafka protocol behavior, but durable data should live outside the broker lifecycle. When a broker is replaced or scaled out, the system should not need to copy large amounts of partition data between broker disks. That is the difference between scaling compute and migrating storage.
AutoMQ also has a practical latency problem to solve. Writing directly to object storage can be cost-effective, but it is not the same as writing to local disk. AutoMQ addresses this with WAL (Write-Ahead Log) designs such as S3 WAL for AutoMQ Open Source and lower-latency WAL options in AutoMQ commercial editions. The specific WAL choice matters because it changes the latency, durability, and cost profile of the deployment.
Where AutoMQ is strongest:
- It preserves Kafka feature compatibility by reusing the Kafka computation layer.
- It targets migrations where existing Kafka clients, operational tooling, and application semantics matter.
- Its cost benchmark is public and includes workload details for a 1 GiB/s write-throughput scenario.
- It has public customer stories and public deployment references, including Grab and JD.com.
- It uses the Apache 2.0 license for AutoMQ Open Source.
Where to look carefully:
- AutoMQ is company-led, not an Apache Software Foundation project.
- The WAL choice affects latency and cloud dependency. S3 WAL is simplest; lower-latency options need more infrastructure planning.
- Teams that require upstream Apache Kafka governance may prefer to track KIP-1150 and its follow-up KIPs.
Inkless: The Apache Kafka Diskless Topics Direction
Inkless is Aiven's work around diskless topics for Apache Kafka. The most important signal is KIP-1150, which is marked Accepted in the Apache Kafka wiki. That matters because it shows community agreement on the need for a diskless topic model in Kafka.
It is important to read that status precisely. KIP-1150 acceptance does not mean diskless topics are already a complete upstream Kafka feature. The KIP page states that acceptance establishes the need and end-user requirements, while implementation details are expected to come through follow-up KIPs such as KIP-1163 and KIP-1164. For teams planning production architecture, that distinction is not academic. Accepted direction and production-ready upstream implementation are different milestones.
Inkless uses diskless topics that store retained data in object storage, with metadata handled through additional components. Aiven's documentation positions Inkless for cloud deployments where teams want storage scaling without managing broker disk capacity. It also states that migration from an existing Classic Kafka service to Inkless is not supported at this time; the cluster type is fixed at service creation.
Where Inkless is strongest:
- It is aligned with the Apache Kafka diskless topics proposal.
- It supports a mixed conceptual model of classic and diskless topics.
- It is backed by Aiven, which gives it a managed-service path.
- It is useful to watch if upstream Kafka convergence matters to your roadmap.
Where to look carefully:
- Diskless topics still have unsupported or untested features. The Inkless feature document lists limitations around compaction, transactions, read-committed consumers, and mixed classic/diskless behavior.
- The public repository is still small compared with mature Kafka ecosystem projects.
- The license posture should be reviewed by legal/compliance teams before treating it as equivalent to Apache 2.0 open source.
Tansu: A Rust Broker With Pluggable Storage
Tansu takes a different route. It is not a Kafka fork. It is a Kafka-compatible broker written in Rust with pluggable storage backends, including PostgreSQL, libSQL/SQLite, S3, and memory. That makes it interesting for teams that want Kafka API compatibility but do not necessarily need the full operational and feature surface of Apache Kafka.
This is a meaningful distinction. A ground-up implementation can be easier to deploy and reason about for smaller systems, but it also has to reimplement a large and subtle surface area. Kafka compatibility goes beyond Produce and Fetch. It includes transactions, consumer group behavior, offset management, compaction, security, operational tooling, and edge cases that many production systems rely on.
Tansu's strongest differentiator is its storage flexibility and lakehouse integration direction. Its README describes schema-backed topics that can be written as Apache Iceberg or Delta Lake tables. That makes it especially relevant for greenfield applications where Kafka protocol compatibility is useful, but the team also wants table output without a separate connector-heavy pipeline.
Where Tansu is strongest:
- It is Apache 2.0 licensed.
- It has a small operational footprint and a single-binary deployment model.
- It supports multiple storage engines, which is useful for experimentation and constrained environments.
- It has a clear lakehouse integration story for schema-backed topics.
Where to look carefully:
- It should not be treated as a drop-in replacement for a large, feature-rich Apache Kafka deployment without testing the exact APIs and semantics your applications use.
- Its production maturity and ecosystem depth are still different from Kafka-derived systems.
- The right use case is more likely greenfield or lightweight streaming than a high-throughput Kafka estate migration.
Ursa: Lakehouse-Native, But Not Yet Open Source
Ursa is worth tracking because it represents a different center of gravity: not "Kafka with less disk," but "streaming as part of the lakehouse." StreamNative positions Ursa as a lakehouse-native streaming engine for Kafka and Pulsar workloads, with Apache Iceberg and Delta Lake as first-class destinations.
That is a compelling direction for analytics-heavy organizations. If every topic is also a table, the boundary between streaming and lakehouse processing becomes thinner. The trade-off is that this is not the same evaluation category as an open-source Kafka replacement. As of April 28, 2026, Ursa does not have a public GitHub repository for users to inspect, fork, or self-host as an open-source project.
Where Ursa is strongest:
- It puts lakehouse integration at the center rather than treating it as an add-on connector.
- It comes from StreamNative, a company with deep streaming-system experience.
- It is relevant for teams that already think in terms of Iceberg/Delta tables.
Where to look carefully:
- As of April 28, 2026, it is not open source, so code-level evaluation is not possible.
- Self-hosted production readiness and license terms are not yet clear from public materials.
- Teams looking for an Apache Kafka replacement should validate API coverage and operational model carefully.
Feature Comparison Matrix
Feature tables can create false precision, especially when projects are at different stages. The table below is intentionally conservative: it separates public claims from areas that need validation in a proof of concept.
| Dimension | AutoMQ | Inkless | Tansu | Ursa |
|---|---|---|---|---|
| Kafka client compatibility | Kafka-compatible, Kafka-derived | Kafka-derived for Aiven Inkless clusters | Kafka API compatible | Kafka protocol access claimed |
| Transactions | Supported through Kafka compatibility | Not supported for diskless topics in current Inkless docs | Validate before production use | Validate before production use |
| Log compaction | Supported through Kafka compatibility | Not supported for diskless topics in current Inkless docs | Validate before production use | Validate before production use |
| Kafka Streams | Compatible at Kafka layer | Validate workload behavior | Validate before production use | Validate before production use |
| Kafka Connect | Compatible at Kafka layer | Classic Kafka compatibility applies; validate diskless-topic behavior | Validate before production use | Validate before production use |
| Storage backend | S3-compatible object storage plus WAL options | Object storage for diskless topics | PostgreSQL, SQLite/libSQL, S3, memory | Iceberg/Delta-oriented lakehouse storage |
| Lakehouse integration | Table Topic | Not the primary focus | Iceberg/Delta output for schema-backed topics | Core product direction |
| License / availability | Apache 2.0 for AutoMQ Open Source | Public code, license requires review | Apache 2.0 | Not open source as of April 28, 2026 |
| Best evaluation method | Kafka workload migration test | Aiven service test plus feature-gap review | API compatibility test for target apps | Managed-service evaluation |
The key takeaway is that "Kafka-compatible" needs workload-level validation. A producer/consumer smoke test is not enough if your platform depends on transactions, compaction, Kafka Streams, Kafka Connect, authorization behavior, or exact offset semantics.
Cost: Where Diskless Architectures Help
The economic argument for diskless Kafka is strongest when storage and cross-AZ traffic dominate the bill. Traditional Kafka keeps multiple broker-local copies of data and moves replication traffic across zones. Diskless systems try to move durable storage to object storage and reduce the amount of data that has to follow broker placement.
AutoMQ has a public benchmark for a 1 GiB/s sustained write-throughput workload on AWS, with 3 days of retention in the AWS us-east-1 region. In that benchmark, AutoMQ reports approximately $12,899/month for AutoMQ and $226,671/month for a traditional Apache Kafka deployment under the same workload assumptions.
| Cost component | Traditional Apache Kafka | AutoMQ |
|---|---|---|
| Compute | $18,447/month | $2,859/month |
| Storage | $69,984/month | $5,961/month |
| S3 API calls | $0 | $3,952/month |
| Cross-AZ traffic | $138,240/month | $127/month |
| Total | $226,671/month | $12,899/month |
Source: AutoMQ vs. Apache Kafka Benchmarks and Cost. The benchmark uses 1 GiB/s write throughput, 1 KiB records, 3 days of retention, AWS us-east-1 pricing, and a specific cluster configuration described in the benchmark page.
This does not mean every diskless system automatically produces the same savings. Inkless and Tansu have different architectures and did not publish directly comparable benchmark data in the sources checked for this article. The useful conclusion is narrower and more defensible: diskless architectures can materially reduce storage and network-transfer cost when the workload is dominated by replicated broker-local storage and cross-AZ traffic.
Decision Framework
The right choice depends on how much Kafka compatibility, operational maturity, and lakehouse integration you need.
Choose AutoMQ if you are migrating an existing Kafka estate
AutoMQ is a strong fit when the main risk is application compatibility. If your teams already depend on Kafka Streams, Kafka Connect, transactions, compaction, ACLs, and familiar Kafka operations, preserving the Kafka computation layer reduces migration uncertainty. The trade-off is that you are choosing a company-led Kafka-derived project rather than waiting for upstream Apache Kafka diskless topics to mature.
Choose Inkless if upstream Kafka direction matters most
Inkless is worth tracking if you want alignment with KIP-1150 and the future Apache Kafka diskless topics direction. It is especially relevant for Aiven customers who can evaluate it as a managed service. The trade-off is feature maturity: current public Inkless docs still list important limitations for diskless topics.
Choose Tansu if your workload is greenfield and lightweight
Tansu is attractive when you want Kafka API compatibility, a Rust implementation, and flexible storage options without carrying the full weight of an Apache Kafka deployment. That makes it useful for experimentation, embedded-style deployments, or greenfield systems where the exact Kafka feature surface is limited and testable.
Track Ursa if lakehouse-native streaming is the center of the architecture
Ursa should be evaluated as an emerging lakehouse-native streaming option rather than an open-source Kafka replacement. If your platform strategy is built around Iceberg or Delta Lake, it may be relevant. If your requirement is self-hosted open source code as of April 28, 2026, it does not yet meet that bar.
Practical Evaluation Checklist
Before choosing any diskless Kafka alternative, run a proof of concept against the behaviors your production workloads actually use:
- Test producer and consumer behavior under your real message size, partition count, throughput, and retention profile.
- Validate Kafka features you rely on: transactions, compaction, consumer groups, ACLs, Schema Registry, Kafka Streams, and Kafka Connect.
- Measure end-to-end latency, not only broker-side write latency.
- Model object-storage request cost and cross-AZ traffic instead of looking only at compute and storage.
- Test failure recovery: broker replacement, coordinator failure, object-storage throttling, and client reconnect behavior.
- Check license, governance, support model, and whether the project is suitable for your company's compliance requirements.
This checklist matters because diskless Kafka is an architectural category, not a single implementation pattern. Two projects can both use object storage and still behave very differently under failure, latency-sensitive workloads, or Kafka feature edge cases.
Conclusion
Diskless Kafka is moving from an alternative architecture into the center of the Kafka roadmap conversation. KIP-1150 shows that the Apache Kafka community sees the same pressure users see in production: broker-local durable storage is increasingly awkward in cloud environments where object storage is durable, scalable, and cost-effective.
For teams evaluating options in 2026, the short version is practical. AutoMQ is an open-source path for Kafka-compatible migration as of April 28, 2026. Inkless is the upstream-aligned direction to watch. Tansu is a lightweight Kafka-compatible option for greenfield systems. Ursa is a lakehouse-native managed-service direction that may become more relevant once public code and licensing are available.
The hard part is not deciding whether diskless architecture is interesting. It clearly is. The hard part is matching the architecture to the workload you actually run, with all the unglamorous details included: feature semantics, failure behavior, latency, storage cost, and the operational model your team can support.
To evaluate AutoMQ Open Source directly, start with the GitHub repository and run your own Kafka compatibility tests against a representative workload: Star and try AutoMQ on GitHub.
Useful Links
- AutoMQ GitHub repository
- AutoMQ documentation
- AutoMQ vs. Apache Kafka benchmark
- KIP-1150: Diskless Topics
- Aiven Inkless overview
- Inkless feature status
- Tansu documentation
- StreamNative Ursa
Data in this article was checked against official project websites, GitHub repositories, and published documentation on April 28, 2026. GitHub stars, feature availability, license terms, and managed-service status may change after publication.
