✊🏿 Black Lives Matter. Please consider donating to Black Girls Code today.
🏦 Standard & Poor's chooses Dash Enterprise for ESG analysis. Learn why, sign up for the June 23 Webinar here!

Show and Tell - Server Side Caching

Hi Emil, this feature is awesome - thank you so much for creating it! I have a small question - why is the drawback of this approach: “you cannot use client side callbacks as they will only be able to access the key”.

Since the data is never transferred to the client, it cannot be used in a client side callback :slight_smile:

1 Like

Hi there

I’m interested in using your package as I need some server side caching of data and serverside rendering too. Do you have any plans of creating a version that can be installed with Anaconda? Thanks!

I don’t use conda myself, so i didn’t consider a conda release. Is there a reason why you can’t use pip?

How do you set the threshold when using DashProxy'? It doesn't like output_defaults. I'm using the transforms, when I use dash_extensions.enrich.Dashit complains about having multiple values for keyword argumenttransforms. I have many ServersideOutput`s so I prefer to define it globally instead of inside each callback.

If you use the DashProxy object, you can pass the keywords to the constructor of the transform itself,

app = DashProxy(transforms=[
    ServersideOutputTransform(backend=mybackend),  # enable use of ServersideOutput objects
1 Like

Hi @Emil !

Many thanks for your contributions. Im finding this really helpful.
Do you know how I could use a RedisCache for caching with dash-extensions? I am using the latest version of dash-extensions. Or should I go to dash-extensions==0.0.23 which allows any flask caching backend?



Thanks! I would recommend using the newest version. It should be realatively easy to implement a Redis binding. Here is the file system implementation,

Hi @Emil ,

Thanks for the tip! Ill try implementing this :slight_smile: and is it works well, i might consider adding it in a PR request

I added a simple Redis binding in the latest release. You can try startnummer with that one :slight_smile:

1 Like

Hey, Love this concept, Ive gone to test it out and I get a problem due to my main callback also needing a daq.BooleanSwitch however this cant be pickled. Any advice on how to get around this?

Can you post a MWE demonstrating the issue? Why can’t it be pickled?

Update: I found the issue, it was that the callback I use to cache data also output the required layout (which contained the BooleanSwitch Method) after splitting out the data caching and layout selections this now works :slight_smile:

Strange I cant seem to reproduce it in a MWE, but the actual error is “_pickle.PicklingError: Can’t pickle <class ‘BooleanSwitch’>: attribute lookup BooleanSwitch on builtins failed” if that helps?