SlideShare a Scribd company logo
Data Driven Matchmaking Streaming
at Hyperconnect
Gihoon Yeom
Jaehyeuk (Jacob) Oh
2020 Flink Forward Virtual Conference
Motivation
HyperMatch Architecture
Infra & Operation
Stateful Matchmaking
Contents
Video and AI Company
Introduction
Scalability
5000 Match Requests
Stability
Stateful matchmaking
Motivation
Why Flink?
● Capability for Low-latency iteration
● Loosely coupled architecture
● Intrinsic support for a state management
Motivation
HyperMatch Architecture
Infra & Operation
Stateful Matchmaking
Contents
Matchmaking Steps
- Collect match requests from specific units of windows
and select the best pairs among them
Matchmaking Steps
Input Source
Feature
Engineering
Pair
Generator
Match
Maker
Feedback System
State
Management
Data Source
Leftovers
Scoring Ops
Matchmaking
Results
Multiple Sink
Score
Microservices
Matchmaking Steps
Input Source
Feature
Engineering
Pair
Generator
Match
Maker
Feedback System
State
Management
Data Source
Leftovers
Scoring Ops
Matchmaking
Results
Multiple Sink
Score
Microservices
Matchmaking Steps
Feature
Engineering
Pair
Generator
Match
Maker
Feedback System
State
Management
Leftovers
Scoring Ops
Matchmaking
Results
Multiple Sink
Input SourceData Source
Score
Microservices
Matchmaking Steps
- Option 1. Built-in Kafka source
- To simulate previous matchmaking steps
- Reduce dependencies between applications
- Option 2. Custom Netty Http Source
- For real-time latency
- Apache Bahir extension
Matchmaking Steps
Feature
Engineering
Pair
Generator
Match
Maker
Feedback System
State
Management
Leftovers
Scoring Ops
Matchmaking
Results
Multiple Sink
Input SourceData Source
Score
Microservices
Matchmaking Steps
- Preprocess data stream before entering match cycle
- Conditional tagging for segmentations (ex) A/B test)
- Vectorize user features for machine learning models
- Save managed state on operator and connect it to feature engineering
operator
Matchmaking Steps
- Split match request attributes information
1) Match context infos
- can be changed in matchmaking cycle
- small size
- direct transfer to next operator
2) Match properties
- properties cannot be changed
- large size
- broadcast to only scoring operators
Total Feature memory
Small Mutable Context
Large Immutable Properties
Matchmaking Steps
Feature
Engineering
Pair
Generator
Match
Maker
Feedback System
State
Management
Leftovers
Scoring Ops
Matchmaking
Results
Multiple Sink
Input SourceData Source
Score
Microservices
Matchmaking Steps
- Aggregate by window
- Global tumbling window
- Keyed tumbling window when segmentation enabled
- Custom trigger & evictor depending on matchmaking function
- Custom pair generating protocol with scoring operators
Matchmaking Steps
- Efficient pair generation and bucketizing considering
communication costs
- Total communication costs
= network consume time
+ serialization/deserialization time
Matchmaking Steps
Feature
Engineering
Pair
Generator
Match
Maker
Feedback System
State
Management
Leftovers
Scoring Ops
Matchmaking
Results
Multiple Sink
Input SourceData Source
Score
Microservices
Matchmaking Steps
Matchmaking logic is divided into several microservices
- Many teams can be involved for scoring logic advancement
- Scoring Operator with broadcasted request data or external in-memory cache
- Prepare data to be provided to each microservices
- Get responses from microservices
- Scoring Microservices can be REST or Event driven
- Use AsyncDataStream
Matchmaking Steps
Feature
Engineering
Pair
Generator
Match
Maker
Feedback System
State
Management
Leftovers
Scoring Ops
Matchmaking
Results
Multiple Sink
Input SourceData Source
Score
Microservices
Matchmaking Steps
Fault tolerance on scoring microservices
- Custom trigger & evictor
- Distributed sorting algorithm for finding best pairs
- IterativeStream for leftovers
Matchmaking Steps
Matchmaking Steps
- Trigger condition: Timeout or all candidates arrived
- Timeout dummy token sent by generating operator for fault tolerance
ScorersPair
Generator
Match
Maker
Leftovers
Send Timeout Token
for custom trigger
Matchmaking Steps
- Create app level backpressure by buffering some requests when scorer fails
consecutively
ScorersPair
Generator
Match
Maker
Leftovers
Too many
leftovers!
Backpressure:
Buffering
selected requests
Some pair scorer failed
=> Increase requests wasn’t matched
=> Increase next match requests
=> Repeated.. => Service failed
Matchmaking Steps
Feature
Engineering
Pair
Generator
Match
Maker
Feedback System
State
Management
Leftovers
Scoring Ops
Matchmaking
Results
Multiple Sink
Input SourceData Source
Score
Microservices
Matchmaking Steps
- Matchmaking broker
- Feedback controller: distribution of results
- User state management
- Logging handler
- Metric reporter
Motivation
HyperMatch Architecture
Infra & Operation
Stateful Matchmaking
Contents
Infra & Operation
- Easy to set up new staging infra
- For performance testing
- Metrics on prometheus/grafana
Match App1
Job manager
Task manager
Match App2
Job manager
Task manager Score App2
Score App1
HA Proxy
ACTIVE
STANDBY
- For zero downtime: Blue green deployment
- Score microservices can be rolling updated
Performance Tuning
Network cost & General tips
- Latency vs Throughput trade-off: setBufferTimeout
- Forward vs Rebalance: setParallelism
- For resource isolation: stream.slotSharingGroup
Motivation
HyperMatch Architecture
Infra & Operation
Stateful Matchmaking
Contents
Stateful MatchMaking
Realtime State + Realtime Inference
Stateful Matchmaking
Virtual Flink Forward 2020: Data driven matchmaking streaming at Hyperconnect - Jaehyeuk Oh, Gihoon Yeom
Virtual Flink Forward 2020: Data driven matchmaking streaming at Hyperconnect - Jaehyeuk Oh, Gihoon Yeom
Virtual Flink Forward 2020: Data driven matchmaking streaming at Hyperconnect - Jaehyeuk Oh, Gihoon Yeom
Virtual Flink Forward 2020: Data driven matchmaking streaming at Hyperconnect - Jaehyeuk Oh, Gihoon Yeom
Virtual Flink Forward 2020: Data driven matchmaking streaming at Hyperconnect - Jaehyeuk Oh, Gihoon Yeom

More Related Content

PDF
Virtual Flink Forward 2020: Everything is connected: How watermarking, scalin...
PPTX
Do Flink on Web with FLOW
PDF
Virtual Flink Forward 2020: How Streaming Helps Your Staging Environment and ...
PDF
Virtual Flink Forward 2020: Keynote: The Evolution of Data Infrastructure at ...
PPTX
Flink Forward San Francisco 2018: David Reniz & Dahyr Vergara - "Real-time m...
PPTX
Real Time Experiment Analytics at Pinterest with Apache Flink - Ben Liu & Par...
PPTX
The Past, Present, and Future of Apache Flink®
PDF
Scaling stream data pipelines with Pravega and Apache Flink
Virtual Flink Forward 2020: Everything is connected: How watermarking, scalin...
Do Flink on Web with FLOW
Virtual Flink Forward 2020: How Streaming Helps Your Staging Environment and ...
Virtual Flink Forward 2020: Keynote: The Evolution of Data Infrastructure at ...
Flink Forward San Francisco 2018: David Reniz & Dahyr Vergara - "Real-time m...
Real Time Experiment Analytics at Pinterest with Apache Flink - Ben Liu & Par...
The Past, Present, and Future of Apache Flink®
Scaling stream data pipelines with Pravega and Apache Flink

What's hot (20)

PPTX
Towards Flink 2.0: Unified Batch & Stream Processing - Aljoscha Krettek, Ver...
PDF
Time Series Analysis Using an Event Streaming Platform
PPTX
Flink Forward San Francisco 2018 keynote: Srikanth Satya - "Stream Processin...
PPTX
Apache Flink(tm) - A Next-Generation Stream Processor
PDF
KSQL-ops! Running ksqlDB in the Wild (Simon Aubury, ThoughtWorks) Kafka Summi...
PDF
Flink for Everyone: Self Service Data Analytics with StreamPipes - Philipp Ze...
PDF
Maximilian Michels - Flink and Beam
PDF
dA Platform Overview
PPTX
Flink Forward San Francisco 2018: Fabian Hueske & Timo Walther - "Why and how...
PDF
Abstractions for managed stream processing platform (Arya Ketan - Flipkart)
PPTX
Flink Forward Berlin 2017 Keynote: Ferd Scheepers - Taking away customer fric...
PDF
Reliable and Scalable Data Ingestion at Airbnb
PDF
Apache Flink @ Alibaba - Seattle Apache Flink Meetup
PDF
Flink Forward San Francisco 2018: Xu Yang - "Alibaba’s common algorithm platf...
PPTX
Apache Flink and what it is used for
PDF
Flattening the Curve with Kafka (Rishi Tarar, Northrop Grumman Corp.) Kafka S...
PPTX
Ted Dunning-Faster and Furiouser- Flink Drift
PPTX
The Evolution of (Open Source) Data Processing
PDF
Moon soo Lee – Data Science Lifecycle with Apache Flink and Apache Zeppelin
PPTX
A stream: Ad-hoc Shared Stream Processing - Jeyhun Karimov, DFKI GmbH
Towards Flink 2.0: Unified Batch & Stream Processing - Aljoscha Krettek, Ver...
Time Series Analysis Using an Event Streaming Platform
Flink Forward San Francisco 2018 keynote: Srikanth Satya - "Stream Processin...
Apache Flink(tm) - A Next-Generation Stream Processor
KSQL-ops! Running ksqlDB in the Wild (Simon Aubury, ThoughtWorks) Kafka Summi...
Flink for Everyone: Self Service Data Analytics with StreamPipes - Philipp Ze...
Maximilian Michels - Flink and Beam
dA Platform Overview
Flink Forward San Francisco 2018: Fabian Hueske & Timo Walther - "Why and how...
Abstractions for managed stream processing platform (Arya Ketan - Flipkart)
Flink Forward Berlin 2017 Keynote: Ferd Scheepers - Taking away customer fric...
Reliable and Scalable Data Ingestion at Airbnb
Apache Flink @ Alibaba - Seattle Apache Flink Meetup
Flink Forward San Francisco 2018: Xu Yang - "Alibaba’s common algorithm platf...
Apache Flink and what it is used for
Flattening the Curve with Kafka (Rishi Tarar, Northrop Grumman Corp.) Kafka S...
Ted Dunning-Faster and Furiouser- Flink Drift
The Evolution of (Open Source) Data Processing
Moon soo Lee – Data Science Lifecycle with Apache Flink and Apache Zeppelin
A stream: Ad-hoc Shared Stream Processing - Jeyhun Karimov, DFKI GmbH
Ad

Similar to Virtual Flink Forward 2020: Data driven matchmaking streaming at Hyperconnect - Jaehyeuk Oh, Gihoon Yeom (20)

PDF
Five Early Challenges Of Building Streaming Fast Data Applications
PDF
Flink Forward San Francisco 2018: Dave Torok & Sameer Wadkar - "Embedding Fl...
PPT
Dating with Models
PPTX
When ordering Matters - Flink Forward EU - Berlin - 2019
PDF
Event Driven-Architecture from a Scalability perspective
PPTX
Streaming HYpothesis REasoning
PPTX
Streaming Hypothesis Reasoning - William Smith, Jan 2016
KEY
Event Driven Architecture
PPTX
ML Infra @ Spotify: Lessons Learned - Romain Yon - NYC ML Meetup
PDF
Complex event processing platform handling millions of users - Krzysztof Zarz...
PPTX
Patterns of Distributed Application Design
PDF
Fast Data at ING – the why, what and how of the streaming analytics platform ...
PDF
Machine Learning At Speed: Operationalizing ML For Real-Time Data Streams
PDF
ML Platform Q1 Meetup: An introduction to LinkedIn's Ranking and Federation L...
PDF
Huawei Advanced Data Science With Spark Streaming
PPTX
Processing Semantically-Ordered Streams in Financial Services
PDF
Continuous Intelligence - Intersecting Event-Based Business Logic and ML
PDF
Towards Data Operations
PPTX
Why And When Should We Consider Stream Processing In Our Solutions Teqnation ...
PDF
Dataiku productive application to production - pap is may 2015
Five Early Challenges Of Building Streaming Fast Data Applications
Flink Forward San Francisco 2018: Dave Torok & Sameer Wadkar - "Embedding Fl...
Dating with Models
When ordering Matters - Flink Forward EU - Berlin - 2019
Event Driven-Architecture from a Scalability perspective
Streaming HYpothesis REasoning
Streaming Hypothesis Reasoning - William Smith, Jan 2016
Event Driven Architecture
ML Infra @ Spotify: Lessons Learned - Romain Yon - NYC ML Meetup
Complex event processing platform handling millions of users - Krzysztof Zarz...
Patterns of Distributed Application Design
Fast Data at ING – the why, what and how of the streaming analytics platform ...
Machine Learning At Speed: Operationalizing ML For Real-Time Data Streams
ML Platform Q1 Meetup: An introduction to LinkedIn's Ranking and Federation L...
Huawei Advanced Data Science With Spark Streaming
Processing Semantically-Ordered Streams in Financial Services
Continuous Intelligence - Intersecting Event-Based Business Logic and ML
Towards Data Operations
Why And When Should We Consider Stream Processing In Our Solutions Teqnation ...
Dataiku productive application to production - pap is may 2015
Ad

More from Flink Forward (20)

PDF
Building a fully managed stream processing platform on Flink at scale for Lin...
PPTX
Evening out the uneven: dealing with skew in Flink
PPTX
“Alexa, be quiet!”: End-to-end near-real time model building and evaluation i...
PDF
Introducing BinarySortedMultiMap - A new Flink state primitive to boost your ...
PDF
Introducing the Apache Flink Kubernetes Operator
PPTX
Autoscaling Flink with Reactive Mode
PDF
Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...
PPTX
One sink to rule them all: Introducing the new Async Sink
PPTX
Tuning Apache Kafka Connectors for Flink.pptx
PDF
Flink powered stream processing platform at Pinterest
PPTX
Apache Flink in the Cloud-Native Era
PPTX
Where is my bottleneck? Performance troubleshooting in Flink
PPTX
Using the New Apache Flink Kubernetes Operator in a Production Deployment
PPTX
The Current State of Table API in 2022
PDF
Flink SQL on Pulsar made easy
PPTX
Dynamic Rule-based Real-time Market Data Alerts
PPTX
Exactly-Once Financial Data Processing at Scale with Flink and Pinot
PDF
Tame the small files problem and optimize data layout for streaming ingestion...
PDF
Batch Processing at Scale with Flink & Iceberg
PPTX
Welcome to the Flink Community!
Building a fully managed stream processing platform on Flink at scale for Lin...
Evening out the uneven: dealing with skew in Flink
“Alexa, be quiet!”: End-to-end near-real time model building and evaluation i...
Introducing BinarySortedMultiMap - A new Flink state primitive to boost your ...
Introducing the Apache Flink Kubernetes Operator
Autoscaling Flink with Reactive Mode
Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...
One sink to rule them all: Introducing the new Async Sink
Tuning Apache Kafka Connectors for Flink.pptx
Flink powered stream processing platform at Pinterest
Apache Flink in the Cloud-Native Era
Where is my bottleneck? Performance troubleshooting in Flink
Using the New Apache Flink Kubernetes Operator in a Production Deployment
The Current State of Table API in 2022
Flink SQL on Pulsar made easy
Dynamic Rule-based Real-time Market Data Alerts
Exactly-Once Financial Data Processing at Scale with Flink and Pinot
Tame the small files problem and optimize data layout for streaming ingestion...
Batch Processing at Scale with Flink & Iceberg
Welcome to the Flink Community!

Recently uploaded (20)

PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
Electronic commerce courselecture one. Pdf
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
cuic standard and advanced reporting.pdf
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
Encapsulation theory and applications.pdf
PDF
Machine learning based COVID-19 study performance prediction
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Electronic commerce courselecture one. Pdf
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
cuic standard and advanced reporting.pdf
Reach Out and Touch Someone: Haptics and Empathic Computing
The AUB Centre for AI in Media Proposal.docx
Building Integrated photovoltaic BIPV_UPV.pdf
CIFDAQ's Market Insight: SEC Turns Pro Crypto
NewMind AI Monthly Chronicles - July 2025
Encapsulation theory and applications.pdf
Machine learning based COVID-19 study performance prediction
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
NewMind AI Weekly Chronicles - August'25 Week I
Network Security Unit 5.pdf for BCA BBA.
Advanced methodologies resolving dimensionality complications for autism neur...
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Understanding_Digital_Forensics_Presentation.pptx
The Rise and Fall of 3GPP – Time for a Sabbatical?

Virtual Flink Forward 2020: Data driven matchmaking streaming at Hyperconnect - Jaehyeuk Oh, Gihoon Yeom