To anything more complex that still returns static data. Under the covers, Blaze uses Tracker, and Tracker always runs its enclosed code once (which is why Blaze renders “hello” above). However, if the enclosed code is not reactive, it won’t get run again.
We are using low level publish API to send just initial payload to client and that way it is kinda non-reactive on backend. But I am not sure how it is from server resource point of view.
If you still want subscription synchronized and only non-reactive UI so it does not change without user interaction, you can use Cursor.find with reactive:false on client, so it will not invalidate UI every time minimongo change.