4 ms·
Disclosure: I am the author of a competing MIT/ZLIB/Apache2 system. > "There's still no better way in 2017", RethinkDB's Horizon ( http://horizon.io/ http://ho
by marknadal 9y ago
Disclosure: I am the author of a competing MIT/ZLIB/Apache2 system.
> "There's still no better way in 2017", RethinkDB's Horizon ( http://horizon.io/ http://horizon.io/ ) and our tool, GUN ( https://github.com/amark/gun https://github.com/amark/gun ), seriously contest that fact.
For instance,
- You get realtime data sync out of the box with an infrastructure you control and do not have to manage. See our demoes that survive Split Brain failures correctly, compare this with the delicacy needed of configuring MongoDB clusters properly, or the overhead of using Galaxy.
- You also get realtime GraphQL subscriptions for free, via https://github.com/brysgo/graphql-gun https://github.com/brysgo/graphql-gun .
- You get graph data structures that support circular references in plain old JavaScript objects, or use tables or key/value pairs, or full documents! See https://github.com/amark/gun/wiki/graphs https://github.com/amark/gun/wiki/graphs .
- You can go entirely P2P and decentralized, the community just launched end-to-end encrypted user accounts that I demo in this video: https://youtu.be/ik_dqXBMBHw https://youtu.be/ik_dqXBMBHw .
Instead with Meteor, you get locked into a monolithic framework that chose bad architecture with its technology, that will make it prohibitively complex to scale. There are definitely better options in 2017, and that includes ones other than mine as well. Do yourself a favor and don't shoot yourself in the foot with Meteor.
- bnjmn 9y agoIt sounds like you've built some interesting technologies! Some food for thought: * RethinkDB was a startup that both collaborated and competed with Meteor, until it [went defunct](https://rethinkdb.com/blog/rethinkdb-shutdown/ https://rethinkdb.com/blog/rethinkdb-shutdown/) last year, leaving its open-source technologies to be maintained by the community. * Your gun project depends heavily on graphql-anywhere, which is a project maintained by none other than... Meteor Development Group. Given the ways in which you've benefited from the community in general, and MDG in particular, I'm surprised you took this zero-sum, winner-take-whatever, nakedly self-promotional attitude. Let's be better than that? Disclosure: I work on Meteor.
- marknadal 9y agoFair, fair point. I did not realize (I'm not the author of gun-graphql, it is from an open source community contributor) graphql-anywhere was a Meteor project. I think that Meteor can be the winner-takes-all in open source centralized realtime services, and they/you have been so far. However, as I've actively debated here and elsewhere, that Master-Slave architecture is not scalable. While I love RethinkDB and think that they were the best, I also criticized that their shutdown was evidence of a systemic downsizing in use cases for centralized infrastructure - and therefore could not gain a large enough market capitalization for Open Source to make sense from a financial model. The RethinkDB guys are some of the nicest and most brilliant engineers I have ever met (also evidence to that fact is their success with the Jepsen Tests compared to other vendors), but the architecture choice is unfortunately a mistake. So please take my comments as an engineering analysis, I myself should admit (and thank you for calling me out!) that: If you are building some app that needs Strong Consistency (like a banking application), then Meteor will be a much much better choice than gun, since we are an eventually consistent manner. Thanks for calling me out!
- btown 9y agoI greatly respect the work you've put into Gun, but I will stand by my assertion. Horizon is abandonware (no commits for months), and Gun doesn't even handle unsubscribe-on-unmount in either its official React examples https://github.com/amark/gun/blob/master/examples/react/src/Todos.js https://github.com/amark/gun/blob/master/examples/react/src/... or in graphql-gun https://github.com/brysgo/graphql-gun/blob/master/react/index.js https://github.com/brysgo/graphql-gun/blob/master/react/inde... ... which would lead to memory leaks since the callback still holds a reference to the component instance. In fact, the API documentation doesn't even mention a way to cancel a subscription. (It's true that Gun's offline-first approach is unique, but with mobile connectivity these days it's not often a requirement for B2B applications.) Regardless, for both technologies, these are indications that neither has the professional backing that Meteor has enjoyed, and continues to enjoy, throughout its history. A real-time contender to watch with that type of backing is deepstreamhub.com which is significantly closer to having a professional-quality realtime product... but it's only recently released, with a nascent open-source plugin/tutorial ecosystem. Again, all of this is in the context of the following advice: Build a best-in-class React (or Angular) app, with routing/organization/testing taken from best non-realtime practices in those ecosystems, and have only a small number of containers depend on, and declaratively subscribe to, any specific data layer. As the real-time data ecosystem changes, migration between platforms can be restricted to minor code changes in those containers... in which case it makes sense to choose a framework that provides a stable platform well supported by documentation and amassed questions from years of usage. I hope to see Gun become a legitimate choice in the near future! But I need to bet on the horse that's miles ahead in the race.
- marknadal 9y agoYour comments are very well said and explained in a constructive context! Thank you for this feedback, good chewing material.