This could be a common question, so copying this over from this post in Slack.
I will be happy if someone could point me to good reading about how streaming is different from micro-batching, meaning in technical point of view, it just making batches very small and more frequent kind of creating streaming by itself.
To me it’s the same thing, as Kafka is already typically micro-batching.
Kafka consumers under the hood are polling so they are not streaming in reality as Gerard mentions (in terms of the events being pushed to you with no way for back pressure). Reading this Javadoc helps cover a lot of the concepts: KafkaConsumer (kafka 1.0.1 API)
Indeed and the typical (high performing) producer will also bundle multiple messages in one tcp packet when the load is high enough.
If you’re familiar with spark streaming it operates the same way as Kafka consumers.