Pattern to progressively show the data as they become available?

@orionlee thanks for the clarification. When you said “slow callback” I thought you meant that new data came in slowly, i.e. the callback would get called infrequently, not that the callback itself took a very long time to execute.

I think you’ll want to use the technique from this part of the docs:

https://docs.bokeh.org/en/latest/docs/user_guide/server/app.html#updating-from-unlocked-callbacks

which demonstrates how you can release the document locks and update from threads to avoid blocking the rest of the application.

What’d be the disadvantage if I create the data source and the glyphs only after the remote data is fetched?

Well for one thing, your “first callback” will have to do more/different work than all the subsequent invocations. IMO it’s preferable to set things up so that callbacks always do the same thing eery invocation. But it’s also just the usage scenario Bokeh is geared towards. Pretty much every interactive update example in the docs follows this pattern. It is tried and well-tested at this point.