river-event-stream

Event Stream adapter for the River stream processing lib

npm install river-event-stream
2 downloads in the last week
4 downloads in the last month

River Event Stream Adapter

This module forms a bridge to allow River to integrate into an event-stream pipline.

More on River at: https://github.com/andykent/river More on Event Stream at: https://github.com/dominictarr/event-stream

A Simple Example

es = require('event-stream')
es.query = require('river-event-stream')

es.pipeline(
  process.openStdin(),
  es.split(),
  es.parse(),
  es.query('SELECT name FROM stream'),
  process.stdout
)

es.query(sqlString, [options])

This is the only pulic method that is exposed and takes an SQL query string as input along with some optional configuration options.

The options are...

  • includeInserts: true by default, setting to false will mean insert events aren't outputted.
  • includeRemoves: false by default, setting to true will emit remove events. These can be useful when doing aggregations.
  • streamName: 'stream' by default, you can pass any valid SQL identifier to be used to identify your stream in the query e.g. 'FROM myStream'
  • multiplexed: false by default, setting multiplexed to true allows you to run a query that joins on mutiple streams. When this option is true the input stream should take the form of tuples, e.g. ['myStream', {data}], ['myOtherStream', {data}], ['myStream', {data}]

Note: When includeInserts and includeRemoves are both true the stream emits tuples so you can differentiate between inserts and removes. They look like this... ['insert', {data}] and ['remove', {data}]

npm loves you