I am very confused on what you are calling sync. Sync I/O is not the same as promises/futures that you mentioned before. Regarless, any Lmdb-based citrine-like option can reach similar performance levels as an embed lmdb option because the cost of communication is negligible compared to the I/O.

Replies (3)

nostr query is as fast as an in memory btree lookup. Out of process relay will never compare, especially with the serialization overhead
Sync: blocking, async non-blocking. I'm interested in this for a specific API design. Communicating with other Android apps is necessarily async. But I'll think about it. I see the advantage of using a device relay but I'm unsure of the UX. Are you going to ask your users to download and continually run citrine in order to use your app? It will also depend on the overlap - for Amethyst and Zapstore it's probably none