Skip to Main Content

Difference with WarpStream

AutoMQ and WarpStream both utilize object storage for storing message data, and they exhibit some architectural commonalities. This article will explore the differences and comparisons between AutoMQ and WarpStream.

Architecture: Rewrite Protocol vs. Compute-Storage Separation

WarpStream has reengineered the Apache Kafka® protocol, utilizing S3 object storage to replicate Kafka functionalities. This design doesn't reuse any Kafka code but rather recreates Kafka functionalities and APIs via the WarpStream Agent component. Messages produced by applications are directly routed to S3 by the Agent, eliminating the need to handle any storage logic, thereby achieving a completely stateless architectural framework.

AutoMQ, in its technical design, embraces a stateless design principle of compute-storage separation, opting to reuse the compute layer code of Apache Kafka®, and decouples the original local storage-based Apache Kafka storage layer to a remote storage solution based on S3 object storage, with minimal alterations at the storage layer to preserve the integrity of top-layer protocols and functional interfaces.

WarpStream Architecture

AutoMQ Architecture

Compatibility: Partial Compatibility vs. 100% Compatibility

WarpStream, having opted to reengineer the Apache Kafka® protocol, currently only supports the primary API interfaces for message production and consumption, and does not yet accommodate advanced features like transactional messaging and ExactlyOnce, among others. Furthermore, some interfaces are unimplementable due to architectural variances, for more details please see reference.

AutoMQ has adopted the compute layer code from Apache Kafka®, only altering the underlying storage system to ensure full compatibility with the corresponding version of Apache Kafka®. Applications already using Apache Kafka® can easily transition to AutoMQ without any need for configuration changes. For additional compatibility information, please visit Compatibility with Apache Kafka▸.

Latency: Sub-second vs. Millisecond

WarpStream employs an agent component to relay messages to object storage. Accessing S3 triggers API fees and introduces call latency in the hundreds of milliseconds; therefore, batching is utilized in the synchronous message writing process. This approach leads to a P99 write latency of over 620ms for WarpStream, with the end-to-end latency P99 reaching 1.27s.

AutoMQ leverages block storage EBS as the WAL cache during the message writing phase, providing immediate response results after writing messages to EBS, followed by asynchronous uploads to object storage and the use of in-memory caching for hot data, thus achieving millisecond-level message read and write latency.

Openness: Closed Source vs. Source Available

WarpStream is a proprietary closed-source project that delivers services compatible with the Kafka protocol. On the other hand, AutoMQ provides fully managed cloud services and private deployment options, including a community edition for private deployments, which makes the source code available. For more details, please visit Licensing▸.

Summary

Although both AutoMQ and WarpStream incorporate object storage, they demonstrate significant differences in architectural design and present distinct trade-offs. Here's a comparative summary:

Comparison ItemWarpStreamAutoMQ
ArchitectureRewrites Kafka protocolImplements aspect substitution for Kafka storage
CompatibilityCompatible with some features of Apache KafkaReuses Kafka's computation layer code, compatible with all features
Latency400+ ms write latency, 1 second end-to-end latency< 10 ms read/write latency
OpennessCommercial, closed sourceCommercial with source code visibility