6 min read
|
Saved February 14, 2026
|
Copied!
Do you care about this?
This article details the re-architecture of Reddit's Signals-Joiner application, which enhances real-time signal enrichment for anti-abuse measures. The team shifted from a Tumbling Window approach to a custom windowing strategy, significantly boosting enrichment rates by aligning windows with content keys and handling early signals.
If you do, here's more
Reddit's Signals-Joiner is a Flink application designed to enhance real-time anti-abuse measures by enriching messages with machine learning signals. Initially, it used Tumbling Window joins for this enrichment, but the rigid structure of these windows limited performance. When events arrived just before a window closed, they missed the chance to be enriched, leading to lower enrichment rates. This shortfall prompted a re-evaluation of the architecture.
To address these issues, the team introduced a custom windowing strategy based on individual content keys instead of fixed time windows. This approach allows for more flexible signal enrichment. They defined a unified *Signal* class to standardize all incoming signal data, which simplified the joining process. By leveraging Flink's CoProcessFunction, they developed a new method to manage the enrichment of messages. This involved updating state management techniques to ensure that messages could be enriched even if signals arrived just after an initial message.
The re-architecture not only aimed to improve enrichment rates but also maintained system performance and reliability. With these adjustments, the Signals-Joiner can now process messages more effectively, ensuring that more signals are captured and used in real time. This evolution in handling signal joins is a clear response to the limitations faced in the original system, marking a significant enhancement in Reddit's ability to manage content safely and efficiently.
Questions about this article
No questions yet.