Constructing Distributed Applications

Kevin Cox
Kevin Cox
Aug 24, 2017 · 5 min read

Distributed Applications are Complex Adaptive Systems.

Distributed Applications are like bees in a hive. Each bee is an autonomous entity, but it is a clone of all other bees in the hive. Because the bees are clones, they can trust each other because they know how the other bees should behave. If a bee appears, that is not a sister the sister bees will kill it or force it away. If a sister bee starts to behave or appears to be different, it too is forced out of the hive.

The data in a hive resides in the bees and the data in each bee is different because each bee has a different experience. So the distribution of data comes from the distribution of bees. Control in the hive is distributed because each bee is autonomous.

Because bees can trust each other, they have worked out ways to work together for the greater good. We can do the same with distributed cloned applications. We can distribute a clone of an application to each person. The applications work together with the other applications to fulfil a group task. Most applications built today operate independently and we achieve cooperation by trusting the person using the application rather than trusting the application. By building applications as cooperating clones, we create webs of trust that enable us to work together on tasks that require cooperation and trust. Distributed systems built with application clones will always be lower cost to operate than independent cooperating applications because we have built trust into the system. Untrustworthy entities are rejected and excluded from participating in the group activities.

The following examples are applications implemented as instructions on a piece of paper. Every person in a group gets a copy of the same instructions, and they work together to complete a task. They communicate by passing messages between each other on message forms.

Census or “Big Data” Application

In the first example, we show how a distributed application can get big data results without the need to create a central database and to trust those who control the database. The task is to find the birthplaces of the group, the number of people from different states, and the total value of coins the group holds.

Any big data result can be found using this approach without the need to consolidate data in one place. It makes collecting any statistic from any population private, secure, low-cost and very flexible. It can be continuous and operate in real-time.

Country of birth cards are passed between members of the group until they all stand up. We can it manually in a small group and do it electronically with groups of any size.

Cards for State and Value of Coins are available from the author on request.

Voting Application

In the voting example, the group chooses between alternatives and selects according to a majority of some form. The group will vote on the best way for Australia to choose a governor general. The example uses a pairwise ranking method but we can change to use any other voting algorithm such as an optional preferential system. It is private, secure and low-cost.

The message cards are available on request.

A Consensus Algorithm

This third example is a consensus algorithm used by bees to find the best place for a new hive. Instead of the best place for a new hive, we will come to a working consensus on the best session from the first day of the conference. As soon as enough people stand up we count of the cards for each session and this ranks the sessions — along with the reasons for choosing the session. The important output from the example is not the session with the most votes but the reasons why the different sessions were chosen.

The example shows how we can replace markets as a way to set prices or for a group of people to arrive at a decision and act on it without everyone having to agree and without voting. It is a means of arriving at a working consensus. Variations such as “blackballing” and punishments for noncompliance are easily introduced to make the consensus more likely to hold.

Money Applications

The approach can be used to implement money systems. In a money system there are a set of rules associated with the transfer of money. For example, a money token is passed between participants when something of value is transferred between parties. The rules of the transfer are embedded in the instructions. For a loans system using traditional money the money passed increases the longer it takes to pay back the money. For a new economy money system instead of money being given back to a person more goods and services could be given back with the passing of time.

The Complex Adaptive System allows us to change the meaning given to money. In particular we can make money systems where the money owed does not increase simply because time has passed. That is we can evolve the money system so that money has no time value.

Other games played at the New Economy Network Australia Conference with alternative currencies are further examples of complex adaptive systems. Distributed applications provide a way to implement alternative currency systems or to redefine the meaning of existing currencies and loans.

RoofTop Renewable Energy Coops use a distributed app to provide lower cost energy to households while giving high returns to investors.

Affordable Housing for the ACT uses a distributed app to provide low-cost loans to buyers of dwellings while giving a high return to investors.

)
Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade