Replatforming to Scala Ecosystem
About Service Source
ServiceSource partners with industry-leading companies to improve their recurring revenue performance. It has a very successful Renew On Demand platform which allows Fortune 50 organizations to increase the rate of their renewals significantly. It allows a business to grow by delivering growth from an existing customer base where Most businesses prioritize new customer acquisition. But creating customers for life means shifting your focus from the initial sale to post-sale engagement. If done correctly, 90% of customer revenue will come from renewals, cross-sells and up-sells.
Service Source product "Renew On Demand" was already very successful was being used by most fortune, 50 clients. The problem was that the core system was built on node.js Though the current system was able to scale to the needs of the business growth was impossible since the system was deployed on 100s of Amazon nodes. DevOps was a nightmare. Further interprocess communication between multiple node.js processes slowed down the responsiveness of the system. Multiple node.js processes were required to harness all cores on the machine. The platform required a daily restart in wee hours to ensure stability.
Knoldus was approached to understand the current product and transform the product from node.js to the Scala ecosystem. We worked with the engineering team at Service Source to understand the pain points and converted the product to be cluster aware with Akka. The entire logic was ported to Scala which allowed the product to run on the stable JVM. The big data analytics and the renewals strategy was implemented with Spark Streaming and machine learning. The services were distributed as microservices and were made available through REST endpoints. The final solution was running on a cluster of 23 nodes instead of 100s which were used earlier.
The devops operations for the product were reduced significantly. The Number of servers required to host the product came down a lot thus translating into huge fixed cost savings. The stability and responsiveness of the product increased manifold. As per the current day data, the product is handling 3.2x the amount of data for which it was created and is still performing well.