Si, como no.
La version que yo uso es esta:
dash-extensions==0.0.44
tenes que importar la biblioteca que ademas del server side callback:
from dash_extensions.enrich import DashProxy, Output, Input, Trigger,ServersideOutputTransform, ServersideOutput, State
trae una distinta forma de “app =” en lugar del tradicional:
app = dash.Dash(__name__)
debes usar:
app = DashProxy(__name__, transforms=[ServersideOutputTransform()])
Esto no altera en nada la ejecucion del codigo que estes usando.
Agregar un dcc.Store que guardara la informacion a intercambiar entre los callback del lado del servidor:
dcc.Store(id='last_ticker', storage_type='local')
El decorador del calback va a enviar la informacion al output que se escribe de esta manera:
@app.callback(ServersideOutput('last_ticker', 'data'),
Input('input-1-submit', 'value')
Como podras ver, los inputs que alimenten al output van a ser normales.
Cuando utilizas la informacion guardada en el dcc.Store como input de otro callback lo haces en forma habitual:
Input('last_ticker', 'data')
Adicionalmente no es necesario transformar la informacion a json.
Con esto deberia funcionar, de todas formas @ Emil estuvo haciendo modificaciones hace poco para dividir todos los componentes que tiene en el mismo paquete (enrichments), Dash - How to implement chunked loading of custom components, podes visitar su pagina para ver si existen otras modificaciones, pero en mi app esta funcionando con esta version.
Saludos,