What are microservices?

Eureka! Clinical employs a microservices architecture. Microservices replace large monolithic applications with a set of much smaller and flexible components that each implement clearly defined responsibilities. Components may be reused in multiple applications, deployed and updated on their own time tables, and replaced with newer components that implement the same responsibilities. Components may orchestrate other components to implement business logic. We have found this architecture valuable because it:

  1. simplifies integrating third-party software with locally developed software, because third-party tools can be wrapped with standard interfaces that translate data and messages between local tools and the third party tool
  2. accelerates the implementation and testing of changes to complex software, because interfaces between components are clearer
  3. reduces the time required to deploy updates to complex software, because you only have to redeploy the components that have changed
  4. decreases the likelihood of unexpected issues resulting from software updates, because the scope of changes typically is smaller, and as a result changes are easier to test
  5. supports deployment of components on different servers to enhance performance
  6. supports deployment of components in different network zones, for example, to isolate the components that handle patient data in a HIPAA-compliant network zone