- 아웃박스 패턴은 비동기 시스템에서 중요하며, 전자상거래나 금융 시스템 등 다양한 곳에서 사용됩니다. 📦
- 트랜잭션 아웃박스/인박스 패턴은 최종적으로 일관성 있고 강력한 비동기 시스템을 구축하는 데 도움이 됩니다. 튼튼한 시스템 💪
- 메시지 브로커를 추가하여 비동기성을 높일 수 있지만, 메시지 브로커가 다운되면 문제가 발생할 수 있습니다. 🐇
- 트랜잭션 아웃박스 패턴은 데이터베이스에 아웃박스 테이블을 추가하여 메시지 브로커 장애 시에도 데이터를 보존합니다. 🗄️
- 릴레이 서비스는 아웃박스 테이블을 주기적으로 폴링하여 메시지를 메시지 브로커로 전송하고, 전송 상태를 업데이트합니다. 🔄
- 아웃박스 테이블을 데이터베이스에 두는 이유는 데이터 손실 방지 및 복제에 있어 데이터베이스가 가장 안전한 장소이기 때문입니다. 🛡️
- 릴레이 서비스의 폴링 간격을 조정하거나 병렬 처리를 통해 데이터베이스 부하를 최적화할 수 있습니다. ⚙️
- 인박스 패턴은 아웃박스 패턴의 반대로, 수신자 측에서 메시지 처리 실패를 방지하기 위해 사용됩니다. 📥
- 아웃박스 및 인박스 패턴은 기본적으로 동일하며, 단지 반대 방향으로 적용되는 것입니다. ⚖️
- 코드 예시를 통해 주문 서비스가 주문을 데이터베이스와 아웃박스 테이블에 동시에 저장하는 것을 확인할 수 있습니다. 💻