blt
v1.0.0
Published
simple storm bolt creation
Downloads
18
Readme
blt
Storm Bolts without the overhead.
Example
var through = require('through2')
var createBolt = require('blt')
createBolt(splitSentence)
function splitSentence(configuration) {
var splitStream = through.obj(splitWords)
return splitStream
function splitWords(obj, _, next) {
obj.tuple[0].split(' ').forEach(function(word) {
splitStream.push(word)
})
splitStream.emit('ack', obj)
next()
}
}
API
blt(createStream, _opts)
createStream
is a function that can be called with a configuration object and returns a Duplex Stream._opts
is an optional configuration object accepting options:anchored
- a Boolean indicating whether you prefer this bolt to provide anchors to Storm.
blt
will write tuple objects directly to the returned stream.If
anchored
is true, the stream is expected to stream arrays of form:[data, tuples]
, wheredata
is the data to emit, andtuples
is the Storm tuple(s) that it is anchored to.
Events
- When your stream emits data,
blt
emits the data packaged up in Storm's tuple format with all of the applicable anchoring data. - If your stream emits a "log" event with an argument,
blt
passes it along to Storm as a "log" event with that argument. - If your stream emits a "fail" event with the relevant tuple,
blt
will "fail" for you. - If your stream emits an "ack" event with the relevant tuple,
blt
will "ack" for you.
Usage
blt
handles all of the Storm-specific aspects of constructing Bolt streams for
Storm.
- Creates PID file and handshakes with Storm at startup.
- Handles responding to heartbeats.
Notes
- This is experimental and relatively untested, use at your own risk!
- This module is somewhat optimized for a simplified use-case, if you need more, try storm-stream or node-storm.
- For a more magical approach, check out garlic.
License
MIT