Your SlideShare is downloading. ×
  • Like
NoFlo - Flow-Based Programming for Node.js
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.


Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

NoFlo - Flow-Based Programming for Node.js



Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads


Total Views
On SlideShare
From Embeds
Number of Embeds



Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

    No notes for slide


  • 1. Flow-Based Programming for Node.js
  • 2. @bergie
  • 3. Call-Return
  • 4. Continuation-Passing Style
  • 5. JavaScript, the Ugly Parts
  • 6. Promises
  • 7. Hooks
  • 8. How to make your code manageable?
  • 9. Clean separation of concerns
  • 10. Visualized connections between components
  • 11. Flow-based programming“Flow-based programming (FBP) is a programmingparadigm that defines applications as networks of blackbox processes, which exchange data across predefinedconnections by message passing, where the connectionsare specified externally to the processes. These blackbox processes can be reconnected endlessly to formdifferent applications without having to be changedinternally. FBP is thus naturally component-oriented.” - Wikipedia
  • 12. Flow-based programming
  • 13. “Flow-Based Programming was invented byJohn Paul Morrison [from IBM] in the early1970s, and an early implementation of thistechnology has been in continuous productionuse at a major Canadian bank since that time.” - Wikipedia
  • 14. Softwarearcheology?
  • 15. “This is the Unix philosophy: Write programsthat do one thing and do it well. Writeprograms to work together. Write programsto handle text streams, because that is auniversal interface.” - Doug McIlroy
  • 16. “I thought of objects being like biologicalcells and/or individual computers on anetwork, only able to communicate withmessages (so messaging came at the verybeginning -- it took a while to see how to domessaging in a programming languageefficiently enough to be useful).” - Alan Kay
  • 17. send options a, u & x to command ps,send option firefox to command grep direct standard output of ps to grep
  • 18. NoFlo components
  • 19. Using NoFlo in your Node.js app
  • 20. Using NoFlo in your Node.js app
  • 21. DSL for specifying flows
  • 22. DSL for specifying flowssend string package.json to source port of Read send output of Read to Split (by lines) send output of Split to Count send output of Count to Display
  • 23. NoFlo shell
  • 24. NoFlo in integration email External partners CouchDB + CouchApp Project NoFloController External systems
  • 25. NoFlo in
  • 26. NoFlo in real world
  • 27. What happens next?● Web-based drawing ● support● Web-based ● Component loading monitoring & debug from NPM
  • 28. Flow-Based Programming, the book
  • 29. Flow-Based Programming for
  • 30. Screenshot:, couple of weeks ago