배민커넥트 배차 시스템에서 실거리 기반 배차를 위해 OSRM을 도입함
Kafka를 활용한 이벤트 드리븐 아키텍처를 구축하고, Redis를 캐싱으로 활용함
Redis Cluster 적용 및 데이터 압축, TTL 최적화를 통해 성능 및 안정성을 확보함
Kafka를 활용하여 배달 상태 변경 이벤트를 처리하고, EventProcessorFactory를 통해 각 이벤트에 맞는 로직을 수행한다. 구체적으로, DeliveryCreated, PickupLocationChanged 등 다양한 이벤트에 따라 실거리 데이터를 관리한다. 따라서 데이터 일관성을 유지하며, 시스템 확장성을 확보한다.
초기에는 Redis String에 실거리 데이터를 저장했으나, 네트워크 대역폭 초과 문제를 겪었다. 을 시도했지만, 효과가 미미했다. 반면 자료구조를 활용하여 을 개선하고, 를 적용하여 을 달성했다.
과도한 TTL 설정은 네트워크 오버헤드를 유발하므로, 배달 완료 시점에 명시적 삭제 방식으로 변경했다. Redis Cluster를 적용하여 쓰기 트래픽 분산을 구현하고, 수평 확장을 가능하게 했다. 따라서 서비스 안정성을 높이고, 트래픽 증가에 유연하게 대응할 수 있다.