5 ms·
> I still haven't found the "holy grail architecture" for offline-first with backend sync where the backend isn't just a simple data store but also has business
by beckman466 5y ago
> I still haven't found the "holy grail architecture" for offline-first with backend sync where the backend isn't just a simple data store but also has business logic and interacts with external systems.
you might like the architecture of holo-chain (stupid name, imo), it's still mostly going under the radar (also because they chose to refactor their library from go to rust to improve security):
"Holochain combines ideas from BitTorrent and Git, along with cryptographic signatures, peer validation, and gossip. Holochain is an open source framework for building fully distributed, peer-to-peer applications. [It's] purpose is to enable humans to interact with each other by mutual-consent to a shared set of rules, without relying on any authority to dictate or unilaterally change those rules. Peer-to-peer interaction means you own and control your data, with no intermediary"
good dev intro: https://medium.com/holochain/holochain-reinventing-applications-d2ac1e4f25ef https://medium.com/holochain/holochain-reinventing-applicati...
"Holochain is [...] like a decentralized Ruby on Rails, a toolkit that produces stand-alone programs but for serverless high-profile applications."
- Powersource 5y agoHaha, didn't think I'd run into you here tonight
- beckman466 5y agohey there friend
- JamesSwift 5y agoThat sounds like it solves part of the sync problem, but not conflict resolution or offline business rules in a general way.
- beckman466 5y ago> does not solve offline business rules in a general way hmm no i think it does. the 'Resilience and availability' section is relevant for your question: https://developer.holochain.org/concepts/4_dht/ https://developer.holochain.org/concepts/4_dht/ holochain is completely distributed, so there is no 'offline' and 'online' because there is no third party. it sounds weird writing that but i'm hoping it might challenge you to dig a bit deeper into the docs, because it's there. if not, please come back and let me know so i can pass on feedback about the docs that were unclear or unsatisfactory for you. > does not solve conflict resolution from the docs: "Holochain DNAs specify validation rules for every type of entry or link. This empowers agents to check the integrity of the data they see. When called upon to validate data, it allows them to identify corrupt peers and publish a warrant against them. [...] (the DNA is simply a collection of functions for creating, accessing, and validating data.)" https://developer.holochain.org/concepts/7_validation/ https://developer.holochain.org/concepts/7_validation/
- JamesSwift 5y agoHmm I guess I didn't understand it then. Makes sense because I have a head cold : ) I'll take another look
- beckman466 5y agohey James, so you were right that it doesn't (yet) do conflict-resolution out of the box. if you want you could check out the other comment with a detailed response from a Holo team member: https://news.ycombinator.com/item?id=28700602 https://news.ycombinator.com/item?id=28700602
- CryingSofa 5y agoSadly they don't solve conflict resolution. They just push the problem to the application developers. From [1]: > All the DHT does is accumulate all these [updates] and present them to the application. 1: https://developer.holochain.org/concepts/6_crud_actions/ https://developer.holochain.org/concepts/6_crud_actions/
- beckman466 5y agohey so i messaged someone on the Holo team (Paul d'Aoust @helioscomm) with your question, this was his reply: Yes, people will want conflict-resolution for contention on scarce resources, and it'd be lovely to have that baked into the system. Two options (and yes, both still leave conflict resolution in the app dev's hands): - Have the zome function resolve the conflict after it retrieves conflicting metadata from the DHT - In the future we'll bake conflict resolution right into the network layer, so DHT authorities can resolve the conflict automatically using CRDTS or manually by pinging the nodes that published conflicting information so they can resolve it themselves. It's also worth mentioning Syn, a library which uses operational transforms (a precursor to CRDTs) for conflict-free collaborative document editing. https://github.com/holochain/syn https://github.com/holochain/syn. I'm looking forward to seeing someone produce something similar, but with CRDTs.
- southerntofu 5y agoHey, I'm not familiar with holochain project, but i heard about some HOLOfuel coins. I was afraid it's just another cryptoscam, but the holochain FAQ doesn't mention coins as part of the spec (good) and you have Marx and Engels in your bio, so consider me curious of the economics of that network. How does it relate or differentiate with the GNU/Net project? What naming schemes does Holochain support and could it theoretically interop with the GNU Name System? [0] [0] https://tools.ietf.org/id/draft-schanzen-gns-01.html https://tools.ietf.org/id/draft-schanzen-gns-01.html
- beckman466 5y agohey thanks for your question. so transitioning people over to a world of distributed apps is difficult because it essentially asks people to run the distributed apps completely on their own devices. that is a big shift (and responsibility) that we are not used to in the client server reality of today. so for all the people who might struggle with this (like my mom), but who still want to enjoy these new apps, Holo (again, stupid name, but this time it's the org who stewards the open source holochain library [1]) came up with a strategy that allows people to rent out some spare processing power on their computer/home-server, to host holochain applications for the above-mentioned people (so sort of like an Airbnb for AWS). they even ran a successful crowdfund that sold a million dollars worth of hardware for committed early adopters (plug-and-play home servers) [2]. so essentially the Holo hosting network is IPFS (and Holofuel is like Filecoin), but instead of hosting someone's files, you are running encrypted app code for them so that they can take part in the app/network, without having the required technical chops (the holofuel currency measures/represents processing power). the FAQ does a good job of explaining it a bit more: https://holo.host/faq/ https://holo.host/faq/ i'm not super interested in the whole holo thing (they did a filecoin-type crowdfund to pre-sell hosting credits), yet i am glad they did it because it meant the team could ramp up development. they are already alpha-testing now. about marx and engels. i am personally most excited about the potential for http://valueflo.ws http://valueflo.ws on top of holochain (library called hREA) [3], because it will allow us to move away from today's Enterprise Resource Planning (ERP) software, into a new paradigm of Network Resource Planning (NRP) software. i hope it will have a big impact and enable the growth of the democratic and transparent supply chains of the next (socialist) economy. > How does it relate or differentiate with the GNU/Net project? What naming schemes does Holochain support and could it theoretically interop with the GNU Name System? [0] i'll take a look at it, i'm not too familiar with GNU/Net. [1] https://github.com/holochain/holochain https://github.com/holochain/holochain [2] https://www.indiegogo.com/projects/holo-take-back-the-internet-shared-p2p-hosting#/ https://www.indiegogo.com/projects/holo-take-back-the-intern... [3] https://github.com/holo-rea/holo-rea https://github.com/holo-rea/holo-rea