Uber에서는 최근 UberEats에서 광고를 추가했다.

이러한 변화는 새로운 과제를 만들어냈고, 이것들을 해결하기 위해 오픈소스를 활용하여 실시간 데이터에서의 이벤트를 정확히 한 번 처리하기 위한 시스템을 구축했다.

Problem Statement

모든 광고 플랫폼에서는 유저마다 이벤트가 발생한다. 이러한 광고 이벤트를 추적하고, 집계, 정렬처리를 해서 클라이언트(다른 광고 시스템)에 제공해야한다.

이때 아래의 요구사항을 충족시켜야 한다.

1. Speed

2. Reliability

3. Accuracy

Architecture

위 요구사항들을 처리하기 위해 4가지 오픈소스 기술로 강력한 신뢰성이 있는 구조를 만들었다.

Stream Processing with Apache Flink

실시간에 가까운 데이터 처리를 위한 Stream processing framework