flagsmith-js-client icon indicating copy to clipboard operation
flagsmith-js-client copied to clipboard

Caching with multiple instance doesn't work

Open ldemesla opened this issue 1 year ago • 9 comments

Hey,

I'm using Flagsmith with two instances, created using the createFlagsmithContext. I have noticed that caching is not working properly when you are running two instances. Indeed, if you look at the local storage you will see that the values from both instance are cached against the same key and are overriding each other.

Reproduction case:

communitiesFlag.init({
  environmentID: 'env-1',
  api: FLAGSMITH_API,
  cacheFlags: true,
  cacheOptions: {
    skipAPI: true,
    ttl: 1000 * 60 * 5,
  },
});

usersFlags.init({
  environmentID: 'env-2',
  api: FLAGSMITH_API,
  cacheFlags: true,
  cacheOptions: {
    skipAPI: true,
    ttl: 1000 * 60 * 5,
  },
});

usersFlags.identify('1')
communitiesFlag.identify('2')

Check in the local storage of your browser and you will see that only one of the identity has been cached

ldemesla avatar Nov 21 '23 15:11 ldemesla

Thanks for this @ldemesla, we will look into it and get back to you as soon as possible.

matthewelwell avatar Nov 21 '23 15:11 matthewelwell

Thank you @ldemesla! we will soon start working on this issue, and keep you posted about the progress.

novakzaballa avatar Nov 21 '23 17:11 novakzaballa

@kyle-ssg @novakzaballa what's the status here?

matthewelwell avatar Apr 15 '24 15:04 matthewelwell

Hi @ldemesla, just to leave an update and let you know that we are considering if this use case would be solved by the implementation of contexts which is planned to be delivered by the second semester of this year.

novakzaballa avatar Apr 24 '24 15:04 novakzaballa

Hi @ldemesla we will start working on the contexts next week, could you please explain the use case for this request? so we can know this is a good candidate for solving this with the implementation of the contexts

novakzaballa avatar Jun 06 '24 13:06 novakzaballa

Also, we don't provide the function createFlagsmithContext, in the javascript client, Could you please share where you found the code for using createFlagsmithContext?

novakzaballa avatar Jun 06 '24 16:06 novakzaballa

@novakzaballa I am interested in solving the problem, my use case is the use of cacheFlags in a microfrontend architecture where each project can have its own instance of flagsmith but they all share the same localStorage

oluizcarvalho avatar Sep 05 '24 16:09 oluizcarvalho

Hi @oluizcarvalho, that makes total sense to me. If you'd like to submit a PR for this, then we'd love to receive it!

matthewelwell avatar Sep 05 '24 16:09 matthewelwell

@matthewelwell PR open! 🚀 #246

oluizcarvalho avatar Sep 05 '24 19:09 oluizcarvalho

This has been resolved in version 6.0.0, thanks so much @oluizcarvalho

kyle-ssg avatar Oct 09 '24 15:10 kyle-ssg