Fancy DSL for Storm - The distributed and fault-tolerant realtime computation system used at Twitter.
Ruby Fancy Shell
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin
examples
lib
tests
.gitignore
LICENSE
README.md
hurricane.fancypack

README.md

Hurricane

Fancy DSL for Storm - The distributed and fault-tolerant realtime computation system used at Twitter

Hurricane is a Fancy DSL and library for writing Storm Topologies (including bolts, spouts and topology definitions) completely in Fancy.

It even has support for using standard Fancy Blocks (closures / anonymous functions) as bolts or spouts.

Here's the DoubleAndTripleBolt from Storm's wiki implemented with Hurricane:

class DoubleAndTripleBolt : Storm Bolt {
  input:  { value }
  output: { double tripple }
  ack_on_success!

  def process {
    output: (value * 2, value * 3)
  }
}

Here's the ExclamationBolt:

class ExclamationBolt : Storm Bolt {
  input:  { word }
  output: { exclamation_word }
  ack_on_success!
  anchor_tuples!

  def process {
    output: "#{word}!!!"
  }
}

Here's the ExclamationBolt as a BlockBolt using a partial Block:

ExclamationBolt = BlockBolt new: @{ ++ "!!!" }

Have a look at the examples/ directory for more complete examples of Storm Topologies written with Hurricane.