Join Nostr
2026-05-30 17:56:57 UTC
in reply to

Dikaios1517 on Nostr: What you are seeing here is two entirely different philosophies on how notes should ...

What you are seeing here is two entirely different philosophies on how notes should be fetched and served to the user.

Primal apps do not read from relays directly. Instead, they read only from Primal's caching server, which itself aggregates notes from known relays. If the caching server has not aggregated notes from the relays where a given note was written, then it won't show up in Primal until the next time the caching server aggregates from those relays, assuming it is able to connect to them. Relays go down from time to time, after all. Sometimes they just can't be connected to for various reasons. Primal's caching relay seems to make the best attempt to aggregate all notes from all known relays on a regular interval. I am not exactly sure what that interval is, but I would wager it checks more popular relays more often than others.

Amethyst, on the other hand, attempts to connect directly to the relays your follows have listed as their "write" relays in real time, and pull notes from there. As long as the connection can be established and the relay responds to the request, you should see notes from your follows very quickly after they are posted. However, I can tell you now that Amethyst only shows that 283 out of an attempted 626 connections were successful. Every one of those unsuccessful connection attempts may represent notes from users I follow that I am not seeing because Amethyst wasn't able to connect to the relay they posted their notes to. More likely, though, it just represents the fact that a lot of my follows have outdated relay lists with dead relays in them.

Other clients will operate with various other methods of fetching notes. For instance, I believe Wisp limits the number of relays it tries to connect to, optimizing for where there is overlap in relay lists of your follows. This gets the widest amount of notes with the least amount of connections, but may result in missing notes that only reside on relays Wisp didn't check.

This being the case, you are likely never going to see the same feed with exactly the same notes between any two clients unless you can talk all of the client devs into using the exact same method to fetch notes from relays. Even then, one client will still have a different feed if it wasn't able to connect to all the same relays that a different client was able to connect to 5 minutes prior.

The only other way that a uniform feed, where all the same notes were available from every client, would be for all relays to be a full mirror of one another. Then it wouldn't matter which relays a client was able to connect to, because connecting to any one of them would give them the same notes. This would be more similar to how all Bitcoin nodes remain in sync with all the same transactions in each block they store. That's not how relays are intended to work, though. We have a diversity of relays that function differently to allow for an incredible level of flexibility. Not to mention that it would very quickly be prohibitive to run a relay if every relay had to store all notes.