Changed some things about flows:
• you can subscribe to a flow with the regular (subscribe [:flow {:id :some-id})
◦ flows have their own lifecycle. they're not cached like regular subscriptions.
• :inputs and :live-inputs are top-level keys, both optional.
• :output and :live? take a single arg - a map of resolved inputs.
◦ If there are no inputs (or live-inputs), they get passed app-db instead.
• added some warnings against stale & cyclic dependencies
• a flow id can be any value, not just a keyword
• fixed some edge cases
• tried putting flows in app-db, but it seems problematic. reverted.
• simplified the live-docs code & explanations
The first point is definitely a breaking change. :flow is not a name that's unique enough.
Perhaps the :flow ID can be configurable? E.g. (rf/enable-flows! {:subscription-id :flow}).
Yeah, but from the practical standpoint IMO it makes more sense.
core is already there, you can't get rid of it. Might as well use it to its full extent. and ::rf/flow is shorter than :re-frame/flow. :)