1/4 Predictable Unpredictability
Much has been written about the problem of getting nodes in a distributed system to agree with one another. Most solutions strive for coordination protocols that ensure global consensus—which is fine—for some apps these solutions are appropriate
-
Show this thread
-
2/4 Predictable Unpredictability
But if you’ve been with us for a while, you probably know that we invite developers to embrace the reality of relativity.
This doesn’t mean everything has to be a mess of existential meaninglessness.1 reply 1 retweet 10 likesShow this thread -
3/4 Predictable Unpredictability
For starters, there is the CALM Principle, which says that as long as your functions only increase state, you completely eliminate the need for coordination protocols.pic.twitter.com/dIvoQ9K0Lc1 reply 1 retweet 10 likesShow this thread -
4/4 Predictable Unpredictability
This is a simple idea with huge consequences; it means that you can guarantee eventual data consistency among independent peers without any complicated logic. #Holochain embeds CALM deeply into its design in multiple places.1 reply 1 retweet 14 likesShow this thread -
1/2 How predictable should you be?
#decentralization introduces potential risks, so it's essential that apps and the systems on which they're built are rock solid. For most of the back-end, even tiny inconsistencies will break the whole system.1 reply 0 retweets 11 likesShow this thread -
1/2 How predictable should you be?
Web front-ends can be much less strict about inconsistencies, but still benefit from increasingly reliable builds as projects mature.1 reply 0 retweets 10 likesShow this thread -
1/2 How can we be predictable?
Computers are designed to be predictable, but also interact with the outside world. Unpredictability tends to compound in nasty ways, so we quarantine it by design.1 reply 0 retweets 10 likesShow this thread -
1/2 How can we be predictable?
Unpredictable components could be a random number generator, hidden reference between components, time sensitive logic, or the black box of user behavior.pic.twitter.com/9SyKcLsCvm1 reply 0 retweets 10 likesShow this thread -
There are a number of different ways to ensure predictability at the code level, but very few options exist to keep the environment itself predictable. Example, different versions of the Rust compiler generate different binaries, and may not be at all compatible with source code.
1 reply 0 retweets 12 likesShow this thread -
Most attempts to increase predictability focus on virtualisation-based approaches like “golden images,” which are fundamentally centralised, fragile, and difficult to audit.
1 reply 1 retweet 13 likesShow this thread
In fully centralised contexts, company IT departments might lock down their computers and mobile devices, or server administrators or cloud providers would manage things from on high.
-
-


Holochain is a distributed framework, so our options are limited to those that are open and extensible by design.0 replies 7 retweets 36 likesShow this threadThanks. Twitter will use this to make your timeline better. UndoUndo
-
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.