frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

Open in hackernews

ArkFlow: High-performance Rust stream processing engine

https://github.com/arkflow-rs/arkflow
170•klaussilveira•2mo ago

Comments

habobobo•2mo ago
Looks interesting, how does this compare to arroyo and vector.dev?
tormeh•2mo ago
Also curious about any comparison to Fluvio.
necubi•2mo ago
(I'm the creator of Arroyo)

I haven't dug deep into this project, so take this with a grain of salt.

ArkFlow is a "stateless" stream processor, like vector or benthos (now Redpanda Connect). These are great for routing data around your infrastructure while doing simple, stateless transformations on them. They tend to be easy to run and scale, and are programmed by manually constructing the graph of operations.

Arroyo (like Flink or Rising Wave) is a "stateful" stream processor, which means it supports operations like windowed aggregations, joins, and incremental SQL view maintenance. Arroyo is programmed declaratively via SQL, which is automatically planned into a dataflow (graph) representation. The tradeoff is that state is hard to manage, and these systems are much harder to operate and scale (although we've done a lot of work with Arroyo to mitigate this!).

I wrote about the difference at length here: https://www.arroyo.dev/blog/stateful-stream-processing

fer•2mo ago
Previous discussion (46 days ago): https://news.ycombinator.com/item?id=43358682
shawabawa3•2mo ago
seems like a simplified equivalent of https://vector.dev/

a major difference seems to be converting things to arrow and using SQL instead of using a DSL (vrl)

sofixa•2mo ago
> seems like a simplified equivalent of https://vector.dev/

No? Vector is for observability, to get your metrics/logs, transform them if needed, and put them in the necessary backends. Transformation is optional, and for cases like downsampling or converting formats or adding metadata.

ArkFlow gets data from stuff like databes and message queues/brokers, transforms it, and puts it back in databases and message queues/brokers. Transformation looks like a pretty central use case.

Very different scenarios. It's like saying that a Renault Kangoo is a simplified equivalent of a BTR-80 because both have wheels, engine and space for stuff.

rockwotj•2mo ago
Its a rust port of Redpanda Connect (benthos), but with less connectors

https://github.com/redpanda-data/connect

necubi•2mo ago
Vector is often used for observability data (in part because it's now owned by Datadog) but it's not limited to that. It's a general purpose stateless stream processing engine, and can be used for any kind of events.
sofixa•2mo ago
Vector started for observability data only, and that's why they got bought by Datadog.
hoherd•2mo ago
Incidentally arkflow implements VRL https://github.com/arkflow-rs/arkflow/pull/273
muffa•2mo ago
Looks very similar to redpanda-connect/benthos
coreyoconnor•2mo ago
How do you educate people on stream processing? For pipeline like systems stream processing is essential IMO - backpressure/circuit breakers/etc are critical for resilient systems. Yet I have a hard time building an engineering team that can utilize stream processing; Instead of just falling back on synchronous procedures that are easier to understand (But nearly always slower and more error prone)
serial_dev•2mo ago
It's important to consider whether it's worth it, even?

I worked on stream processing, it was fun, but I also believe it was over-engineered and brittle. The customers also didn't want real-time data, they looked at the calculated values once a week, then made decisions based on that.

Then, I joined another company that somehow had money to pay 50-100 people, and they were using CSV, sh scripts, batch processing, and all that. It solved the clients' needs, and they didn't need to maintain a complicated architecture and the code that could have been difficult to reason about otherwise.

The first company with the stream processing after I left, was bought by a competitor at fire sale price, some of the tech were relevant for them, but the stream processing stuff was immediately shut down. The acquiring company had just simple batch processing and they were printing money in comparison.

If you think it's still worth going with stream processing, give your reasoning to the team, and most reasonable developers would learn it if they really believe it's a significantly better solution for the given problem.

Not to over-simplify, but if you can't convince 5 out of 10 people to learn to make their job better, it's either that the people are not up to the task, or you are wrong that stream processing would make a difference.

senderista•2mo ago
Yeah that reminds me of a startup I worked at that did real-time analytics for digital marketing campaigns. We went to all kinds of trouble to update dashboards with 5-minute latency, and real-time updates made for impressive sales demos, but I don't think we had a single customer that actually needed to make business decisions within 24 hours of looking at the data.
serial_dev•2mo ago
We were doing TV ads analytics by detecting ads on TV channels and checking web impact (among other things). The only thing is, most of these ads are deals made weeks or months in advance, so customers checked analytics about once before a renewal… so not sure it needed to be near real time…
wging•2mo ago
https://mcfunley.com/whom-the-gods-would-destroy-they-first-...
nemothekid•2mo ago
I agree. Unless the downstream data is going to be used to feed a system to make automated decisions (ex. HFT or Ad buying), having real time analytics is usually never worth the cost. It's almost always easier and more robust to have high tail latencies for humans to consume and as computers get faster and faster that tail latency decreases.

Systems that needed complex streaming architectures in 2015 could probably be handled today with fast disk and large postgres instance (or BigQuery).

porridgeraisin•2mo ago
Many successful ads feedback loops run at 15 minute granularities as well!
wwarner•2mo ago
personally i think streaming is quite a bit simpler. but as you you point out, no one cares!
carefulfungi•2mo ago
Batch processing is just stream processing with a really big window ;-). More seriously, I find streaming windows are often the disconnect. Surprisingly often, users don't want windowed results. They want aggregation, filtering, uniqueness, ordering, and reporting over some batch. Or, they want to flexibly specify their window / partitioning / grouping for each reporting query. Modern OLAP systems are plenty fast enough to do that on the fly for most use cases - so even older streaming patterns like stream processing for real time stats in parallel with batch to an OLAP system aren't worth the complexity. Just query the DB and cache...
timeinput•2mo ago
Fundamentally I think the question is what kind of streams are you processing?

My concept of stream processing is trying to process gigabits to gigabytes a second, and turn it into something much much smaller so that it's manageable to database and analyze. To my mind for 'stream processing' calling malloc is sometimes too expensive let alone using any of the technologies called out in this tech stack.

I understand back pressure, and circuit breakers, but they have to happen at the OS / process level (for my general work) -- a metric that auto scales a microservice worker after going through prometheus + an HPA or something like that ends up with too many inefficiencies to make things practical. A few threads on a single machine just work, but end up taking ages to engineer a 'cloud native' solution.

Once I'm down to a job a second (and that job takes more than a few seconds to run to hide the framework's overhead) or less things like Airflow start to work, and not just fall flat, but at that point are these expensive frame works worth it? I'm only producing 1-1000 jobs a second.

Stream processing with these frameworks like Faust, Airflow, Kafka Streams etc, all just seem like brittle overkill once you start trying to actually deploy and use them. How do I tune the PostgreSQL database for Airflow? How do I manage my S3 life cycles to minimize cost?

A task queue + an HPA really feels more like the right kind of thing to me at that scale vs really caring too much about back pressure, etc when the data rate is 'low', but I've generally been told by colleagues to reach for more complicated stream processors that perform worse, are (IMO) harder to orchestrate, and (IMO) harder to manage and deploy.

jandrewrogers•2mo ago
There are both technical and organizational challenges created by stream processing. I like stream processing and have done a lot of work on high-performance stream engines but I am not blind to the practical issues.

Companies are organized around an operational tempo that reflects what their systems are capable of. Even if you replace one of their systems with a real-time or quasi-real-time stream processing architecture, nothing else in the organization operates with that low of a latency, including the people. It is a very heavy lift to even ask them to reorganize the way they do things.

A related issue is that stream processing systems still work poorly for some data models and often don’t scale well. Most implementations place narrow constraints on the properties of the data models and their statefulness. If you have a system sitting in the middle of your operational data model that requires logic which does not fit within those limitations then the whole exercise starts to break down. Despite its many downsides, batching generalizes much better and more easily than stream processing. This could be ameliorated with better stream processing tech (as in, core data structures, algorithms, and architecture) but there hasn’t been much progress on that front.

jll29•2mo ago
Very interesting - is WARC support on the roadmap?
dayjah•2mo ago
Do you mean this: https://en.m.wikipedia.org/wiki/WARC_(file_format) ?

Can you help me understand how this would plug into stream processing? My immediate thought is for web page interaction replays — but that seems sort of exotic a use case?

gotoeleven•2mo ago
How do the creators of this plan to make money?
beanjuiceII•2mo ago
get people onboard as open source..then flip to some other license add some pricing tiers and now those users become customers even if they don't like it. tried and true methodology
amelius•2mo ago
You can always fork it
insane_dreamer•2mo ago
Does this include broker capabilities? If not, what's a recommended broker these days (for hosting in the cloud, i.e., an EC2 instance; I know AWS has its own Mqtt Broker but it's quite pricy for high volumes).
xyst•2mo ago
So Kafka Connect and Kafka Streams but with rust?
chenquan•2mo ago
Hello, I am the founder of this project and I am very happy that a friend has shared it.

ArkFlow is positioned as a lightweight distributed stream processing engine that integrates streaming batches. With the help of datafusion's huge ecosystem and ArkFlow's scalable capabilities, we hope to build a huge data processing ecosystem to help the community simplify the threshold for data processing, because we always believe that flowing data can generate greater value.

Finally, thanks to everyone for their attention.

fnord123•2mo ago
What does lightweight mean?
undefuser•2mo ago
I would like to understand more. What are the potential use cases for this tool?
gue-ni•2mo ago
"High-performance" is just a meaningless buzzword if you don't have any benchmarks or performance comparisons to comparable software
disintegrator•2mo ago
Very similar in appearance to Redpanda Connect (Benthos) which isn’t a bad thing at all. Would be good to elaborate on how error handling is done and what message delivery guarantees it comes with.

Bypassing Google's big anti-adblock update

https://0x44.xyz/blog/web-request-blocking/
609•deryilz•12h ago•522 comments

Nuclear Explosion for Carbon Sequestration

https://arxiv.org/abs/2501.06623
31•energy123•2h ago•28 comments

Switching to Claude Code and VSCode Inside Docker

https://timsh.org/claude-inside-docker/
85•timsh•1d ago•30 comments

Kimi K2 is a state-of-the-art mixture-of-experts (MoE) language model

https://github.com/MoonshotAI/Kimi-K2
317•ConteMascetti71•14h ago•77 comments

Zig's New Async I/O

https://kristoff.it/blog/zig-new-async-io/
135•afirium•8h ago•85 comments

Hacking Coroutines into C

https://wiomoc.de/misc/posts/hacking_coroutines_into_c.html
74•jmillikin•6h ago•17 comments

MacPaint Art from the Mid-80s Still Looks Great Today

https://blog.decryption.net.au/posts/macpaint.html
855•decryption•22h ago•178 comments

Chrome's hidden X-Browser-Validation header reverse engineered

https://github.com/dsekz/chrome-x-browser-validation-header
147•dsekz•2d ago•32 comments

Edward Burtynsky's monumental chronicle of the human impact on the planet

https://www.newyorker.com/culture/photo-booth/earths-poet-of-scale
29•pseudolus•4h ago•4 comments

Parse, Don't Validate (For C)

https://www.lelanthran.com/chap13/content.html
44•lelanthran•3d ago•10 comments

Programming Affordances That Invite Mistakes

https://thetechenabler.substack.com/p/programming-affordance-when-a-languages
18•ingve•2d ago•5 comments

C++: Maps on Chains

http://bannalia.blogspot.com/2025/07/maps-on-chains.html
4•signa11•2d ago•0 comments

Aeron: Efficient reliable UDP unicast, UDP multicast, and IPC message transport

https://github.com/aeron-io/aeron
11•todsacerdoti•11h ago•3 comments

Lost Chapter of Automate the Boring Stuff: Audio, Video, and Webcams in Python

https://inventwithpython.com/blog/lost-av-chapter.html
147•AlSweigart•14h ago•9 comments

Light exposure at night predicts incidence of cardiovascular diseases

https://www.medrxiv.org/content/10.1101/2025.06.20.25329961v1
98•gnabgib•8h ago•65 comments

Experimental imperative-style music sequence generator engine

https://github.com/renoise/pattrns
6•bwidlar•3d ago•1 comments

The fish kick may be the fastest subsurface swim stroke yet (2015)

https://nautil.us/is-this-new-swim-stroke-the-fastest-yet-235511/
208•bookofjoe•19h ago•138 comments

Two-step system makes plastic from carbon dioxide, water and electricity

https://phys.org/news/2025-06-plastic-carbon-dioxide-electricity.html
56•PaulHoule•3d ago•14 comments

A better Ghidra MCP server – GhidrAssistMCP

https://github.com/jtang613/GhidrAssistMCP
79•jtang613•13h ago•13 comments

Show HN: I made a JSFiddle-style playground to test and share prompts fast

https://langfa.st/
26•eugenegusarov•13h ago•3 comments

HNSW as abstract data structure: video intro to Redis vector sets

https://www.youtube.com/watch?v=kVApsFUeuEA
22•antirez•2d ago•0 comments

Malware found in official gravityforms plugin indicating supply chain breach

https://patchstack.com/articles/critical-malware-found-in-gravityforms-official-plugin-site/
210•taubek•1d ago•43 comments

Second Variety, by Philip K. Dick (1953)

https://www.gutenberg.org/files/32032/32032-h/32032-h.htm
56•djoldman•3d ago•17 comments

New Date("wtf") – How well do you know JavaScript's Date class?

https://jsdate.wtf
317•OuterVale•23h ago•178 comments

Supreme Court's ruling practically wipes out free speech for sex writing online

https://ellsberg.substack.com/p/free-speech
561•macawfish•13h ago•719 comments

Working through 'Writing A C Compiler'

https://jollygoodsw.wordpress.com/2025/03/13/working-through-writing-a-c-compiler/
141•AlexeyBrin•19h ago•33 comments

Exposing a web service with Cloudflare Tunnel (2022)

https://erisa.dev/exposing-a-web-service-with-cloudflare-tunnel/
96•sturza•3d ago•39 comments

Proposed NOAA Budget Kills Program Designed to Prevent Satellite Collisions

https://skyandtelescope.org/astronomy-news/proposed-noaa-budget-kills-program-to-prevent-satellite-collisions/
335•bikenaga•14h ago•194 comments

Vibe-Coding a PCB – surprisingly good

https://atomic14.substack.com/p/vibe-coding-a-pcb-surprisingly-good
143•iamflimflam1•15h ago•60 comments

New Windows 11 build adds self-healing "quick machine recovery" feature

https://arstechnica.com/gadgets/2025/07/new-windows-11-build-adds-self-healing-quick-machine-recovery-feature/
20•thunderbong•3h ago•12 comments