Greetings, comrades.
I have thoroughly gone through both the RabbitMQ Elixir tutorials (RabbitMQ tutorial - "Hello world!" | RabbitMQ) and the book “Concurrent Data Processing in Elixir”. GenStage is very cool, Flow is very cool and Broadway is very cool.
I have a question for veterans who are well-experienced in both Flow and Broadway. Both are capable of constructing GenStage pipelines but, as far as I can tell, Flow allows for “longer” pipelines with more intricate branching. If using a message broker, it seems like a theoretically “ideal” architecture which would afford maximum future extensibility would be one where Broadway acts as a gateway for Flow.
My question, in short, would be “can Broadway construct pipelines of the same arbitrary length and complexity as Flow”? If not, then could it be said that it is theoretically ideal (when not certain of long-term project requirements) to always use Flow when using Broadway? As I understand, Broadway is concerned about the AMQP side of things, whereas Flow is more concerned with making GenStages do magic concurrency things.
Thanks!
P.S. Flow is really really fun. I am going to try to apply it to caint (Use streams · Issue #5 · peaceful-james/caint · GitHub)