As an example, if you have many web workers, each can write their current state or use transactions to take items from a queue, and a central UI can just query the single IndexedDB.
I use both Comlink and Dexie, for different purposes.
Comlink gives a seamless abstraction over the worker "bridge", and Dexie does the same for the complex IDB API.
I have run into performance issues with Dexie when querying lots of objects (~1M) from a collection, but it looks like it's more of a limitation on IndexedDB itself.
It's the same for me!
sessionStorage is handy as well for things like autocomplete result caching.
Was wondering about adoption in usage, not implementation.
Used Comlink for a small toy project and made it really easy with very little change to move an expensive file merge off the main thread and do it in the background. Next time I use WebWorkers I'll probably use Comlink.
Interesting. Question due to unfamiliarity - how reliable are Web Workers? If the main UI thread is up and running, is it safe to assume that any created workers are also running and able to receive/send messages?
IndexedDB can be shared amongst Web Workers for the same origin (localStorage cannot).
https://dexie.org is a nice IndexedDB library.
As an example, if you have many web workers, each can write their current state or use transactions to take items from a queue, and a central UI can just query the single IndexedDB.