Recommendation Engine Evaluation & Extension (Gorse / Go)
Overview
Hands-on evaluation and extension of Gorse, a mature open-source recommendation engine written in Go. We assessed its multi-source recommendation pipeline (popular, latest, item-based, user-based, and collaborative filtering) and adapted it to fit a recommendation use case within one of our client engagements.
Why It Exists
Building a production recommender from scratch is expensive and risky. We evaluated Gorse as a proven, self-hostable alternative to commercial recommendation APIs, validating whether its AutoML model search, distributed prediction, and RESTful data CRUD could be slotted into an existing content platform without a ground-up ML build.
What We Built
This is an upstream open-source codebase (originally by zhenghaoz / gorse-io) that we forked, ran, and extended with a small set of targeted commits to adapt configuration and behavior for our integration. The system is organized into clear services we worked across: master (training coordination and AutoML search), worker (recommendation generation), server (RESTful API for data and recommendations), and pluggable storage/config layers backed by SQL databases and Redis. We exercised the full workflow of importing users, items, and interaction feedback and serving per-user recommendations, including the bundled dashboard for monitoring and cluster status.
Technologies & Approach
Go service architecture with a master/worker/server split, SQL (MySQL/PostgreSQL) and Redis storage backends, and Docker Compose for local stand-up. Our changes focused on environment and configuration adjustments needed to embed the engine into the target platform rather than altering core algorithms, the honest framing here is integrate-and-extend, not build-from-scratch.
Outcome / Impact
The evaluation validated Gorse as a viable, self-hosted recommendation backbone: it proved out the import-train-serve loop and the operational model (training on a single node, scaling out prediction) for our use case, giving the client a clear build-vs-adopt answer backed by working code rather than a slide deck.
Capabilities Demonstrated
- Evaluating open-source ML infrastructure against real product requirements
- Extending and operating a Go-based recommendation engine end to end
- Working fluently across collaborative filtering, AutoML model search, and ranking
- Wiring ML services to SQL + Redis storage and serving recommendations via REST