From Service to Platform- A Ranking System in Go - Konrad Reiche

Learn how to structure a ranking system in Go, covering topics like gRPC, idiomatic code, error handling, cancellations, and more, to build a scalable and maintainable recommendation system.

Key takeaways
  • Structure your ranking system in stages to make it easier to reason about and maintain
  • Use gRPC to implement your service, it helps to make it clear and simple
  • Make use of idiomatic Go code to write maintainable code
  • Error semantics and cancellations should be considered
  • Meta stages are glue that holds ranking pipelines together, making it easier to combine different stages
  • Platform design helps to make your API-first approach
  • Recommendation system helps users to find content they find compelling, consisting of 3 main steps: candidate generation, scoring, and ranking
  • Clear naming and decoupling should be the principle in designing your pipeline
  • Use dependency injection framework
  • Flexibility in API design and meta-stages comes with a great deal of responsibility