3 ms·
I remember having read about Gun a few years ago [1] and there was a lot of (apparently) valid criticism. Do you know how much of that is still valid today? [1
by edjroot 9y ago
I remember having read about Gun a few years ago [1] and there was a lot of (apparently) valid criticism. Do you know how much of that is still valid today?
[1]: https://news.ycombinator.com/item?id=9076558 https://news.ycombinator.com/item?id=9076558
- marknadal 9y agoIf you intend to use GUN for banking or any globally consistent (CP) system, then yes. However, for everything else, the criticisms no longer apply. GUN is an CRDT based AP (highly-available, partition tolerant) strongly eventually consistent system, and therefore should not be used for banking-like systems. I hate the jargon so sorry to reply with it, but it allow for a quick/concise summary of GUN's tradeoffs. Some more resources below: - Cartoon explainer of academic stuff: https://gun.eco/distributed/matters.html https://gun.eco/distributed/matters.html - CAP Theorem tradeoffs: https://gun.eco/docs/CAP-Theorem https://gun.eco/docs/CAP-Theorem - How to implement the CRDT and how it solves for Split-Brain failures: https://gun.eco/docs/Conflict-Resolution-with-Guns https://gun.eco/docs/Conflict-Resolution-with-Guns There are a bunch of other resources, but I'm more than happy to reply/answer any specific questions if you have them. Cheers!
- edjroot 9y agoThat's exciting, thanks a lot! I was just considering using a graph database for a future side project. I also read Neo4j was an inspiration. Is there any "human-made" comparison between the two? All I could find was "A vs. B" comparison tables. Thanks again!
- marknadal 9y ago@edjroot I don't know if this is any different than what you already saw, but the biggest differences are: - Neo4j is Master-Slave, GUN is Master-Master (or Multi-Master, or Masterless). Basically, GUN is P2P/decentralized, Neo4j is centralized. - GUN has realtime updates/sync built in, Neo4j does not. - GUN has offline-first features, Neo4j does not. Other considerations: - Neo4j has its own query language, GUN has a FRP (Functional Reactive Programming) based JS API. - Neo4j is over a decade old, GUN since late 2014. - Neo4j is more monolithic, GUN is more microservice-y.