PredictionIO is a popular open source Machine Learning server that developers use to create “predictive” features in web and mobile applications. Showcased as one of the featured machine learning products on GitHub, PredictionIO powers hundreds of applications for its community of more than 5,000 developers. That’s pretty amazing adoption for a product that’s less than two years old.
When the team at PredictionIO first set out to build its platform two years ago, they were intent on using a language and web framework that could best support the ongoing requirements to process huge amounts of data.
“In Big Data, if you want to build distributed algorithms on Hadoop, you write a bunch of map and reduce functions, and you need to be able to run on hundreds of machines,” said PredictionIO’s CEO, Simon Chan.
This requirement to be Reactive—to scale horizontally and predictably run “computationally expensive” big data and machine learning algorithms across multiple machines—led Chan’s team to immediately favor JVM languages as it was drawing up its application infrastructure blueprint. PredictionIO chose Scala as its JVM language over Java primarily because of the advantages it brings to functional programming.
“Functional is the native language for data scientists,” explained Chan. “So in the end we chose Scala. Everything is immutable, and we believed in the cleanness of the source code and our ability to maintain it ongoing.”
And once the team had committed to Scala, it was an easy choice to use Play as the framework to build the open source machine learning server. In fact, today when a user downloads the PredictionIO server, the Play Framework is included. The user doesn’t need to worry about scaling their machine learning apps - they just deploy more PredictionIO servers running on Play. PredictionIO can be used on-prem or in the cloud, in AWS marketplace.
Inspired by this story? Contact us to learn more about what Lightbend can do for your organization.