Pointstream is a little system to demonstrate the usage of Server Sent Events to do real-time broadcasting in a web GIS application.
Watch this video to see it in action.

To give an impression of a full-stack application the system consists of a pipeline of programs:

  • pointgenerator: A small tool to generate points at a specific rate. Think points as some kind of incidents at a location like someone spontaneous screaming "Hurray!". The generated data is stored in a PostgreSQL database.

  • pointpoller: This tool polls the database at a certain rate to fetch all the events which happened since the last poll. Alternatively the Listen/Notify mechanism of PostgreSQL can be used. This data is send to the pointbroadcaster via a RabbitMQ message queue or a simple HTTP POST.

  • pointbroadcaster: This is mainly a web server on which web clients can listen to receive the events from the pipeline. The points are visualized with an OpenLayers 2 client.


There are binary releases available for Windows, GNU/Linux and Mac OS X (Darwin):


  1. Prepare the database. See the file for a sample database.
  2. Start the pointgenerator with ./pointgenerator -np -1.
  3. Start the pointpoller with ./pointpoller.

    Will use RabbitMQ per default. Add flag -n to use the notify/listen mechanism of PostgreSQL. This will give instant feedback without the polling delay.

  4. Start the pointbroadcaster with ./pointbroadcaster -w <PATH-TO>/web/ -h

    Will use RabbitMQ per default.

  5. Testing in the browser.

    Goto http://<SERVER>:8080/ to test the sample OpenLayers application. Goto http://<SERVER>:8080/events.html to test the sample server-sent events web application.


See the file for build instructions on GNU/Linux.


Please use Bitbucket for questions:


This is Free Software covered by the terms of the 2-clause BSD license.
See LICENSE file for details.
(c) 2015 by Intevation GmbH

See licenses/ for more information.


For commercial support, additional information or custom modifications please contact:

Intevation GmbH <>
Neuer Graben 17
49074 Osnabrück, Germany

The public development platform can be found at: