self-modifying dataflow in Ruby

This project is maintained by jessitron


Aqueductron is about turning data into information, one piece at a time.

Each piece in a duct can filter data, change it, expand it, or split it into multiple flows. At the end of each duct is a collector, which summarizes or accumulates the data at the end.

The ducts are functional and immutable, persistent in the functional sense.

Push data through the pipe, and you get back one or many results that the collectors have gathered for you.

Aqueductron uses an iteratee style of data processing, so that the processing of each message returns a function of what to do with the next message. This allows the ducts to alter themselves in response to the data flowing through them.

For example, we can create new ducts as we go along or change the function of a piece as data comes in.