- Postback이란?: 광고 매체에게 성과 발생에 대한 signal을 보내주는 것. 매체에서는 이 signal을 받아서 캠페인 최적화에 사용함.
- Airbridge에서 Postback의 역할: 광고 매체에게 signal을 보내주는 것 뿐만 아니라 third party 서비스들에게 데이터를 보내주는 기능도 함께 하고 있음. 개념적으로는 webhook이라는 동일한 기술이기 때문.
- 해결해야할 문제: 앞으로 몇 천 개 이상의 서비스들과 연동을 더 쉽게 할 수 있어야 함. 그러려면 연동이 매우 쉬워야 함.
- 연동 시스템에서 제공해야할 기능:
- 수집된 이벤트 중 필요한 이벤트만 전송할 수 있어야 함
- 수신 서버의 API Spec에 맞게 HTTP payload를 구성할 수 있어야 함
- 기존 시스템의 문제점: 어느 정도 template에 따라 작동하는 시스템을 만들어두긴 했지만 추가 구현이 필요한 것들이 생길 때마다 유지보수 비용이 들었음
- 핵심 기술
- Template Engine: filter, transform 등을 template engine으로 해결할 수 있음
- API 호출 서버 분리: 매우 많은 webhook을 보내야 하므로 저렴한 비용으로 API 호출을 할 수 있도록 Go로 구현하여 서버 분리
- 전체 시스템 아키텍처
- 서버간의 통신은 kafka 활용
- 비즈니스 로직이 있는 webhook 구성 서버는 Python으로 구현
- API 호출 서버는 Go로 구현
- API 호출 log는 다시 kafka에 저장하고, kakfa에 저장된 데이터는 S3에도 저장하여 나중에 다시 데이터를 읽을 수 있음
- 앞으로 더 개선하고 싶은 부분들
- Graviton Instance 적용: 비용 절감 목적
- 새로운 언어로 migration: 마찬가지로 비용 절감 목적