Skip to content

Recommendations Service

TLDR

Set up a microservice for serving recommendations for similar jobs and candidates. Was the first Rust microservice set up in the department.

My role

Technical Lead of the team that owns this service.

Context

This service needs to compute recommendations after querying data from a graph database (AWS Neptune). The data scientists in the team were doing research for this in Python. However, engineering wasn't too keep on maintaining a back-end service written in Python. So, we started exploring potential candidates.

The obvious candidate here was Scala (as existing similar services were written in it), however, i wanted to explore if we could set up a service that would perform better with fewer compute resources, and provide a more pleasant experience while porting from the reference Python code. To do this exploration, I set up a comparsion between 4 web serving stacks: Python, Scala, Go, and Rust. All of the choices were judged on the following criteria:

  • Load testing
    • latency
    • cpu/memory usage
    • number of requests dropped
  • Ease of porting from Python
  • Overall developer experience

At the end, the Rust version fared most favorably across these facets.