마이크로서비스 아키텍처에서 이벤트 기반 통신을 사용할 때 가장 큰 고민 중 하나는 **트랜잭션 일관성**입니다. ## 문제 상황일반적으로 다음과 같은 코드를 작성하게 됩니다.@Transactionalpublic void createArticle(ArticleCreateRequest request) { // 1. 데이터베이스에 저장 Article article = articleRepository.save(new Article(...)); // 2. Kafka에 이벤트 발행 kafkaTemplate.send("article-created", event);}하지만 이 코드에는 심각한 문제가 있습니다. 문제 1: 트랜잭션 실패 시 메시지 발행만약 데이터베이스 저장 후, 트랜잭션이 ..