Flow Based Programming

Flow-based programming (FBP) is een programmeer methode waarmee je applicaties visueel als netwerken van "black box" processen kan samenstellen en data uitgewisseld wordt via voorgedefinieerde verbindingen. Deze verbindingen zijn buiten de processen vastgelegd en hebben altijd een richting.

Data uitwisseling gaat via "payloads". Dit zijn kleine informatie pakketjes bestaande uit key-value properties.

Een process binnen een Flow kan iets heel kleins zijn zoals een proces die een eenvoudige if-then-else uitvoert op basis van parameters en de payload, maar ook processen die http endpoints vertegenwoordigen of html genereren mbv templates. Maar het kan ook een getraind model tbv machine learning zijn. 

In een architectuur waarin je processen beschikbaar maakt via plugins, heb je zowel herbruikbaarheid als flexibiliteit.

In principe staat Flow-based-programming los van het gebruikte platform. Het kan dus overal toegepast worden: frontend, backend tbv website/webapp, microservice, mobile app etc. Je kunt er ook andere systemen mee aan elkaar "knopen" zodat het FBP systeem bijvoorbeeld fungeert als een Enterprise Service Bus, al zal het dan uiteraard gecombineerd moet worden met meer geavanceerde Queueing technieken maar ook logging/tracing tbv monitoring en authenticatie/authorisatie.

Waarom Flow-based-programming?

Met Flow-based-programming verhoog je de productiviteit aanzienlijk zonder verlies aan flexibiliteit en kwaliteit. En omdat je visueel werkt is het gevolg dat je geen of minder code nodig hebt en dus de brug verkleint tussen programmeurs en de rest van de wereld (klant, project manager, informatie analist, testers, designers, architect etc). 

Met Flow-based-programming programmeer je op een natuurlijke manier.