Graphs are hard within a decentralized network because you never know when one vertex is going to simply up and disappear, or how to manage the ownership of said vertex.
For instance, User A may like User B’s post, but then said post may be deleted and User A’s “like entry” points to nowhere. There’s also the fact that it’s impossible to scrub every single user’s “like entries” to figure out the count on a particular post. It’s also impossible for User B to hold all the likes in case they want to refuse User A from modifying their entry and unliking something…
As far as I can understand Radiks is more of a centralized cache of decentralized data. As far as I know, when data is stored, it is stored on both the correct user’s Gaia as well as within Radiks for quick fetching (and so an actual graph can be made easily without having to reconstruct it whenever the app boots up on the user-end). Radiks can then (I’m not sure if this happens, but in theory it could) verify every so often that the data cached matches up with data stored on Gaia so the user still owns their data, etc.
I don’t think there’s any better way than this, especially due to the amount of race conditions that could occur and throughput needed if every Gaia had a datastore backend (though I working on something akin to that with Hestia, I’m still figuring things out).
I may have totally missed the discussion, but Radiks is probably what you are looking for. Let me know if you have any questions on what I said.