목록 보기
최소한으로 울리는 알림 만들기: 비정상 병원 알림
데브옵스

최소한으로 울리는 알림 만들기: 비정상 병원 알림

비브로스
비브로스
2026년 10월 7일

두줄요약

Kafka 기반 병원 판정 흐름에 Redis와 Slack 알림을 결합해 에이전트 연결 끊김을 조기 감지했습니다.\n발송 지연·중복·복구 기준을 설계해 대응이 필요한 알림만 전달하도록 했습니다.

문제 상황

  • 병원 PC 에이전트 연결 끊김으로 앱 접수가 중단돼도 사용자 문의 전까지 인지하지 못하는 운영 공백
  • 휴게시간·휴진 같은 정상 접수 중단과 실제 연결 장애의 구분 필요

구조와 흐름

  • MongoDB Change Stream, 일·주기 배치 요청을 Kafka 토픽으로 모아 1·2차 접수 상태 판정
  • 판정 컨슈머 후처리에서 실사용 병원 Redis Set, 접수 가능 진료실, 에이전트 연결 상태를 조합한 Slack 알림 대상 선별
  • Slack 메시지 ts를 알림 서버에 저장하고 복구 시 기존 스레드에 지속 시간 포함 답글 발송

선택 이유

  • 별도 크론 대신 기존 판정 컨슈머의 결과를 재사용해 판정 기준 이원화와 크론 감시 부담 제거
  • HSETNX와 Kafka 메시지 발행 시각 기반 끊김 경과 시간 측정으로 컨슈머 분산·재전달에 흔들리지 않는 발송 시점 확보
  • Redis SET NX와 TTL lease로 다중 컨슈머의 중복 발송 방지 및 발송 중단 뒤 재시도 가능성 확보

트레이드오프

  • 메시지 단위 요약 집계로 컨슈머 간 대기 없는 신속한 동시 장애 알림 선택
  • 한 회차의 장애 병원이 여러 메시지로 나뉘면 전체 합산 기준을 넘어도 요약 알림이 누락될 수 있는 한계

다음 읽기

#Kafka 주제를 다룬 다른 회사 글

여기어때 이벤트 기반 통합 알림 플랫폼 구축기 Part 2. How?

여기어때의 통합 알림 플랫폼 NotiHub 설계와 핵심 의사결정을 정리했습니다. Kafka, Redis, HPA, 샤딩으로 안정성과 확장성을 함께 확보했습니다.

여기어때
여기어때
데브옵스

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...