I needed a framework that let me easily translate the block schemes I drew on paper into programs. The main aim was building a framework which allowed experimentation while forcing the system designer to think in terms of interfaces and abstractions. Initially this framework has been developed to extend Dovado.
WhatI developed a flow-based programming framework. The flows are described declaratively and steps are isolated from one another. Steps are single input single output processing units which are declaratively linked together.
HowThe whole framework is implemented in python and uses type-hints to validate the flow (i.e. to check interface compatibility). Data is routed with single dispatching.