온보딩 세션 #7: Publishing DomainEvent using Local Transaction

Опубликовано: 05 Август 2026
на канале: appkr
181
5

postman test
메시지 브로커(Kafka)를 이용해서 서비스간 결합도를 낮추는 통신 방식
"도메인 이벤트를 발행한다", "메시지를 발행한다"
업무 표준
메시지 스키마: 위키 "Message Schema" 문서 참고
at-least-once, 순서 보장: 위키 "순서보장 이벤트 기반 아키텍쳐" 문서 참고
메시지 본문은 약속하기 나름
메시지 vs 커맨드
메시지일때는 producer의 모델을 consumer가 소비; consumer가 누군지 모름
커맨드일 때는 producer가 consumer의 모델에 맞춰 커맨드 발행; producer가 consumer를 알고 있음
기본 동작 흐름
AlbumService → PersistentEventCreator: persistent_events 테이블에 레코드 생성 확인
PersistentEventPublisher → MessageProducer → MessageChannel: kafka 메시지 발행 확인
Refactoring with AbstractAggregateRoot
JPA lifecycle event → @EventListener → PersistentEventCreator
@ConditionalOnProperties

```bash
kafkactl get topics
kafkactl consume local-msabootcamp-output --from-beginning --print-headers
```