데이터 정합성 확보(2) - 아웃박스 패턴 구현
항해 Lite·2025. 12. 8.
이 프로젝트에서는 진작에 Redis를 쓰고 있었다.그래서 당연히 생각해야 하는 것이 분산 트랜잭션이었다. 나는 분산 트랜잭션을 구현하기 위해 아웃박스 패턴을 사용하기로 했다.아웃박스 패턴이 무엇인지는 이전 포스팅에서 확인 일단 아웃박스 패턴을 적용할 flow를 살펴보자.fun make(dto: ReservationRequest) { if (!getAvailableSeat(dto.date).contains(dto.seatNumber)) { throw RuntimeException("이미 예약되어있는 좌석입니다.") } val reservation = Reservation( date = dto.date, seatNumber = dto.seatNumber,..