arroyo
Arroyo is a distributed stream processing engine written in Rust that processes high-volume real-time data with SQL as a first-class interface. It supports stateful operations like windows and joins, scales to millions of events per second, and includes connectors for Kafka and other data sources.
Key facts
Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.
| Field | Value |
|---|---|
| Repository | ArroyoSystems/arroyo |
| Owner | ArroyoSystems |
| Primary language | Rust |
| License | Apache-2.0 — OSI-approved |
| Stars | 5k |
| Forks | 364 |
| Open issues | 116 |
| Latest release | v0.15.0 (2025-12-01) |
| Last updated | 2026-07-08 |
| Source | https://github.com/ArroyoSystems/arroyo |
What arroyo is
Built in Rust, Arroyo implements the Dataflow model for time-oriented stream processing with stateful checkpointing for fault tolerance. It provides SQL-based pipeline definition, horizontal scaling capabilities, and integrations with Kafka, Iceberg, and other connectors; runs as a self-hosted binary or Docker container with a Web UI.
Get the arroyo source
Clone the repository and explore it locally.
git clone https://github.com/ArroyoSystems/arroyo.gitcd arroyo# follow the project's README for install & configurationNeed it deployed, integrated, or customized instead? DEV.co ships production installs.
Best use cases
Implementation considerations
- SQL is the primary pipeline definition language; teams must be comfortable writing streaming SQL (windowing, joins, time-based operations) rather than imperative code.
- State management and checkpointing are core; understand fault-tolerance guarantees and recovery mechanisms before deploying stateful operations in production.
- Cluster deployment requires Docker or binary management; plan for distributed coordination, state store provisioning, and operational monitoring.
- Connector ecosystem is growing (Kafka, Iceberg documented); verify connector availability and maturity for your specific data sources before committing.
- Project is pre-1.0 (v0.15.0 as of latest release); anticipate potential breaking changes and monitor release notes closely for production deployments.
When to avoid it — and what to weigh
- Batch-Only Workloads — If your use case is entirely batch processing or micro-batching, traditional batch systems (Spark, Flink batch) may be simpler to operate.
- Extremely Low Latency + High Consistency Guarantees Required — While Arroyo targets subsecond results, mission-critical systems requiring hardened SLAs should evaluate production maturity and operational tooling first.
- No SQL Expertise or Simple Map-Reduce Pipelines — Arroyo emphasizes SQL; if your team prefers imperative code (Python, Go, Java) and builds simple stateless transformations, lighter frameworks may fit better.
- Minimal Operational Infrastructure — Self-hosted Arroyo requires managing a distributed cluster (state stores, recovery, scaling); managed services like Cloudflare Pipelines are in beta and restricted to stateless pipelines.
License & commercial use
Dual-licensed under Apache License 2.0 and MIT. Both are permissive OSI-approved licenses allowing commercial use, modification, and distribution.
Apache 2.0 and MIT are permissive licenses; commercial use is permitted. However, verify your specific use case with legal counsel if integrating proprietary modifications or combining with proprietary code, and monitor license compliance for derivative works.
DEV.co evaluation signals
Editorial assessment — not user reviews. Directional, with an explicit confidence level.
| Signal | Assessment |
|---|---|
| Maintenance | Active |
| Documentation | Adequate |
| License clarity | Clear |
| Deployment complexity | Moderate |
| DEV.co fit | Good |
| Assessment confidence | High |
State checkpointing and recovery mechanisms are core but security hardening is not detailed in available data. Clarify: encryption-at-rest for state stores, encryption-in-transit for cluster communication, authentication/authorization for Web UI and API, audit logging, and supply chain security of Rust dependencies. No public security audit or disclosure policy stated; requires review.
Alternatives to consider
Apache Flink
Mature production streaming engine with broader language support (Java, Scala, Python); larger ecosystem and enterprise adoption, but steeper operational complexity and less SQL-first design.
Kafka Streams
Lightweight, JVM-native streaming library tightly coupled to Kafka; simpler operations for smaller-scale use cases, but fewer stateful features and no SQL interface.
Apache Spark Streaming / Spark Structured Streaming
Unified batch and streaming with Python/Scala/SQL support; large community and production adoption, but higher latency and resource overhead than pure streaming engines.
Build on arroyo with DEV.co software developers
Arroyo combines high-performance SQL with distributed stream processing. Get started with the single binary, evaluate in Docker, or explore the Cloudflare Pipelines beta. Reach out to our team for production planning.
Talk to DEV.coRelated on DEV.co
Explore the category and the services that help you build with it.
arroyo FAQ
Does Arroyo guarantee exactly-once semantics?
Can I run Arroyo without Kafka?
Is there a managed, fully-hosted Arroyo service?
What are the production-readiness considerations?
Software development & web development with DEV.co
Need help beyond evaluating arroyo? DEV.co is a software development agency offering software development services and web development for teams of every size. Our software developers and web developers build custom software, web applications, APIs, and open-source databases integrations — and maintain them long-term.
Ready to Build Real-Time Pipelines?
Arroyo combines high-performance SQL with distributed stream processing. Get started with the single binary, evaluate in Docker, or explore the Cloudflare Pipelines beta. Reach out to our team for production planning.