이벤트 기반 아키텍처를 선호하는 이유를 실제 프로젝트 경험과 연결해 설명
저는 이벤트 기반 아키텍처(EDA)를 선호합니다. 첫 번째 이유는 서비스 간 의존성을 낮출 수 있다는 점입니다. 팀 프로젝트에서 REST 동기 호출 방식으로 연결했을 때, 하나의 서비스가 느려지면 전체 응답이 지연되는 문제를 겪었습니다. 이후 Kafka를 이용한 비동기 방식으로 리팩토링했더니 개별 서비스의 배포 주기가 독립적으로 관리됐고, 장애 전파도 줄었습니다. 장점으로는 서비스 확장 시 기존 코드를 수정하지 않고 구독자만 추가하면 되는 유연성이 큰 이점이었습니다. 단점은 이벤트 순서 보장과 중복 처리 설계가 복잡해진다는 점인데, 이 부분은 idempotent consumer 패턴을 적용해 해결했습니다.
패턴 선택은 항상 서비스 규모와 팀 역량을 같이 고려해야 한다고 생각합니다.