Overview

Scripta was founded by doctors with a goal to help payers make better, more informed decisions so they get The Right Meds at The Best Price–Every Transaction. Every Member. Every Day™. Scripta Insights is a healthcare IT solution that delivers immediate, real savings on pharmacy benefit costs for self-insured employers, payers and their members. The solution helps members and their dependents make better, more informed decisions so they get the right meds at the best price.

Numino team is helping to evolve the Scripta Insights back end to Java microservices based architecture, while making feature enhancements to the existing monolithic solution. The application follows a multi-tenant architecture.

Scripta Insights Technology Stack

Stack

Scripta Insights Architecture

The following section describes how the backend architecture is designed for the Scripta Insights application interface.

The overall system architecture comprises of 2 subsystems,

  • one that supports the end user application and is based on Java microservices,
  • the other which is a job service - an engine which serves as distributed processing system for the biz ops team to perform bulk operations for various tasks

Java Microservices based subsystem

The diagram below gives an overview of the microservices architecture

microservice architecture

The salient features of the multi-tenanted architecture are as follows:

Microservices

The member service acts as a single point of contact with the outside world and serves all user requests. The catalog service on the other hand is used for managing all master data and is also responsible for connecting with any third party vendors. These microservices use Spring Boot technologies like Spring Security and Spring Data Envers.

Redis cache for external APIs

Redis is used as a cache to store drug information.

Observability and Monitoring

Datadog monitoring and analytics tool has been integrated into the solution for observability and monitoring.

The integration allows for real-time notifications of important events, such as service outages, high error rates, or high traffic volume. This allows teams to quickly respond to issues and minimize downtime.

Datadog has been integrated with the Slack messaging platform. This integration allows for contextual information to be sent along with the alerts, such as the affected service, the severity of the issue, and other relevant details such as correlation id, time of event, failure message, stacktrace to help teams quickly understand the issue and take appropriate action.

microservice architecture

Application Engine subsystem (Job service)

The ‘Engine’ serves as a distributed processing system for the biz ops team to perform bulk operations for various tasks. Some of these engine processing include -

  • Outbound communication - responsible for email / sms end users, will contain savings cost for a month.
  • Extract generator engine - responsible for generating reports for biz users for a particular client.

The following is the architecture diagram

archi

The front-end application's REST API publishes a notification to the SNS topic. The SNS topic broadcasts the notification to all subscribed resources. Ie. SQS and Lambda. The AWS Lambda function receives the notification and triggers an ECS task.

The ECS task retrieves the notification from the SQS queue and performs the required processing for the job. The output of the ECS task is specific to the engine. For eg. Communication engine will send out notifications.

Release Management

The release workflow involved -

  • Creating a release branch, building and testing the code, creating release artifacts, and publishing the artifacts to a private package repository.
  • Running automated tests and ensuring that the code builds successfully in the release branch. Here, Rest Assured tests were integrated within the CI/CD workflow.
  • Generate the necessary artifacts for the release, such as a JAR file, a Docker image, or an installer.
  • Publish the artifacts to AWS Code Artifact private package repository and followed by release to the target environment.
  • Creating a Kubernetes deployment defining the desired state of the application, including the Docker image, number of replicas, and other configurations which will create the necessary Kubernetes objects such as pods and services.

Agile based delivery

The Numino-Scripta team followed Agile principles for product development. JIRA was used for issue tracking, bug tracking and managing epics, stories and defects and agile project management

Result

The overall solution helps Scripta with

  • Improved Scalability
  • Rapid deployment
  • Reliability and Fault tolerance
  • Enhanced productivity

which in turn helps Scripta empower companies to take control of their Pharmacy Benefit Spend and the members and their dependents get the Right Meds at the Best Price, all without changing their Pharmacy Benefit Manager.

Work at Numino Labs

See our open positions