OSGi PushStreams – online processing for live data


I recently gave a talk at the OSGi Community Event about a new RFC being discussed at the OSGi Alliance called PushStreams. A video of the talk is available here, and the latest version of the RFC is here. The talk generated a lot of interest (a full room at the conference) and even a blog analysis of the RFC.

Given the amount of interest there has been I thought I should give a bit more detail about what’s actually going on, and some of the current intentions for the PushStream API.


So what is a PushStream?

An OSGi PushStream is basically a Java 8 stream, but one that’s been upgraded to support “pushing” data, hence the imaginative name! The OSGi Alliance certainly isn’t the first place to talk about push-based streams of data (see Reactive Streams, Reactive Extensions and Akka) but a lot of people are still new to the concept, so we’ll start with some background.