Wow, lively conversation in this thread since last week! I’ll try to respond to all the things I can…
Sounds like a great typical use case. Holochain is meant for any kinds of application that revolve around multiple humans interacting with each other, so that would naturally include:
- social media and chat
- electronic medical records
- supply chain
- collaborative knowledge management (wikis, etc)
- project/task management
I see lots of promise in the idea of a ‘community building toolkit’, where people just download all the components they need and use it to bootstrap their own community. Philip (creator of
Chimera Builder) shows off this idea in this video, where he demos an app called Community Builder https://youtu.be/Y60cmE3rZZs . I don’t want to get too far into the weeds re: my favourite use case of Holochain, but I do want to underscore why I think Holochain is such a good match for small, tight community spaces, and it addresses this question too:
Holochain can empower anyone to build their own community network with its own shared data store, without any special IT knowledge, completely free of servers.* This lets them be in charge of their own stuff, rather than delegating control to some big cloud company (let alone even knowing that’s what you have to do if you want to set up a community space online).
* While Holochain is technically fully P2P/serverless, the reality of the current internet is that people will probably need a couple ‘helper’ services just to punch through NAT gateways and discover each other. There’s a proxy service which performs the same functions as a TURN server, as well as a bootstrap service for locating enough peers to get a good-quality introduction to the existing network. We run instances of both of these services, but people with enough IT experience could also set it up on cloud servers.
A group holds all their data in common – the distribution among peers doesn’t mean Alice can’t access it if it’s stored on Bob’s node; it just means Alice, Bob, and friends don’t have to store a copy of everything on their nodes. That said, data discovery is hard when meaningful information hides behind an opaque hash There are patterns for making data discoverable, mainly using links from well-known hashes (e.g., ‘anchors’ whose value is hard-coded into the app and is easy to calculate a hash for). Using patterns like these, you can easily create table-like structures, even going so far as being able to create indexes.
Solid and Holochain both model data ownership around the individual, and they both use linked data as their basic way of organising information. The big differences I see are that, with Solid, your data stays in your ‘pod’ and an app (e.g., social media app, hospital’s EMR software) is an external thing that asks you if it can access your pod. With Holochain, on the other hand, your data and your app are inextricably linked – the app defines what meaningful information should look like, both app and data live on your machine, and data is shared publicly either by denoting it as public (in which case it gets published to the shared data store) or by granting selective access to it in a Solid-fashion using getter/setter functions that access your device’s private data. Hope that makes sense – I feel like I’m coming into this conversation from the wrong angle
When we talk about backend in Holochain, we’re usually talking about a microservice-like binary that lives on every user’s device. Everyone has a copy of the backend (the ‘holochainy’ part); everyone has a copy of the frontend. That means their own data is immediately accessible, but it does probably create performance issues for some sorts of applications. I’m curious to see how Holochain’s graph model might be ‘hacked’ to provide the same sorts of speedy lookups on public/distributed data that centralised databases offer. Do you have specific examples of performance issues you’re concerned about?
The closest thing I can think of is this application architecture intro (skip the part about donuts; I don’t think it helps clarify anything )
I’m super excited to see this conversation unfolding; looks like there’s some fruitful dialogue going on
@dcatki pinging you – keep this on your radar for a future Low-Code Zone episode!