DLT: The Three “I’s”
By: Ryan Gledhill
Tags: Distributed Ledgers, Blockchain, Enterprise Technology, Corda

Infrastructure

Software incumbents have spent decades ensuring that infrastructure is fit for purpose and robust.

Anything less than five nines (99.999%, or 26.30 seconds downtime per month) availability is now unacceptable, and will cause genuine economic detriment and loss of business. How do we solve for this within a distributed environment? In a standard infrastructure pattern, we might use a combination of data backups and hot-cold availability, utilising a load balancer with a main and slave node as below.

Ensure you consider your customer requirements also. Banks and FMIs are likely to have exceptionally stringent InfoSec policies that you must adhere to.

Consider offering a service whereby you may run nodes on behalf of customers. Whilst the infrastructure required to run a Corda node is relatively standard and most organisations will have existing skills, upgrading CorDapps comes with some complexities and will require your customer to upskill. Offering infrastructure expertise alongside your DLT application reduces friction when onboarding your customers.

Node monitoring is a must. You can rely on industry standard tools that will alert during downtime or periods of increased and unexpected usage, but I would suggest that consideration is also given to monitoring the internal processes. For example, you may be pro-active in determining and fixing issues when Corda Flows land in the Flow Hospital.

Focused products such as Cerberus offer some of this functionality, and I would expect the number of products to proliferate considerably as Corda projects are increasingly deployed in production environments.

Integration

Some DLT projects may focus entirely on greenfield offerings, perhaps creating their own markets or simply aiming at startups. More likely, the reality is that DLT is likely to compliment existing business processes or software suites, providing efficiencies on top of existing market infrastructure.

As a result, integration should be considered at the earliest opportunity. Do your clients expect a RESTful API into a Corda node, as opposed to exposing the RPC port to the internet? How will they receive information from the node, back into existed integrated systems?

Ivno have solved for this by providing a RESTful API with our node infrastructure, allowing for instructions to start flows to be given to the node in a ubiquitous format well understood by technical resource. We also provide a real-time API (socket streaming) back into integrated systems, allowing for immediate transaction or balance updates which may in turn trigger existing business processes in other, existing, software. Note that client policies may disallow socket streaming, so our real-time API will gracefully degrade to offer message collection and other techniques.

Be aware that existing data from integrated systems is highly unlikely to be in the relevant formats or standards that your application is expecting to parse. Design middleware to convert inputs and outputs into familiar data standards, and note that this process is often very different per customer and often takes more planning and implementation effort than expected.

Interoperability

Corda’s (and other DLT) most powerful offering is interoperability. The benefits offered from DLT intra-industry become incalculable when you think one step beyond: inter-industry.

Ivno provides settlement capabilities and collateral solutions for institutional usage, which means that not only can we provide sub-second transfer of value, but we can also provide that same transfer of value to any global industry.

Interoperating Corda Business Networks

Business networks may interoperate at scale on the Corda Network (for more technical information on CorDapp interop see Mike Hearn’s post), or even beyond — with initiatives such as Jasper-Ubin using novel techniques such as Hash Time Locked Contracts allowing interoperation between Corda and Quorum, an Enterprise Ethereum client.