The document discusses different options for integrating Python machine learning capabilities into a Scala/Java stack. The original stack used Scala, Storm, and MongoDB but a new product required scalable machine learning. Jython was considered but lacks support for key Python extensions. Jepp allows embedding CPython but has two runtimes. Thrift and REST were also considered, with Thrift providing language-independent development but more communication overhead. Ultimately, a REST API architecture was chosen with multiple Python servers running scikit-learn models to serve Scala applications through high-performance, auto-balancing load.
Related topics: