Fork me on GitHub

does anyone know of a library for doing a sort of graph-based dependency management for async tasks?


I’m familiar with Muse, but it doesn’t quite solve the problem I’m dealing with which is more about making sure things happen in the right order


mattly: stuff like that is really, really important for experimentation. I've been thinking about async dataflow-y kinds of things that you could build on top of core.async, lots of possibilities. @bbloom may have some ideas, too


oh I hadn’t seen this


A good starting point would be thinking, how could you describe the dataflow in an application at the micro- and macro-level? What could you do in a lisp that golang's goroutines and channels cannot express? What abstractions should exist above goroutines?


actually I had seen plubming, but dismissed it for some reason


bbloom has been complaining about CSP for a little while, should be taken seriously.


We have done some work implementing applicative do syntax, that allows compose async operations


This is similar to something that muse does but defined as generic abstraction


yeah, Cats doesn’t really solve my problem either


I’m using it to good effect elsewhere


That is your problem? I have read "does anyone know of a library for doing a sort of graph-based dependency management for async tasks?" and I think that the upcoming applicative do syntax is just doing similar thing


Maybe I'm wrong but the alet macro is just does that, builds a dependency graph for the bindings and try to execute them in batches. Here some examples using it with core.async channels and manifold deferreds:


@niwinz: so it turns out alet is at least something that is in the right direction of what I’m trying to do, but it’s not in the published version of cats yet