asystant.build

attach-module

(attach-module {:keys [edges]} initialisation-params)
Returns a reducing function that will take a collection of shutdown callbacks and a module
and will connect that module to a functional system in the same shape of the given system.
Returns a new collection of shutdown callbacks.

build!

(build! sysdef initialisation-params)
Take a graph system with the structure {:nodes #{{:pipe pipe-fn}...}
                                        :edges #{{:from from-node :to to-node}...}}
where the pipe-fn is a function (fn [initialisation-params]
                                  (fn [in-ch out-ch] shutdown-callback))
Return a function that will invoke all of the shutdown-callbacks returned from the modules'
pipe-fns

build2!

(build2! sysdef init-p)

edge->buffer

(edge->buffer edge)

edge->transform

(edge->transform edge)

in-chan

(in-chan edge-chans module)

make-connections

(make-connections edge-chans)

make-edge-chans

(make-edge-chans edges)
Take a set of edges and associate a channel to each one

out-chan

(out-chan edge-chans module)
Create a channel that will emit the correct topics to all channels that come from the given module