Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[6주차] 이종분산 트랜잭션 #37

Open
dani-lee-418 opened this issue Nov 7, 2023 · 5 comments
Open

[6주차] 이종분산 트랜잭션 #37

dani-lee-418 opened this issue Nov 7, 2023 · 5 comments

Comments

@dani-lee-418
Copy link

dani-lee-418 commented Nov 7, 2023

시스템에 여러 DB붙어서 트랜잭션을 어떻게 걸어야하나.. 고민했었는데 용어가 있었네요,
예시) 회원탈퇴 시
[쇼핑몰 DB: 계정탈퇴 -> ERP연동DB:ERP개인정보 삭제 등록] 하다 연동 DB에서 오류가나면 롤백을 해야되는데
이런 경우 어떻게 처리하시나요?

@jiwoo-kimm
Copy link

다은쌤)

  1. sync 요청 후 tx 롤백
  2. async 요청 쌓고 배치성 처리
  3. 또 다른 방법이 있을까요?

@jiwoo-kimm
Copy link

성훈쌤)

두 요구사항이 반드시 tx으로 묶여야 하는지부터 확인해야 할 것 같다.

  1. soft delete 하고 중간에 상태를 하나 더 두는 방법

@jiwoo-kimm
Copy link

우빈쌤)

  1. 비동기여도 되면 event driven으로 처리할 것 같다.
  2. 동기여야 하는 경우 (보통 서비스 간 동기 요청 처리)
  • 기본적으로 외부 요청 응답을 신뢰하고 처리한다. 외부에서 예외적으로 실패하는 케이스는 고려하지 X
  • 외부 요청에 대해 성공 응답을 받으면 반드시 성공하도록 최대한 보장
  • 데일리 대사 배치로 정합성 검증 & 싱크

@jiwoo-kimm
Copy link

우빈쌤)

2PC도 괜찮아보이는데 성능 이슈가 있다 하고 오버헤드가 더 큰 것 같다..

성훈쌤)

차라리 단일노드가...

@jiwoo-kimm
Copy link

성훈쌤)

강한 원자성 보장이 필요한 경우가 아니라면 보통 비동기로 tx 분리하는 게 더 좋은 방향이라고 생각한다.

지그재그 로그인 이슈 omg...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants