DEV Community

Cover image for WTF is Flow-Based Programming?
Allan MacGregor πŸ‡¨πŸ‡¦
Allan MacGregor πŸ‡¨πŸ‡¦

Posted on β€’ Originally published at allanmacgregor.com

2 1

WTF is Flow-Based Programming?

In computer programming, flow-based programming (FBP) is a programming paradigm that defines applications as networks of "black box" processes, which exchange data across predefined connections by message passing, where the connections are specified externally to the processes. These black box processes can be reconnected endlessly to form different applications without having to be changed internally. – Wikipedia

As a software developer, I'm always trying different programming languages, different styles and distinct paradigms: procedural, OOP, functional, and recently I got introduced to a curious and different approach for software design – Flow-Based Programming (FBP).

Flow-Base Programming defines an application as a network of independent process exchanging data through message passing. FBP is a data first approach, in which the application is viewed as a system of data pipelines being transformed by the process.

Data Processing Factories

Back in 2017 I had the opportunity to meet with J. Paul Morrison the inventor/discoverer behind FBP, and way that he explained the general idea behind FBP is to think about application as a data processing factory where data moves as part of a conveyor belt system and each process is an independent "black box" with one or more inputs and outputs.

Connections between process are predefined and externally to the process itself.

Key Concepts

  • Applications are broken down into repeatable individual components.
  • Connections between components are handled externally
  • Components are blackboxes to each other
  • Data-centric approach, think about the application as a series of transformations to the dat

Summary

Overall, the fact that FBP forces the idea of compartmentalized logic and a data first approach makes FBP an extremely powerful tool on your developer arsenal when correctly applied.

In subsequent articles will go into more detail of the advantages, disadvantages, and implementation options for you to start experimenting with Flow-Based Programming.

Hostinger image

Get n8n VPS hosting 3x cheaper than a cloud solution

Get fast, easy, secure n8n VPS hosting from $4.99/mo at Hostinger. Automate any workflow using a pre-installed n8n application and no-code customization.

Start now

Top comments (1)

Collapse
 
daveparr profile image
Dave Parr β€’

Would Aws step-functions be an implementation of this?

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

πŸ‘‹ Kindness is contagious

Please leave a ❀️ or a friendly comment on this post if you found it helpful!

Okay