An evolving exploration of Holochain architectural patterns

This past year working on Holo-REA has been a fascinating, exciting and occasionally overwhelming foray into the evolution of distributed systems. In that time, a small group of contributors has managed to prototype a robust economic ledger which not only manages supply chain tracking, but also facilitates complex operational planning and business process management.

It is truly a simple and elegant solution to numerous economic and resource coordination activities. But, that was already known— this is the second (some would say third) generation of an existing system that has been proven in multiple real-life case studies.

What was not known, but is becoming clearer, is how to build Holochain applications. This year of development was done on top of shifting sands, an evolving platform, and emerging development patterns which are only just now beginning to crystallize. Pushing the Holochain development framework to its limits, particularly in terms of modularity and pluggable network architectures, has been the goal from the start.

And it has held up well. The system works.

Not only does it work, but it is elegant. Holochain applications are just Rust applications. They didn't invent their own crappy language with all kinds of weird edge cases, security concerns and quirks. It's just software development as usual. Consequently, we have delivered something here that would have taken many years to build on a blockchain, even with today's tooling. Even in spite of all the uncertainty outlined above.

To build it today would take us a matter of months. To build it a year from now, maybe just weeks.

I recently ran a technical "deep dive", encompassing the whole project from the UI layer downwards. It's extremely dense and probably not for the faint of heart, but it does go through the full stack in a way that should make this elegance apparent. You can watch the full video over on YouTube (see video description for a table of contents)-

Holo-REA deep dive on YouTube

It's worth reflecting on this and a quite similar talk I gave on Ethereum in late 2016. Clearly I have evolved a lot personally— the Ethereum deep dive was actually the first thing I ever presented publicly and is somewhat awkward to watch now. But aside from that, so has the technology. This time round, I didn't have to explain a whole programming paradigm or fundamentals of the language. Again- it's just software development as usual. These days you can cover off a few high-level concepts and leave people to explore the rest for themselves with confidence, because things mostly just work in the way you'd expect.

But there is a much more important, much more crucial difference between these two talks. The Ethereum talk has no soul. It's just exploring the technical details, without any discussion of what those characteristics imply. In 2016 my mentality was much more towards one of technological utopianism. Ethereum was new, everybody was excited by the potential, and freeing ourselves from the oppression of Capitalism seemed inevitable and just around the corner.

Since then I have been through the Ethereum ecosystem - right to its core - and out the other side. And I have my share of scars and disillusionment to show for that. It didn't work out. It was co-opted by greed and self-interest. It hasn't really changed a thing, and almost certainly never will.

That's because the fundamentals were wrong. For me the bargain was always whether building a capitalist system could lead to non-capitalist outcomes. The answer: emphatically no. When you build a system that is predicated on a scarcity paradigm and one of mistrust, what comes out the other side, no matter how well intentioned, is greed and self-interest and (as I've stated before) "capitalists and technocrats fucking shit up wherever you go".

Those ideologies will win out in that context, because those are the ideologies that are aligned with the technology itself.

That's why the Holo-REA talk is different. Because I now know that the technology is not going to save us. It is not the cure, merely a lubricant for change. The work ahead is cultural.

And if the cultural work is ever going to succeed, it has to begin with my own decolonisation. It has to start with some deep soul-searching of our own cultural frame, and the creation of ethical guardrails to keep unconscious biases from corrupting our efforts. It will always be a fight against globalisation and Colonial thought, in every facet of the work. Even from myself and my team. We are colonised people. We're learning, but we still don't really know how to think in non-oppressive ways.

Blockchain is clear evidence of that. Carbon credits are clear evidence of that. State-level regulatory frameworks and platform architectures are clear evidence of that. The belief that governance systems like Sociocracy and Holocracy are sufficient is clear evidence of that. And above all else, the cultural makeup of 99% of tech startups is clear evidence of that. Everything lacks representation, including my own projects.

Me of 2016 did not have the confidence or outgoingness to address these challenges. I had never given an acknowledgement to country or Indigenous peoples because, though I knew it was important, I feared "doing it wrong" and being judged for it. But the only way you get good at this stuff is to practise it.

It's a lived experience. An embodied learning. A personal journey as much as a collective one. The real work has nothing to do with technology at all.

So that's what I most look forward to in 2020, as we move out of the "infrastructure" phase and into the "applications" phase. Creating culture. Building relationships. Meeting real people with real needs and being lead by them rather than coming to the table with front-loaded values and technologies pushed as a cure-all.

It's going to be massively rewarding work, and I can't wait to see where it takes us.