Integration – What is a Streaming App Exactly?

apache-kafkaintegrationmiddlewarestream-processing

I'm trying to get past all the hipster, pie-in-the-sky buzzwording and address a very simple, fundamental question:

What is a streaming application?

According to the Kafka site

"Kafka is used for building real-time data pipelines and streaming apps"

Streaming apps…hmmm. OK, so what is a "streaming app"?! According to Quora, a Java stream is:

[A sequence] of bytes that you can read from (InputStream and its subclasses) or write to (OutputStream and its subclasses)…

Doesn't seem like that definition fits. From what I can gather from various articles, a "streaming app" appears just be an app that is constantly being fed data. But doesn't that definition also apply to:

  • A RESTful HTTP service, whose web clients are constantly sending it data all day long (and also, querying it for data)
  • A standard message broker (AMQP, etc) whose clients are constantly reading/writing to its queues all day long
  • Any TCP-based network server, whose TCP clients are constantly reading/writing data to it all day long (including MMO game servers)
  • ?!?!

So I ask, because someone, somewhere really needs to bring clarity to this: "Is a streaming app just trendy, hipster buzzword banter, or is there a distinctive definition for a streaming app that sets it apart from all my examples above?"

Best Answer

A streaming app is an app that consumes a stream of data.

A stream of data is transmitted data formatted in a way that can be useful even when incomplete. Since partial stream data does not require complete transmission this allows consumers to join and leave at any time. It also allows for transmission to be continuous, though it may start and stop on demand. It models how broadcast radio and television work.

This contrasts with file transfers that may be meaningless to consume until the transfer has been completed.

Java streams allow consumption of partial data but do nothing to transfer data over a network on their own.

And like any popular buzz word money is being spent to make it seem like it's more than it is.

Related Topic