Agree, we don't use the render path either. Though I lazy load/compute the additional data structure (like the text parsing) only when the event is being placed in the same page that will be rendered. And those can be discarded individually by the GC after the event is old/not used anymore. Same for decryptions. Don't get me wrong. I think notedeck is fast. My only concern is "at what cost" (increased disk usage, increased memory usage). Exactly by how much is very unclear right now. Keep pushing.

Replies (2)

> Though I lazy load/compute the additional data structure (like the text parsing) only when the event is being placed in the same page that will be rendered damus ios works the same way, but it is really annoying, leading to needing to recalculate the view after the parsing was done, which was janky. Now i don’t have to worry about it. If it’s in the db then it has everything it needs to render. It definitely uses more disk space, but i just need to optimize the db on startup by removing old notes not in web of trust. I think nostur does something like this as well. “Increased memory usage” is kind of misleading. It uses a lot of memory in the sense the page cache uses a lot of memory, but it does that anyway when reading from disk from anywhere. you can’t compare heap memory to a pagecache-backed virtual memory. They are not really the same thing. it’s more accurate to say it uses a small amount of fixed memory for the subscription queues and thats about it.
There is middle ground too, where nostrdb is used to cache certain kinds (vs everything) and the local relay is used for certain other kinds (vs always) The main issue with the local relay is that you can't count on it so you need a database anyway