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.
The following section describes how the backend architecture is designed for the Scripta Insights application interface.
The overall system architecture comprises of 2 subsystems,
Java Microservices based subsystem
The diagram below gives an overview of the microservices architecture
The salient features of the multi-tenanted architecture are as follows:
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 is used as a cache to store drug information.
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.
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 -
The following is the architecture diagram
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.
The release workflow involved -
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
The overall solution helps Scripta with
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.