ryrob.es

work / 2023

Flowmaps

A map-based Clojure DSL for core.async flows, with a time-scrubbing debugger UI.

Extracted from Rabbit so the flow runner could live without the whole IDE. "I wanted to write async flows without a blindfold on." Subflows as functions, REST endpoints from named entry/exit points, :view and :speak on blocks. ~139 stars.

Timeline

  1. Fell in love with FBP before it had a name SQL Server 2000 DTS — an SSIS ancestor. Boxes and lines were already the way I think.
  2. Flowmaps, named Clojure FBP micro-framework. Link fns; core.async does the heavy lifting. Conditionals, loops, the maps must flow.
  3. Flowmaps Assemble, visualize, interact with complex core.async flows. The maps must flow.
  4. Scrubbable time Taking more core.async blindfolds off. If you have a process in time, you should be able to scrub it.
  5. A flow is a REST endpoint 1. Build the async flow. 2. Name entry/exit. 3. It's an HTTP endpoint. 4. Hit it and watch it run. Roads?
  6. Subflows Multi-in, multi-out, used like a block function. Proper puzzle pieces.

Sources: timeline.yaml