Arroyo vs Kafka Streams
Arroyo
arroyo.devKafka Streams
kafka.apache.orgSide by side
| Figure | Arroyo | Kafka Streams |
|---|---|---|
| Price from | $5/mo | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | Yes | — |
| Web | Yes | — |
| Windows | — | Yes |
| macOS | Yes | Yes |
| Linux | Yes | Yes |
| API | Yes | — |
| Self-hosted | Yes | Yes |
| Plans published | 3 | 1 |
| Spec score · Stream Analytics Software | 9.2 (#1) | 7.9 (#15) |
| Spec score · Stream Processing Software | 9.1 (#1) | 7.8 (#15) |
| Deployment | Arroyo can run as a single binary, Docker container or Kubernetes deployment, with SQLite for local use and Postgres recommended for distributed production. | Kafka Streams applications can be deployed to containers, virtual machines, bare metal, or cloud environments. |
| Founded | 2022 | 1999 |
| Purpose | Arroyo is a distributed stream processing engine for stateful computations on data streams, with sub-second results. | Kafka Streams is a client library for building applications and microservices whose input and output data are stored in Kafka clusters. |
| Support | The deployment guide invites users rolling out clusters to contact [email protected] or ask questions on Discord. | The Kafka project provides user, developer, JIRA, and commit mailing lists for community support and project communication. |
Plans
Arroyo
- Arroyo open-sourceFree
- Open-source Arroyo EngineFree
- Cloudflare Workers Paid with Pipelines$5 a month
In their own words
Arroyo
Arroyo is an open-source distributed engine for processing stateful computations on data streams, with sub-second results. Users build streaming pipelines in analytical SQL, including complex queries, windows and joins. Arroyo supports checkpointing for fault tolerance and recovery, exactly-once processing, and horizontal and vertical rescaling; it says the engine can handle millions of events per second. Its connectors include Kafka, Kinesis, MQTT, MySQL, Postgres, Redis, Delta Lake, HTTP and WebSocket, among others. It reads and writes JSON, Avro, Parquet, text and binary, and includes more than 300 SQL functions. Rust scalar, aggregate and asynchronous user-defined functions can extend SQL. The web UI supports connection management, query development and testing, and pipeline monitoring; pipeline management is also available through a REST API. Single-node clusters are intended for development and testing, while production deployments use a distributed cluster with Arroyo’s scheduler or Kubernetes. It is Apache 2.0 licensed, free at free, and self-hostable.
Kafka Streams
Kafka Streams is a free client library for building applications and microservices that use data stored in Kafka clusters. It processes Kafka data with event-time handling, windowing, and real-time queries of application state. The Streams DSL provides operations such as mapping, filtering, joins, and aggregations, while the Processor API supports custom processors and state stores. Fault-tolerant local state supports stateful work such as windowed joins and aggregations, and the library offers exactly-once processing semantics. Applications can run on one machine or scale across multiple machines, and can be deployed in containers, virtual machines, on bare metal, or in cloud environments. Kafka Streams uses Kafka as its internal messaging layer and does not require a separate processing cluster. It supports Java and Scala and integrates with Kafka security features for encryption in transit, client authentication, and authorization. The software is licensed under Apache License 2.0. The Apache Software Foundation says it does not sell its software or provide formal or commercial support for its packages; project communication is available through community mailing lists.