Outbox 패턴과 메시지 전송
전송할 메시지를 업무 데이터와 같은 트랜잭션으로 테이블에 기록하고, 전송은 별도 작업에 위임한다.
끊김과 중복에도 결과가 어긋나지 않게 하는 연계 설계.
전송할 메시지를 업무 데이터와 같은 트랜잭션으로 테이블에 기록하고, 전송은 별도 작업에 위임한다.
재시도 간격은 두 배씩 증가시키되 상한을 두고, 무작위성을 더하여 여러 클라이언트의 재시도가 겹치지 않게 한다.
장비별로 다른 프로토콜은 어댑터 내부에 두고, 상위 코드는 공통 인터페이스와 공통 상태 모델만 참조한다.
요청마다 고유 키를 부여하고 키와 결과를 한 트랜잭션에 저장하면, 재시도로 두 번 수신된 요청도 한 번만 처리된다.
재연결 시 마지막으로 수신한 순번을 통지하여 누락된 메시지만 수신하고, 상태가 일치할 때까지 새 지시는 보류한다.