What is stream processing ?
Stream processing refers to techniques used to process a continuous stream of data. In batch processing, the amount of data is known up front when the processing starts. However, in stream processing, the computation (or query) runs ‘forever’ and as new data continues to get added to the input the computation updates its response.  To handle an infinite stream of data without needing to maintain infinite history stream processing queries often include the idea of windows which limits how much history is needed to be kept.