Architecting a Blockchain solution for the enterprise
Cryptocurrency may have gotten all the buzz last year, but the underlying technology is what we should really be talking about. In this article, JAX London speaker Vinita Rathi explores why Blockchain and distributed ledger technology platforms deserve our attention.
Cryptocurrency was a massive buzzword across all sectors of technology and finance last year, but since then the whole cryptocurrency hype has seen a downfall. While the future of cryptocurrencies is still unknown for the most part, its dominance in real economy is yet to be understood. However, I would like to discuss here is the underlying technology that cryptocurrencies are based on, specifically Blockchain and various distributed ledger technology platforms such as Hyperledger, Ethereum, NEM, and more.
Choosing between different blockchain solutions
Recently, I was approached by a firm that is in the process of digitizing medical records of citizens of an African nation. They wanted to not only control access to the medical records via biometric recognition and authentication, but also put technology in place to ensure that the medical records were immutable once they were in the system. The key points for consideration were:
- Permission based access
- Scalability and latency
- Immutability and data integrity
While we looked at several private blockchain solutions like Waves, NEM, or Corda, we noticed that Hyperledger Fabric stood out amongst all of them time and time again for both this use case as well as others we had been working on.
The key decisions that ruled in favor of Hyperledger Fabric were:
- Permissioned Framework
- Ability to run complex queries
- Scalability and cost of hosting/maintenance
- Maturity (in comparison to other solutions)
Most of the promising solutions that I come across lack the maturity needed for such a big implementation. There are hardly a few systems that are being used in large scale enterprise production environments.
Challenges in utilizing blockchain
One of the challenges worth pointing out is the concurrency challenge we have had around using Hyperledger, especially in our use case. We needed to provide a provision in the system to allow write and read multiple operations on the same object concurrently.
In this situation, the use case is:
- A patient visits a clinic
- Patient’s identity is confirmed
- Object access is granted to the clinic
- Object can be updated
- Record which user altered the object.
Even though the chances of same object being written simultaneously was rare, we still had to account for a situation where the write request for the object was pending while read access was requested. This could potentially invalidate the state of the read.
This is how the first version of architecture looked like:
The second challenge we faced was the deployment. Hyperledger focuses heavily on Docker. Luckily, our DevOps team at Systango was accustomed to using it in pretty much in every project we undertake.
While we have deployed the system in production, its usage is still in a very early stage. It’s hard to comment on the system’s scalability as of yet. However, in the sandbox environment we tested it with 1,500 concurrent transactions and it performed fairly well.
For an in-depth review of the architecture, deployment challenges and key learnings of other projects, please join me at my session this October at JAX London. I’ll be going over all this and more there.
Vinita Rathi will be delivering a talk at JAX London 2018 on Tuesday, October 9 that goes over what blockchain is, functional blockchain solution designs, and the five pillars of an enterprise blockchain solution design.
love me like you do