Engineering cases
하나의 실패 경계를
끝까지 따라갑니다.
프로젝트의 전체 기능을 반복하지 않고, 사용자에게 영향을 주는 한 가지 경계와 선택한 trade-off만 다룹니다.
Concert Booking
같은 좌석을 누른 두 사람에게 다음 행동까지 돌려주기
대기열 입장, 동일 요청 재시도, 좌석 상태 변경을 한 장치에 몰지 않고 각각의 경계가 책임지게 했습니다.Concert Booking
commit 이후의 실패를 사라진 사건으로 만들지 않기
Outbox는 발행 실패를 DB에 남기고, DLT는 처리 실패를 정상 흐름에서 격리해 다시 시작할 위치를 제공합니다.Realtime Chat
상대가 본 메시지는 먼저 저장돼 있어야 한다
accepted와 persisted를 구분하고 DB commit 뒤에만 broadcast해 실시간 화면과 복구 가능한 기록을 같은 순서로 맞췄습니다.BorrowMe