1) 특정 코드에서 메시지 전달 함수(A) 호출

2) A는 메시지를 보내기 전에 로그를 남김.

 => 로그 남기는데 실패할 수 있음. 실패하면 A에게 실패 리턴

3) A는 B에게 메시지를 보냄

 => B에게 메시지를 보내는 것을 실패할 수 있음. 실패하면... 실패 로그는 필요 없다. 그대로 콜러에게 실패 리턴

4) B는 A에게 응답함

 => A에게 응답을 실패할 수 있음. 그리고, A가 B에게 재전송할 수 있음. 그런데, B는 해당 메시지를 이미 처리했을 수 있으니 거르는 시스템이 필요

5) A는 응답이 안오면 재전송해야함.

 => 응답이 안와서 재전송을 하는데, 재전송하고 응답이오면 재전송을 멈춰야함. 

 => N번 재전송하고 실패하면 A에게 실패 리턴

6) 응답을 받으면, A는 로그 갱신

7) A는 A를 호출한 코드에 응답을 함.


여기서 크리티컬한 부분은 

A를 호출하여 B에게 메시지를 보냈고, 

B는 이를 처리했는데, 

응답이 실패해서 A를 호출한 코드가 이를 실패했다고 여기는 부분을 세련되게 처리하기 어렵다는거네


이건 이 등기우편 시스템안에서 해결할 수 있는 부분이 아닌거같네 -ㅅ-;



이정도면 찐빠나는 부분이 있나?