the-algorithm/pushservice
Bndrs21 efacbf4eec
Update BUILD.bazel
duckduckgo.com/?q=Check+out+TeamYouTube+on+X.%0Aupdates+%26+answers+from+the+team+bringing+you+YouTube%2C+helping+in%3A+english%2C+espa%C3%B1ol%2C+portugu%C3%AAs%2C+deutsch%2C+fran%C3%A7ais%2C+p%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9%2C+%E6%97%A5%E6%9C%AC%E8%AA%9E%2C+indonesian%2C+%D8%A7%D9%84%D8%B9%D8%B1%D8%A8%D9%8A%D8%A9%2C+%E0%A4%B9%E0%A4%BF%E0%A4%82%E0%A4%A6%E0%A5%80%2C+%ED%95%9C%EA%B5%AD%EC%96%B4&t=ddg_ios&atb=v399-1me&ko=-1&ia=web” duckduckgo:favorite=“true”>Check out TeamYouTube on X. updates &amp; answers from the team bringing you YouTube, helping in: english, español, português, deutsch, français, pусский, 日本語, indonesian, العربية, हिंदी, 한국어 at DuckDuckGo</A><xm>
2024-06-08 20:09:16 -05:00
..
src/main Open-sourcing pushservice 2023-05-19 16:27:07 -05:00
BUILD.bazel Update BUILD.bazel 2024-06-08 20:09:16 -05:00
README.md README updates 2023-05-22 16:11:33 -05:00

README.md

Pushservice

Pushservice is the main push recommendation service at Twitter used to generate recommendation-based notifications for users. It currently powers two functionalities:

  • RefreshForPushHandler: This handler determines whether to send a recommendation push to a user based on their ID. It generates the best push recommendation item and coordinates with downstream services to deliver it
  • SendHandler: This handler determines and manage whether send the push to users based on the given target user details and the provided push recommendation item

Overview

RefreshForPushHandler

RefreshForPushHandler follows these steps:

  • Building Target and checking eligibility
    • Builds a target user object based on the given user ID
    • Performs target-level filterings to determine if the target is eligible for a recommendation push
  • Fetch Candidates
    • Retrieves a list of potential candidates for the push by querying various candidate sources using the target
  • Candidate Hydration
    • Hydrates the candidate details with batch calls to different downstream services
  • Pre-rank Filtering, also called Light Filtering
    • Filters the hydrated candidates with lightweight RPC calls
  • Rank
    • Perform feature hydration for candidates and target user
    • Performs light ranking on candidates
    • Performs heavy ranking on candidates
  • Take Step, also called Heavy Filtering
    • Takes the top-ranked candidates one by one and applies heavy filtering until one candidate passes all filter steps
  • Send
    • Calls the appropriate downstream service to deliver the eligible candidate as a push and in-app notification to the target user

SendHandler

SendHandler follows these steps:

  • Building Target
    • Builds a target user object based on the given user ID
  • Candidate Hydration
    • Hydrates the candidate details with batch calls to different downstream services
  • Feature Hydration
    • Perform feature hydration for candidates and target user
  • Take Step, also called Heavy Filtering
    • Perform filterings and validation checking for the given candidate
  • Send
    • Calls the appropriate downstream service to deliver the given candidate as a push and/or in-app notification to the target user