요약
- GitHub의 푸시 처리 과정은 복잡하며, 저장소 변경 외에도 웹훅, 워크플로우, 앱 설치 등 다양한 작업이 수행됨
- 기존에는 모든 푸시 처리 로직이 하나의 거대한 백그라운드 작업(RepositoryPushJob)으로 처리되어 문제 발생
- 문제점:
- 낮은 재시도율 및 오류 처리 어려움
- 강결합으로 인한 문제 발생 시 큰 영향
- 긴 순차 처리로 인한 지연 시간 증가
- 해결 방안:
- 푸시 이벤트를 Kafka 토픽에 게시
- 관련 작업들을 그룹화하여 독립적인 백그라운드 작업으로 분리
- 각 작업은 Kafka 이벤트를 통해 트리거됨
- 개선 결과:
- 문제 발생 시 영향 범위 감소
- 푸시 처리 지연 시간 감소
- 향상된 관찰 가능성
- 안정적인 푸시 처리
의견
- GitHub의 이번 개선은 대규모 모놀리식 시스템을 효과적으로 개선한 좋은 사례
- 복잡한 작업을 작은 단위로 분리하고 비동기 처리를 통해 시스템 안정성과 성능을 향상시킨 점은 주목할 만함
- 특히 Kafka를 활용한 이벤트 기반 아키텍처는 확장성과 유연성을 높이는 데 기여
- 이러한 변화는 GitHub 사용자들에게 더 빠르고 안정적인 개발 경험을 제공할 것으로 기대