JAX London Blog

JAX London Blog

JAX London, 08-11 October 2018
The Conference for JAVA & Software Innovation

Jun 11, 2018

Architecting a blockchain

JAX London speaker Vinita Rathi discusses the use case of digitizing medicals records for an African nation using the blockchain. Blockchain has increasing real-world value that may soon change the landscape of medical documentation.

Cryptocurrency was the only buzzword across all sectors last year, but since then the whole Cryptocurrency hype has seen a downfall. While the future of CryptoCurrency is still unknown for most parts and its dominance in real economy is yet to be understood, what I would like to discuss here is the underneath technology it’s based on, namely – Blockchain and various Distributed ledger technology platforms such as HyperLedger, Ethereum, NEM etc.

 

Recently I was approached by a firm that is in the process of digitizing medical records of citizens of an African nation. The idea behind this was not only to control access to the medical records via biometric recognition and authentication but also to put technology in place to ensure that the medical records once stored in the system are immutable. 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, Corda for this use case as well as a few other use cases that we have been working on, we noticed that Hyperledger Fabric stood out amongst all of them time and time again.

 

The key decisions that ruled in favour of Hyperledger Fabric were:

 

  • Permissioned Framework
  • Ability to run complex queries
  • Scalability and cost of hosting/maintenance
  • Maturity (in comparison to other solutions)
  • GoLang

 

Most of the solutions that I come across even though promising, 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.

 

One of the challenges worth pointing out is the concurrency challenge we have had around using Hyperledger, especially in our use case where we needed to provide a provision in the system to allow write and read multiple operations on the same object concurrently.

 

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 who altered the Object.

 

Even though the chances of same object being written simultaneously was rare, we did have to account for the situation where – the write request for the object is pending while read access is 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 are accustomed to using it pretty much in every project we undertake.

 

While we have deployed the system in production, its usage is in very early stage. It’s hard to comment on the system’s scalability as of yet, however in sandbox environment we tested it with 1500 concurrent transactions where it performed fairly well.

 

For a in-depth review of the architecture, deployment challenges and key learnings of other projects, please join me at my session at the upcoming JAX London 2018.

 

Sessions about Blockchain at JAX London 2018

Behind the Tracks

Software Architecture & Design
Software innovation & more
Microservices
Architecture structure & more
Agile & Communication
Methodologies & more
DevOps & Continuous Delivery
Delivery Pipelines, Testing & more
Big Data & Machine Learning
Saving, processing & more