kafka-alert
메인 인덱스 | bob-yamong | GitHub
이 문서는 kafka-alert 레포를 repo 구조 기준으로 다시 정리한 노트입니다. 현재 소스만으로 제 직접 구현 범위를 단정하지는 않겠지만, 이 레포는 단순 Kafka consumer보다 “토픽별 콜백을 디렉터리 구조로 조립하는 알림 처리기”에 더 가깝습니다.
한 줄 소개
kafka-alert는 Kafka 메시지를 토픽별 콜백과 공통 콜백으로 분기 처리하는 Python 기반 알림/후처리 서비스입니다.
기술 스택
- Python
- Kafka
- async callback 실행
- Docker Compose
- Jenkins
코드 기준으로 확인한 구조
main.py는KAFKA_BROKERS를 읽고,callback패키지에서 로드한 콜백 목록을 토픽별로EventManager에 등록합니다.callback/__init__.py는callback/<topic>/디렉터리를 순회하며 Python 파일을 로드하고, 각 모듈의callback,Z_INDEX,ALERT_DISABLE를 읽어 정렬합니다.all폴더는 모든 토픽에 공통으로 붙는 콜백 집합으로 예약돼 있습니다.- 실행 순서는 토픽별 콜백을 먼저 조립한 뒤
all콜백을 뒤에 붙이는 구조입니다. - 즉 이 레포의 핵심은 “메시지 수신” 자체보다 “콜백을 어떻게 운영 중에 추가/비활성화/정렬할 것인가”에 있습니다.
- README도 새로운 처리 로직을 추가하는 방법,
all예약 규칙,Z_INDEX기반 순서 조정,ALERT_DISABLE기반 비활성화를 중심으로 설명합니다.
주요 파일과 흐름
main.py: Kafka 브로커 연결, 콜백 로딩, EventManager 시작callback/__init__.py: 디렉터리 스캔, 콜백 import, 정렬callback/all/,callback/<topic>/: 공통 처리와 토픽별 처리 분기utils/queue_eventmanager.py: Kafka와 실제로 붙는 이벤트 매니저docker-compose.yml,Jenkinsfile: 운영 환경으로 붙이기 위한 배포 자산
포트폴리오 메모
이 레포는 범용 스트림 처리기보다는 “운영 중 토픽별 알림 로직을 파일 단위로 추가하고 끌 수 있게 만든 후처리기”로 설명하는 편이 정확합니다. 디렉터리 구조 자체가 처리 규칙이 되는 방식이라서, kafka-sink-connect.md처럼 적재 파이프라인을 설명하는 레포와는 역할이 다릅니다.