Aug 3, 2018 | 7 Min Read
Dive into what microservices is and discover the benefits of implementing a microservices architecture when it comes to accelerating your digital and connected health solution’s time to market.
Healthcare is poised for significant change over the coming years as a result of emerging technologies like Artificial Intelligence (AI), virtual assistants, sensors, and wearables. Significant investments have been made in transitioning providers to EMR systems, but the benefits of this digital transformation has not yet been fully realized. Data volumes are increasing in all sectors, and healthcare is no exception with the adoption of wearables, electronic medical records, and medical-grade sensors. Data privacy and regulatory requirements in the sector drive additional demands around how this data is collected, stored, and managed, particularly around access to Personal Health Information (PHI).
Digital and connected health solutions industry is filled with considerations, complications, and regulation. As a result, the speed of innovation in this industry lags, but there is a way to address these well-known issues – implement a microservices architecture.
What is a Microservices Architecture?
Microservices are a new software development technique that structures an application in a way where components are linked together to form individual services within the application. Together these “microservices” make up the whole application, but at any time the application can be deconstructed into its individual service components, which can be reused and re-integrated into other applications.
Microservices vs. SOA and Monolithic Architecture
We’ll start by stating that microservices are a relatively new approach to architecting software solutions to address complex system-level problems. There are still architectural decisions that need to be made to get the most benefit out of them. Given that it is a tool to encapsulate specific functionality in your custom healthcare software solution, the first decision to be made is around how to structure those components or services. It is important to define services that are loosely coupled and independent of each other with a clear and simple interface/protocol. Ideally, you would target components or services that are complete in and of themselves and that are tied to a specific function or user service that you are offering, or a component or service that has the potential for use in other applications outside of the one you are designing it for.
Service Oriented Architecture (SOA) is an approach to develop stand-alone services or functions that can be delivered over a network or via the cloud. They are complementary to a microservices architecture in that they can be easily integrated into your solution even if they are ultimately developed and delivered through another vendor or technology. For instance, if your solution supports payments via credit card, there are several vendors who will provide credit card validation and processing services that can be integrated into the rest of your application. This allows you to focus on the unique elements of your solution while leveraging third-party services to accelerate your time to market.
The traditional approach to developing backend platform technologies is to develop it as a monolithic architecture. This has a significant drawback in limiting the reuse of components in the development of other solutions. For instance, if you have a chronic disease application targeting people with type 2 diabetes and you want to adapt that solution for managing patients with COPD, there is likely a significant portion of your original diabetes solution that you could reuse, but that would be difficult to do.
Using a chronic disease platform built as microservices, for example, you could replace the component that interfaces and manages data from patients’ connected glucometers with one that tracks readings from their pulse oximeters instead. The services that communicated with a companion mobile application, or that captured additional insights from an Alexa virtual assistant, would all be reusable in each case. Implementing a microservices architecture like this provides a number of advantages in architecting backend solutions while offering particular benefits in developing digital and connected healthcare solutions.
Benefits of Microservices in Healthcare Solutions
So let’s get into more detail around how microservices provide unique advantages and review some of the elements to consider in mitigating concerns that have been expressed around this architectural approach.
1. Portability and Interoperability
The portability and interoperability benefits from a microservices architecture stem from their adoption of open standards such as JSON and HTML, which allows for the integration of third-party solutions and integration with microservices that are written using different programming languages. This results in the development of “building blocks” that can be repurposed in new projects or solutions in the future. It also means introducing new technologies or components in a future roadmap enhancement can also be accomplished with more ease and with less risk of impacting existing components in the process.
2. Isolation of Components Accelerates Regulatory Compliance
One advantage of particular importance in a healthcare solution that falls under regulatory oversight is the isolation achieved between components. Some components entail greater risk, need to be tested extensively, and fall under regulatory oversight; you need an architecture that truly isolates these from the rest of the components that may need to be patched on a regular basis to address security or cybersecurity issues.
To put this in perspective, in a medical device, this isolation on an electronic printed circuit board would be achieved through an optocoupler, which completely isolates (electrically) one part of the board from another. The equivalent functionality is delivered through message queues between microservices. The practical implications of this are that components of a solution that delivers a diagnosis through a proprietary algorithm or machine learning tool can be isolated from components that manage networking functionality, device connectivity, or other non-patient critical capabilities of the solution. The later might need to be updated to patch vulnerabilities in a networking stack or to update support for a new communication protocol while ensuring there is no unintended impact to other microservices within the system.
3. HIPAA Compliant by Nature
Microservices are naturally event and data-oriented, lending themselves well to solutions that require compliance under HIPAA or GDPR regulations, as personal health information data can be isolated from other system data and access to that data can be more readily audited for specific access.
4. Accelerated Time to Market
There are significant market pressures in developing new healthcare solutions. Expectations are that these solutions will improve outcomes while also reducing costs as providers and payers look for added value, new operating business models, and improved patient engagement. The opportunities within this sector are also bringing in new competitors to the fold like Google, Amazon, and Apple, along with nimble startups – so time to market is becoming increasingly important. The “reusable components” aspect of implementing a microservices architecture enables new digital and connected health solutions to be launched faster. By eliminating the need to build entire applications from scratch, developers can:
- Get the finished product out the door faster, beating out competition and meeting consumer market demands in a more timely fashion.
- Easily reuse components that have been fully developed and tested in other applications without bringing along application-specific code that is not required.
- Spend more time on the new and unique components that require more development and testing. This way developers aren’t being rushed in the development process in order to meet launch deadlines, and product quality isn’t sacrificed as a result.
- Minimize regulatory burden and delays by re-using components from solutions that have already passed regulatory certifications.
Building Microservices to Aid Healthcare Innovation
Security, privacy, regulation, and data collection and flow all impact the commercialization of new and useful digital health solutions. Using a microservices architecture when developing applications delivers a number of benefits that address time-to-market concerns, and allows teams to hone in on the unique components of a new application. Although developing the individual services may initially take some time to perfect in order for them to be reusable, it will save significant time down the road when developing healthcare applications or evolving your current one.