Live data from Hacker News

“Streaming vs. Batch” Is a Wrong Dichotomy, and I Think It's Confusing

morling.dev

31–40 of 45 posts

Re: “Streaming vs. Batch” Is a Wrong Dichotomy, and I Think It's Confusing

#31
post #30

"Try it yourself" "very quickly wanted to get real-time streaming for more" My experience is the opposite. You think you need streaming, so you "try it out" and build something incredibly complex with Kafka, that needs 24h maintenance to monitor congestion in every pipeline. And 10x more expensive because your servers are always up. And some clever (expensive) engineers that figure out how watermarks, out of ordernes…

Kafka integrates against aws lamdas very easily

I'm curious if its web scale.

Re: “Streaming vs. Batch” Is a Wrong Dichotomy, and I Think It's Confusing

#32

Earlier quoted context omitted.

The lines blur though when you start keeping state between batches, and a lot of batch processing ends up requiring that (joins, deduplication, etc).

No, it really doesn't. The definition of "streaming", to me, can be boiled down to "you send individual data as soon as it's available, without collecting into groups." Batching is, by definition, the gathering of data records into a collection before you send it. Streaming does not do that, which is the entire point. What happens after transmission occurs, on reception, is entirely irrelevant to whether the data tra…

Most streaming does some batching. If you stream audio from a live source, you batch at least into "frames", and you batch into network packets. On top of that you might batch further depending on your requirements, yet I would still count most of it as "streaming".

Re: “Streaming vs. Batch” Is a Wrong Dichotomy, and I Think It's Confusing

#34
post #32

Earlier quoted context omitted.

No, it really doesn't. The definition of "streaming", to me, can be boiled down to "you send individual data as soon as it's available, without collecting into groups." Batching is, by definition, the gathering of data records into a collection before you send it. Streaming does not do that, which is the entire point. What happens after transmission occurs, on reception, is entirely irrelevant to whether the data tra…

Most streaming does some batching. If you stream audio from a live source, you batch at least into "frames", and you batch into network packets. On top of that you might batch further depending on your requirements, yet I would still count most of it as "streaming".

Only if you ignore that streaming streams data in records. The creation of a record (or struct, or whatever term you want to use) is not "batching". Otherwise any 32-bit word is a nothing more than a batch of four bytes, and the entire distinction instantly becomes meaningless.

An audio stream can easily be defined as a series of records, where each record is a sample spanning N seconds, probably as provided by the hardware. Similarly, a video frame can also be considered a record. As soon as a record becomes available, it is sent. Thus, streaming.

Optimizing to fully utilize network frames can generally be considered a low level transport optimization, and thus not relevant to the discussion.

Re: “Streaming vs. Batch” Is a Wrong Dichotomy, and I Think It's Confusing

#36

Earlier quoted context omitted.

The lines blur though when you start keeping state between batches, and a lot of batch processing ends up requiring that (joins, deduplication, etc).

No, it really doesn't. The definition of "streaming", to me, can be boiled down to "you send individual data as soon as it's available, without collecting into groups." Batching is, by definition, the gathering of data records into a collection before you send it. Streaming does not do that, which is the entire point. What happens after transmission occurs, on reception, is entirely irrelevant to whether the data tra…

Isn’t that pretty much exactly what the OP is saying? He just calls it ”push” and ”pull” instead. Different words, same concepts.

Re: “Streaming vs. Batch” Is a Wrong Dichotomy, and I Think It's Confusing

#37
post #30

"Try it yourself" "very quickly wanted to get real-time streaming for more" My experience is the opposite. You think you need streaming, so you "try it out" and build something incredibly complex with Kafka, that needs 24h maintenance to monitor congestion in every pipeline. And 10x more expensive because your servers are always up. And some clever (expensive) engineers that figure out how watermarks, out of ordernes…

Kafka integrates against aws lamdas very easily

You can't do groupbys or joins with lambdas.

You can only really take one garden gnome, put some paint on it and forward the same gnome.

Re: “Streaming vs. Batch” Is a Wrong Dichotomy, and I Think It's Confusing

#38
post #10

Earlier quoted context omitted.

Because the author is lost in peculiarities of the systems he happens to work with that he is redefining the terms (see all the discussion around "push" and "pull"). That's gonna run into this problem. His problem is one of data transfer and a better fit for what hes looking for is probably "polling" versus "interrupt" driven.

Interrupts are a hardware feature on CPUs. You could have software that is effectively checking for events on each tick (clock cycle), and emulates interrupts. But that's what polling is.

The operating system provides abstractions for blocking and asynchronous IO, which are the higher abstraction version of the same concept.

Re: “Streaming vs. Batch” Is a Wrong Dichotomy, and I Think It's Confusing

#39
post #30

Earlier quoted context omitted.

Kafka integrates against aws lamdas very easily

You can't do groupbys or joins with lambdas. You can only really take one garden gnome, put some paint on it and forward the same gnome.

I think I get the analogy, something like: you can append to the record but everything is still record-based? And what do garden gnomes have to do with it :-)

Re: “Streaming vs. Batch” Is a Wrong Dichotomy, and I Think It's Confusing

#40

Earlier quoted context omitted.

You can't do groupbys or joins with lambdas. You can only really take one garden gnome, put some paint on it and forward the same gnome.

I think I get the analogy, something like: you can append to the record but everything is still record-based? And what do garden gnomes have to do with it :-)

Yeah, a garden gnome is an element in a garden gnome factory. Just an example.
Post reply on HN