What is the benefit of bypassing the caching behavior of subscriptions when subscribing to a flow?
I presume that it means that the component will only render when a flow is recalculated. It's not super obvious from the flow docs.
Sorry, that answer didn't really explain it, let me think...
Calling (subscribe [:flow {:id 1}]) does give you a reagent/reaction, which is also how a regular subscription works. Under the hood, reagent does some caching, to make sure your component only renders when that reaction's value changes.
But regular subscriptions have extra machinery to handle creation-on-demand, lifecycle management, deduplication, derived values, etc... These can be hard to understand and control.
The idea of flows is that you define all that behavior explicitly. A flow "caches" its value by storing it in app-db. You control when that value can change, and when it gets cleaned up, using :live, :inputs and :cleanup.
You might find more of an answer in the advanced doc - https://day8.github.io/re-frame/flows-advanced-topics/#caching
Thanks I'll reread the caching section.