We're currently seeing these use cases:
- Autonomous IoT on mission critical hardware. (We rolled out a pilot with a government for this)
- Distributed machine learning. (https://github.com/cstefanache/cstefanache.github.io/blob/ma...)
- Games (built with React! https://github.com/PsychoLlama/connect-four ) and realtime GPS tracking (https://youtu.be/7ALHtbC9aOM).
- And we're chatting with a bunch of companies doing some really cool stuff: robotic manufacturing, ethereum/blockchain 'lightning network' state channels, realtime decision engine / predictive fraud detection, federated home servers / DNS on top of gun, multiplayer VR, and more.
You should NOT use gun for any globally/strongly consistent data, like bank account balances and such.
Ever since we introduced our Security, Encryption, Authorization framework, people are starting to build more user facing apps, like P2P crypto social networks, and collaborative tools.
Which leads to.... if you cryptographically sign the data, you can trust that the user's copy of the data! It is very untraditional, but that is what we are trying to push/encourage. We even produced an entire animated explainer series, 1 minute each, to explain the concepts: http://gun.js.org/explainers/data/security.html !
REST is a very good model, I actually designed gun around the best parts of it - GET and PATCH (although for simplicity it is just called PUT). Graphs are a stateless representation of the data, which when statefully connected (via WebSockets or something), allow us to efficiently transfer only the delta/diffs and maintain sync. While you can run a traditional server with gun as an endpoint for validation, it is actually possible to do validation client side (as long as all clients are running the same rules) as well.