Judging just from the readme, this is exactly how @welshman/app works. I found indexeddb way too slow to use interactively, so I hydrate once at page load and batch writes to it. I then use "repository" to store all my events, and "relay" to wrap in a "executor target" (see @welshman/net) so that I can use it like a normal relay. I then have some utilities in @welshman/store that wrap the repository in svelte stores so that I can reactively update my app. It works really well.