TODO List

Flow
* use overload operators to create chains ('=>' or maybe '|' or '+')
* a threshold parameter that controls how many items can be passed, at most,
  in a single run
* start messing with parallel runs, via fork or threads
* method output() receives a positive integer, and returns at most that much
  elements

Chain
* in a chain, the output from the previous node should be the same object in
  memory as the input of the next node
* the chain's input queue must be the same object as the first link's input
  queue, and conversely, the last link's output queue must be the same object
  as the chain's output queue

Chain
* in a chain, the output from the previous node should be the same object in
  memory as the input of the next node
* the chain's input queue must be the same object as the first link's input
  queue, and conversely, the last link's output queue must be the same object
  as the chain's output queue

Nodes
* char encoding node (there is a first attempt there already, needs to work
  on it and write tests for it)
* an OCR decoding module (any OCR perl modules out-there?)
* a node that runs an external command (system(), or IPC::Run, or...) and maps
  stdin, stdout, stderr respectively to input, output and error queues
* split and join nodes, to allow flows to follow multiple paths

Other
* create a DataFlow::Maker class that will read JSON/YAML/something config
  files and create DataFlows out of them

