> 2. Database is solved. Users will choose their relays. You don't need to put anything up. There is no need to spend hours specing out your database tables, mapping them into objects, and then making all the data access layers. No liabilities, no operational costs, no risks, and, more importantly, no long-term commitment to secure and keep the data available to your users.
It's bizarre how this implementation detail occupies the mind of nostr "architects" out there. Clients should cache things (and are in the case of local relay) but in the end that's an implementation detail. Client, cache, local relay, relay are all just terms for "peers" and any peer should be able to talk to any other peer.
Yes even relays should talk to one another and already are in the case of "boostr". Aren't they.
Your idiosyncratic terminology isn't helping things.