We are currently working on a dApp that will store user profile data and let its users query them. We haven't been able to figure out how to do that efficiently so far, and therefore we need to ask the questions below:
1- We want to store status data such as a user being online/offline, available/unavailable. These will be updated constantly by the clients. There will also be data that won't get updated regularly such as gender, zodiac sign. Is using a blockchain for storing and querying both kinds of data feasible?
2- If the answer to the above Q1 is a no, is integrating with a storage blockchain (such as filecoin or arweave) a solution? We couldn't find anything wrt to using them as databases. Can we run queryable databases on such blockchains?
3- If the answer to Q2 is a no, are there any decentralized solutions that meet our requirements? We see OrbitDB and GUN are the most recommended solutions. Unfortunately we have the below concerns against using them:
OrbitDB has not received any commits for a long time. Also the docs say: NOTE! OrbitDB is alpha-stage software. It means OrbitDB hasn't been security audited and programming APIs and data formats can still change. We encourage you to reach out to the maintainers if you plan to use OrbitDB in mission critical systems.
From what we understand, GUN uploads the whole database to any client that queries it. Given the database in our case will be big, wouldn't it mean a very bad user experience?
4- If there aren't any applications that meet our expectations, what kind of approach should we be investigating? Maybe we could come up with an IPFS-based solution? If you can outline a general approach to this problem, we can work on details.