이벤트 드리븐 아키텍처 도입기
0
AI 요약

이 글은 AI가 원문을 분석하여 핵심 내용을 요약한 것입니다.

이 게시물은 채널톡 앱스토어를 개발하며 확장성 한계를 겪은 문제를 인메모리 이벤트 버스로 해결한 과정을 공유합니다. 여러 도메인에 걸친 삭제/후속 작업을 동기 호출로 처리할 때 결합도 상승과 복잡성 증가가 발생했으며 이를 완화하기 위해 EDA를 적용하기로 결정합니다. EDA의 핵심인 느슨한 결합을 위해 분산 메시지 브로커 대신 단일 애플리케이션 내부에서 동작하는 인메모리 이벤트 버스를 직접 구현합니다. 인메모리 버스는 Publisher, Multicaster, Handler(동기/비동기/트랜잭션 연동 버전)로 구성하고, 트랜잭션 phase(Before Commit/After Commit/After RollBack/After Completion)에 맞춰 훅 실행을 지원합니다. 비동기 핸들러 실행은 Go 루틴 풀을 활용하고, 비동기 에러 처리는 ErrorHandler를 등록해 로깅을 포함한 처리 방식을 제공하도록 설계합니다. 이벤트 버스 도입 후에는 핵심 비즈니스 로직과 관심사 분리가 강화되고, 핸들러 추가만으로 확장하며 트랜잭션 phase 관리도 유연해졌다고 정리합니다. 향후 내부 이벤트를 외부 메시지 큐로 전환해 영속성과 수평적 확장을 더 확보할 가능성도 언급합니다.

연관 게시글