1.0.0 • Published 10 years ago
blt v1.0.0
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)
createStreamis a function that can be called with a configuration object and returns a Duplex Stream._optsis an optional configuration object accepting options:anchored- a Boolean indicating whether you prefer this bolt to provide anchors to Storm.
bltwill write tuple objects directly to the returned stream.If
anchoredis true, the stream is expected to stream arrays of form:[data, tuples], wheredatais the data to emit, andtuplesis the Storm tuple(s) that it is anchored to.
Events
- When your stream emits data,
bltemits 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,
bltpasses it along to Storm as a "log" event with that argument. - If your stream emits a "fail" event with the relevant tuple,
bltwill "fail" for you. - If your stream emits an "ack" event with the relevant tuple,
bltwill "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