![](/spryte-verified-darker.png)
![Dr. István Peták's profile picture](https://firebasestorage.googleapis.com/v0/b/spryte-p.appspot.com/o/vendors%2FLWoXS7hsI8Uf0hRmOPaN%2FcaseStudiesImages%2Fqavhvl11wsl_a_petak_ewidhy.jpg?alt=media&token=d012948c-dfa2-44ed-ac9d-5a41b334c5d4)
Client
Description
Oncompass is a health information company, which helps oncologists and cancer patients to find and access the best cancer therapies. Uniquely in the world, the Oncompass's Realtime Oncology Treatment Calculator is able, based on available scientific evidence, to rank personalised, targeted therapeutic options within 20 milliseconds for 405 cancer types, in 52,000 mutations, based on 26,838 medico-biological norms, and from among 1,417 medicinal active agents.
Challenge
We needed to become familiar with the basics of genetics, oncology, and scientific evidence databases in order to communicate effectively with the team of scientists supporting the development process. Unlike the monolithic application, whose components communicate via internal synchronous method calls, the event-driven microservices communicate via a message broker (Apache Kafka), which requires new approaches to transaction and error handling. Due to the obvious drawbacks of the old AngularJS framework, we had to sacrifice our usual development flow, which resulted in a software that did not work the way we expected. React and Next.js were a clear choice for us.
Solution
We followed the principles of Domain Driven Design to thoroughly analyze the structure and relationships of the components so we could define the bounded contexts that formed the basis for the microservice architecture. The new technology stack consisting of Next.js, Java 11, Apache Kafka, Nomad, and Kong, made it possible to build a scalable and resilient system with reduced time to market and improved developer experience (DX). Since users were actively using the previous system, so we had to thoroughly investigate the biggest dependencies and tried to start our migration process with those functionalities. During this time, we provided the usual maintenance support to the scientists and physicians.