nayaread
HomeFavouritesTopicsSources
HomeFavouritesTopicsSources
NayaRead links to original engineering blogs. All copyright belongs to the respective authors.
Shopify Engineering·Jan 8, 2021·9 min read60

Apache Beam for Search: Getting Started by Hacking Time - Shopify

To create relevant search, processing clickstream data is key: you frequently want to promote search results that are being clicked on and purchased, and demote those things users don’t love. Typically search systems think of processing clickstream data as a batch job run over historical data, perhaps using a system like Spark. But on Shopify’s Discovery team, we ask the question: What if we could auto-tune relevance in real-time as users interact with search results—not having to wait days for a large batch job to run? At Shopify—this is what we’re doing! We’re using streaming data processing systems that can process both real-time and historic data to enable real-time use cases ranging from simple auto boosting or down boosting of documents, to computing aggregate click popularity statistics, building offline search evaluation sets, and on to more complex reinforcement learning tasks. But this article is introducing you to the streaming system themselves. In particular, to Apache Beam. And the most important thing to think about is time with those streaming systems. So let’s get started! What Exactly is Apache Beam? Apache Beam is a unified batch and stream processing system. This lets us potentially unify historic and real-time views of user search behaviors in one system. Instead of a batch system, like Spark, to churn over months of old data, and a separate streaming system, like Apache Storm, to process the live user traffic, Beam hopes to keep these workflows together. For search, this is rather exciting. It means we can build search systems that both rely on historic search logs while perhaps being able to live-tune the system for our users’ needs in various ways. Let’s walk through an early challenge everyone faces with Beam: that of time! Beam is a kind of time machine that has to reorder events in their right spot after getting annoyingly delayed by lots of intermediate processing and storage step. This is one of the core complications of a streaming system

Data Engineering
Read original on shopify.engineering

Discussion around the web

  • Hacker News87 · 8 💬

Score breakdown

  • Technical depth83
  • Practical value30
  • Originality100
  • Writing quality100
  • Source reputation86
  • Recency0
  • External engagement26
  • On-site engagement0

NayaRead shows a summary and links to the original article. The full article is hosted on shopify.engineering.

More like this

Etsy — Code as Craft

Kafka App? There’s a Skill for That

Isobel Scott·Jul 31, 2026·6 min read
Etsy — Code as Craft

The So-fine Real-time ML Paradigm

Kyle Gallatin·Sep 5, 2023·5 min read
Shopify Engineering

Using Server Sent Events to Simplify Real-time Streaming at Scale - Shopify

Nov 30, 2022·11 min read
Shopify Engineering

Shopify's Path to a Faster Trino Query Execution: Infrastructure - Shopify

Jul 9, 2021·13 min read