Have both. They solve their own use cases.
When you want to search the world’s largest library that’s the tradeoff you are making.
But once you find it, or get a book from a friend for example, you put it in your indexedDB database and congrats.
I personally envision the hierarchy ad follows
- Indexers, that have almost everything. They are the Google of Nostr. People push their events here and others find them.
- Large relays, which serve large communities. Think Nostr.land, Damus, etc. These are hubs for retrieving content in bulk.
- Community relays. These can be self-hosted or hosted in the cloud. People push from here to large relays and from large relays to here, what they care about.
- Local cache. This is the user’s own space and that is it.
The ideal relays would be:
- indexer: custom software
- large relays: strfry on medium end, NFDB and possible other options at large end
- community relays: could be a mix of strfry, NFDB, realy, nostrdb-based
- local relays: nostrdb, indexedDB-based