

Flow-Based Programming for Node.js - bevenky
http://noflojs.org/

======
bergie
Hi! Author of NoFlo here. This has been sort of a longtime hobby project for
me, since I read J. Paul Morrison's FBP book:
<http://www.jpaulmorrison.com/fbp/#book>

The UI side of things is still in very early stages, but the engine itself is
quite solid. We've been using it for various Extract-Transform-Load tasks,
like report generation, as explained in
[http://bergie.iki.fi/blog/business_analytics_with_couchdb_an...](http://bergie.iki.fi/blog/business_analytics_with_couchdb_and_noflo/)

At Nemein we also have been using it for routing messages between different
message queues. This is useful when you want to apply some business rules on
them.

For example, in one of the web apps I've been writing, the ORM sends a message
on each I/O operation to a queue. NoFlo listens to the queue and routes the
messages to correct "business logic queue". This way the ORM can focus on
being an ORM, and our workflows can be kept elsewhere.

~~~
drudru11
Great stuff. Too often people don't give attribution to past projects. More
often than not, they ignore them and reinvent them poorly. You are doing a
great thing by bringing a time tested idea back.

I'm a big fan of _true_ message passing and will check this out.

thanks!

------
rybesh
I'm an occasional contributor to NoFlo. I find it very useful for creating NLP
pipelines; i.e. doing all the tedious data munging that is necessary to turn,
say, a directory full of OCRd PDFs into sentence-tokenized plain text.

~~~
bergie
Thanks! Your contributions have been very helpful. And it is interesting to
hear what you're actually using it for :-)

------
SudarshanP
Are yahoo pipes flow based programs? Are there fundamental differences in the
way the piping happens in noflo and other flow based languages?

Then we have ROS... XSLT pipelines and so on. There is something really
beautiful about looking at your code as plumbing :)

------
rexreed
Would love to see examples of this working, especially in higher scale
production systems. Are their pointers to good examples?

~~~
bergie
Unfortunately most of the real-life NoFlo stuff we've done is handling
business logic in client projects, and so is quite sensitive.

One older example that is open source is
[http://bergie.iki.fi/blog/business_analytics_with_couchdb_an...](http://bergie.iki.fi/blog/business_analytics_with_couchdb_and_noflo/)

~~~
bergie
Here is the NoFlo graph I used to migrate my blog from a JSON-LD dump into
Jekyll:

<https://gist.github.com/3105838>

------
chubot
This looks cool, but are there any docs? I don't see any linked from the page.

~~~
bergie
The README should be a good start: <https://github.com/bergie/noflo#readme>

I probably should migrate this stuff to the website...

------
carsongross
Good to see the node.js community following the traditional pattern of
technologies:

1) Discover some previously known idea

2) Create new implementation with glaring deficiencies when compared to the
original implementations (which are totally ignored for the most part)

3) Hype

4) Create "Visual Programming" environments so "Anyone can write code in X!"
<\-- you are here

One step closer to:

5) There is nothing new under the sun.

~~~
bergie
Well, when you bring back a programming concept invented in the 70s, there can
hardly be much new about it. But at least I'm being quite honest about this on
the NoFlo website:

 _FBP itself is not a new idea: it comes from a term IBM used in the 70s to
define the concepts of more manageable business workflows. NoFlo, however,
refreshes these concepts and brings them to Node.js applications._

When I started with NoFlo there were open source implementations of FBP for
Java and C#, but I wanted something a bit more dynamic.

~~~
gruseom
I commend you for reviving and implementing a past good idea. The 60s and 70s
are a treasure trove of visionary ideas that for whatever reasons didn't win
big at the time. Some of them retain high potential. We should spend more time
studying these things and less time chaotically generating superficial goop;
novelty is not innovation.

That being said, I have had trouble figuring out what FBP is. I browsed
through Morrison's book and just saw a bunch of box-and-line diagrams that my
prejudices cause me to dismiss. I looked for good online resources about it
and didn't find any. He doesn't seem to be the best articulator of his work.
But I'm interested and open and want to get it. What do you recommend?

