Does Magento 2 have any systems or abstractions for managing state between the backend and the local storage on the frontend?
I'm working on porting a feature for restoring a user's abandoned cart via a redirect URL. In simplified form, a URL like
http://magento.example.com/restore/the/cart?identifier=sdkfjh48v237g5
will load a quote into the current user's cart based on an encoded quote_id in the identifier.
In Magento 1, this was relatively simple -- you just needed to update a user's Checkout session information with the correct quote ID. However, Magento 2 adds in the wrinkle of local storage.
The Magento 2 frontend javascript application(s?) seems to cache information in the browser's local storage databases. This includes information for building the mini-cart. What this means is even if an end-user-programmer (me) manages to change the session Session ID in the backend, the mini-cart will still display the old cart data.
The is just one example of an issue that stems from not knowing (or having?) a single API for managing application state across the backend and frontend. For my specific problem I've had my endpoint rendering an HTML page that includes some javascript the manually clears the local storage and then redirects the user to another page -- but this feels like a gross hack.
Is there an API in Magento 2 for managing data between the frontend and backend?
The there a standard way of signaling the entire system that, during backend processing, you've done something that makes it necessary it invalidate the frontend local storage cache?
Is there a technique for injecting a new RequireJS module into the page that runs automatically and can manipulate local storage before the rest of the javascript application(s?) accesses it?