simple storm bolt creation

Usage no npm install needed!

<script type="module">
  import blt from '';



Build Status npm install npm version js-standard-style License

Storm Bolts without the overhead.


var through = require('through2')
var createBolt = require('blt')


function splitSentence(configuration) {
  var splitStream = through.obj(splitWords)

  return splitStream

  function splitWords(obj, _, next) {
    obj.tuple[0].split(' ').forEach(function(word) {

    splitStream.emit('ack', obj)



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], where data is the data to emit, and tuples is the Storm tuple(s) that it is anchored to.


  • 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.


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.


  • 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.