
백엔드
달리는 서비스의 이벤트 버스 개선하기
두줄요약
비동기 메시지 규칙이 제각각이던 레거시 시스템을 통합 이벤트·커맨드·태스크로 분류해 표준화했습니다. Kafka와 Bullmq로 cloud agnostic 인프라를 구성해 CSAP 대응 마이그레이션을 완료했습니다.
문제 상황
- CSAP 인증 대응을 위해 AWS 기반 비동기 메시지 인프라를 NCP로 옮겨야 하는 상황
- 레거시 비동기 메시지 규칙 부재로 패턴이 제각각이고, 같은 성격의 작업도 서로 다른 물리 구현으로 분산
- 운영자가 새 이벤트마다 다른 패턴을 숙지해야 해 운영·관리 비용 증가
원인 분석
- MSA 도입 초기의 시행착오가 표준화되지 않은 메시지 구조와 인프라 선택으로 누적
- 통합 이벤트, 비동기 커맨드, 태스크의 목적 구분이 흐려져 구현 방식이 혼재
- 공공환경 이전 시 기존 부채를 그대로 가져가면 민간/공공 이중 운영 부담 발생
해결 방법
- 메시지를 통합 이벤트, 비동기 커맨드, 비동기 태스크로 분류해 기준 정립
- HTTP 유사 구조의 공통 스키마(messageId, headers, context, failure, data) 표준화
- Kafka와 Bullmq로 cloud agnostic 인프라 구성, DLT와 재시도 토픽으로 실패 처리 체계 정비
