antonmi
Dear alchemists!
I wanna start a topic about Flowex library here!
Flowex is a Flow-Based Programming framework for Elixir.
If you have never heard about the library I would recommend you read the library Readme and this post on Medium.
If you are familiar with Flowex check the latest version, the library has been improved significantly since the first release.
Recently I’ve published post Flow-Based REST API with Flowex and Plug which has an example of designing approach with FBP paradigm and benchmarks that shed some light on Elixir GenStage performance.
So, check it out, share your thoughts and ask questions.
Trending in Announcing
Hey everyone!
Req is an HTTP client for Elixir that I’ve been working on for quite some time. There is already a lot of HTTP clients out...
New
Samly can be used to enable SAML 2.0 Single Sign On in a Plug/Phoenix application.
This library uses Erlang esaml to provide
plug enabl...
New
Flop is an Elixir library that applies filtering, ordering and pagination parameters to your Ecto queries.
offset-based pagination with...
New
Hobbes is a low-level distributed database for the Elixir programming language.
Hobbes provides a simple, safe, and scalable storage lay...
New
Hi there! We created Gust: A task orchestrator inspired by Airflow.
For those who have never heard about Aiflow, it’s a Python-based wor...
New
Hi all!
I want to present a small library which provides a mix task for generating an Entity-Relationship Diagram for Ecto schemas.
You...
New
Hello
Published a new library - ProcessHub!
ProcessHub is a library designed to manage process distribution within the Elixir cluster. ...
New
Other Trending Topics
I am happy to introduce the very α version of the new programming language compiled to BEAM.
Welcome Cure.
It has literally three kille...
New
I am seeing a lot of aplications of Argumentum ad Vericundiam in software discussions. They do link some piece of writing and point us to...
New
This showed up on my feed.. anyone heard of it? Just hype?
Ox Alpha is a reasoning model designed for coding, sustained ag...
New
It’s not that it’s vocabulary is too advanced. It’s something worse.
I get lost trying to follow even a paragraph written by Claude. It’...
New
Today we’re releasing Oban for Python. Not an Oban client in Python. Not a pythonx wrapper embedded in Elixir. Nope, it’s a fully operati...
New
@hugobarauna, Dr. Dimitrios Koutmos (my brother) and I (Alex Koutmos) have been hard at work on writing a book on how you can use Elixir ...
New
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #elixirconf
- #channels
- #exunit
- #discussion
- #code-sync
- #podcasts
- #javascript
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #blog-post
- #elixirconf-us
- #elixir-ls
- #ai
- #phoenix_html
- #iex
- #graphql
- #genstage
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #hex
- #security
- #metaprogramming










Showing Posts 15 to 6- Show Best Posts
- Show All (oldest first)
- Show All (newest first)
antonmi
Hi @synthslave!
Thanks for the information.
Yeap, know about J Paul Morrison and have read his excellent book “Flow-Based Programming”, but haven’t communicated with him.
synthslave
Hi @antonmi !
Thanks for elaborating on the music analogy. That helps put it into more context. Just as an FYI, here are two technologies that actually synchronize the notes for different instruments that are very commonplace in music production/performance:
MIDI Clock
Ableton Link
As an FYI, after learning of Flowex and FBP, I actually reached out to J Paul Morrison and he was very kind and appreciative. Not sure if you ever communicated with him but he’s very cool. Am excited to learn/practice Flowex/FBP.
@dom
Here’s a video from Paul Morrison himself where he explains the origins of FBP:
And for more detailed explanation, here’s his website: http://www.jpaulmorrison.com/fbp/
dom
What’s the appeal of having a different process do each step, rather than have a pool of processes that execute all the steps in sequence? I had a look through the examples, but I didn’t find a clear answer.
antonmi
Hi, @synthslave!
Your analogy is very interesting. I can imagine two ways of using Flowex that can be interpreted in musician way):
It sounds cool, but the main problem in both cases - how to synchronize all the instruments. BEAM VM under the hood does not evaluate all the processes in parallel, but frequently switch between them. You can’t be sure that all the notes are played simultaniously. So, in both cases, you need a mechanism of synchronization.
The good news is that a real program is not a music and it is ok if some parts are not synced well.
And I agree with you that FBP is very convienient approach to right software.
Thank you!
synthslave
@antonmi
Hello Anton,
I just found out about Flowex and FBP from one of your Youtube videos that led me to your thread on this forum.
I am new to Elixir and programming in general but this idea of FBP sounds very exciting to me as I am a musician so am curious if I am understanding the core foundation of what Flowex/FBP offers?
Would the following example of writing a song be a good analogy?
Instead of focusing on writing one melody on a piano and ONLY on that melody sequentially, Flowex allows a programmer to have the freedom to write not only the piano but the guitar parts, then perhaps the drums, then back to the piano, then the drums, simultaneously?
If so, I will be your most ardent fan and tester as frankly, I’ve found most languages extremely painful and uninspiring (for me at least) with exception of Elixir (obviously) so FBP seems much more suited to my brain where I’m accustomed to jamming on different aspects of a song/project to complete the required goal.
Thanks in advance
antonmi
You are welcome!
Thank you for the issue which makes Flowex better!
ikim
@antonmi
Yes, it works as I expected. I appreciate your quick help!!!
ikim.
antonmi
@ikim
I’ve changed starting strategy for pipeline.
Please, try the new 0.5.2 version of the library.
ikim
Thank you @antonmi
I created an issue in the github.
antonmi
Hi @ikim
Seems like you kill the supervisor of the pipeline. This is very unexpected case. Current implemetation start supervisor with producer only and then adds stages one by one and subscribe to each other. So it will fail to restart all the stages after supervisor crash.
But I think this can be changed. May I ask you to create an issue with the example?
Thanks!