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.

Reply to this note

Please Login to reply.

Discussion

Agreed, it's madness

Yep, doing nostr right is hard

keep it up! :)

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

it is tricky

😅

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. 😅

👀