Distributed Applications: Building More Completely with the Right Tools
Tags: blockchain, opensource, smartcontracts, distributedsystems
Published: 2020-10-05 13:25:04

In my [previous post](https://dev.to/betaworldpeace/building-businesses-opportunities-with-distributed-applications-50ji), we discussed the exciting, entirely new business opportunities that now exist in the blockchain space identified the four key pillars that comprise the Distributed Application. We then detailed the first two pillars: “Abstract away the infrastructure” and “Bring Agile to applications.” For this post, we will now turn our attention to the third and fourth pillars.

**Third pillar: Provide tools to build complete applications.**

Build complete application, integrations, automations, user-interfaces. Smart contracts running on a blockchain are but a small part of possible applications for DAML.

**Fourth pillar: Make cheap, fast and complete deployment targets available.**

We are trying to make the road to production as smooth as possible. With DAML, your development team can write code once and deploy anywhere.

**What’s a Distributed Application?**

Let’s take a step back and clarify what we mean by Distributed Application. DAML is a purpose-built smart contracts platform aimed at creating multi-party workflows that come with strong privacy, rights, and obligations guarantees. DAML applications can run on an array of DLTs / blockchains and databases without requiring any changes. As the saying goes: “Write once, run anywhere.” Your favorite programming stack (React, .Net, Java, Python etc.) will work with the DAML smart contract layer.

It’s not quite correct to say that DAML runs its applications on Blockchain, in that we don’t classify applications by the infrastructure on which they run. Instead, DA has these defining distribution characteristics: 

* **Distribution in terms of infrastructure.** DAML does not run on a single physical machine. Software engineers know that every large application now falls under this category.
* **Distribution in terms of trust.** There is no central point of trust or fulcrum through which all information flows. Take for example encryption: messages that enter encryption remove the operators’ ability to read our messages.
* **Distribution in terms of control.** Systems where there is no single entity means there is no power to materially disrupt an entire network. Social networks and the internet itself are a good example of this.
* **Distribution in terms of knowledge.** Information only flows to real stakeholders of pertinent information. Peer-to-peer messaging such as email is an example. Email gets read by you, the recipient, and the people who route it in-between, but no one else.

Now, none of these distribution characteristics are new, novel, or have anything specifically to do with blockchain. Most inter- and intra-business applications need most of these properties and that’s why so many systems are now message-based. But at the same time, these message-based systems tend to be error-prone, requiring a lot of data duplication and heavy reconciliation, all of which is expensive. In these systems, cost and value are inversely proportional. Robust infrastructure is expensive, as is running it with specialized personnel.

This is where blockchain’s great innovation comes in. Blockchain provides consistency and brings integrity to a system. It removes the need for duplication, error scenarios, and the need for reconciliation. On top of that, smart contracts give us a mechanism for shared understanding for the rules of such systems. 

So how does that change the cost equation? Once such infrastructure has matured and been made interchangeable, you have easy access to managed offerings. In the blockchain world, large tech companies are coming in now and offering properly productionized infrastructures. That’s what we target with DAML. Once that’s established, skillsets and personnel become freed up and increasingly available, allowing for even further innovation. Developers can focus on the application logic and the code that differentiates offerings and brings value to the customer.

**What’s Next?**

Abstracting infrastructure is only part of the story for Distributed Applications. The current infrastructure abstraction that DAML offers makes applications portable between different platforms and is an important stepping stone in the future of blockchain technology. There’s more ahead in the months and years to come.