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?"