Skip to content

merge: (#962) Outbox 패턴 단일 처리 지점으로 리팩토링#965

Merged
ryujaemin08 merged 2 commits intodevelopfrom
refactor/962-outbox-single-processor
Jan 19, 2026
Merged

merge: (#962) Outbox 패턴 단일 처리 지점으로 리팩토링#965
ryujaemin08 merged 2 commits intodevelopfrom
refactor/962-outbox-single-processor

Conversation

@ryujaemin08
Copy link
Member

작업 내용 설명

  • EventHandler에서 즉시 발송 로직 제거
  • OutboxJob(Scheduler)에서만 메시지 처리하도록 변경
  • 불필요한 OutboxPort 메서드 제거 (findById, deleteById)

주요 변경 사항

  • NotificationEventHandler: AFTER_COMMIT 즉시 발송 로직 제거, BEFORE_COMMIT 저장만 수행
  • DeviceTokenEventHandler: 동일하게 수정
  • OutboxPort: findById, deleteById 메서드 제거
  • OutboxPersistenceAdapter: 해당 메서드 구현 제거

결과물

Race Condition 방지를 위해 단일 처리 지점(OutboxJob)으로 구조 단순화

기존 구조에서는 EventHandler와 OutboxJob 두 곳에서 메시지 발송을 시도하여 중복 발송 가능성이 있었습니다.
Debezium 등 대부분의 Outbox 패턴 구현에서 권장하는 단일 처리 지점 방식으로 변경했습니다.

체크리스트

  • 어플리케이션 구동(혹은 테스트)시 오류는 없나요?
  • 생성된 코드에 Javadoc 주석을 추가 하였나요?
  • 생성된 코드에 대한 테스트 코드가 작성 되었나요?

관련 이슈

@ryujaemin08 ryujaemin08 added the refactor 코드 리팩토링 할 경우 label Jan 19, 2026
@ryujaemin08 ryujaemin08 self-assigned this Jan 19, 2026
@ryujaemin08 ryujaemin08 force-pushed the refactor/962-outbox-single-processor branch from f00329b to 2599c2b Compare January 19, 2026 02:21
@github-actions
Copy link

📊 Main Service Coverage Report

Overall Project 24.22% 🍏
Files changed 100% 🍏

File Coverage
OutboxPersistenceAdapter.kt 100% 🍏
DeviceTokenEventHandler.kt 86.08% 🍏
NotificationEventHandler.kt 73.2% 🍏

@github-actions
Copy link

📊 Notification Service Coverage Report

Overall Project 25.27% 🍏

There is no coverage information present for the Files changed

@github-actions
Copy link

📊 Gateway Service Coverage Report

Overall Project 0% 🍏

There is no coverage information present for the Files changed

@ryujaemin08 ryujaemin08 merged commit 0920170 into develop Jan 19, 2026
5 checks passed
@ryujaemin08 ryujaemin08 deleted the refactor/962-outbox-single-processor branch January 19, 2026 12:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

refactor 코드 리팩토링 할 경우

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Outbox 패턴 단일 처리 지점으로 리팩토링

2 participants