Ok, keeping the feed consistency between the outbox model (only downloading certain event kinds from certain relays based on the author's lists) + maintaining EOSE's for each subscription in each separate relay so we don't download things twice + rotating the filter within each relay because either the follow list or the kind list is too big for that particular relay + reconnecting to AUTH as separate users that are logged into the app + packing as much into a single subscription as possible because many relays limit the number of subscriptions is driving me slighly crazy.
Nostr is easy only in the first 10 days of developing an app.
Yep, doing nostr right is hard
I tried it and came to conclusion that I am too dumb to do that well and switched to a background service that fetches stuff properly at it's own pace and UI reading from local db. At least there was no tension btw UI latency and relay overload.
Yeah, but there is no way for the background service to know what the user is looking at, there is no way to prioritize them and it might take forever to load. :(
Well ideally user wouldn't see anything that requires further networking. That's not gonna work with search and global ofc, but those are kind of rare cases. Damus is trying to perfect this approach so hopefully we'll have something to learn from there
One of the reasons I went for relay development instead of client app 😀
have you passed the I can't store all these indexes in memory anymore stage? :)
That's one long sentance St Paul
Right, now make all this simultaneously for two feeds and merge them into one ⚰️
Not just two, all 15 feeds run in parallel on Amethyst. We just don't merge them in the same UI feed.
It's just signed JSON until it's not. 😅