요약

  • GitHub의 푸시 처리 과정은 복잡하며, 저장소 변경 외에도 웹훅, 워크플로우, 앱 설치 등 다양한 작업이 수행됨
  • 기존에는 모든 푸시 처리 로직이 하나의 거대한 백그라운드 작업(RepositoryPushJob)으로 처리되어 문제 발생
  • 문제점:
    • 낮은 재시도율 및 오류 처리 어려움
    • 강결합으로 인한 문제 발생 시 큰 영향
    • 긴 순차 처리로 인한 지연 시간 증가
  • 해결 방안:
    • 푸시 이벤트를 Kafka 토픽에 게시
    • 관련 작업들을 그룹화하여 독립적인 백그라운드 작업으로 분리
    • 각 작업은 Kafka 이벤트를 통해 트리거됨
  • 개선 결과:
    • 문제 발생 시 영향 범위 감소
    • 푸시 처리 지연 시간 감소
    • 향상된 관찰 가능성
    • 안정적인 푸시 처리

의견

  • GitHub의 이번 개선은 대규모 모놀리식 시스템을 효과적으로 개선한 좋은 사례
  • 복잡한 작업을 작은 단위로 분리하고 비동기 처리를 통해 시스템 안정성과 성능을 향상시킨 점은 주목할 만함
  • 특히 Kafka를 활용한 이벤트 기반 아키텍처는 확장성과 유연성을 높이는 데 기여
  • 이러한 변화는 GitHub 사용자들에게 더 빠르고 안정적인 개발 경험을 제공할 것으로 기대