고민의 시작프로젝트 진행 중에 변경할 사항이 생겼다.지금까지는 스프링 내에서 In-Memory Queue에 직접 담아두는 방식으로 거래 트랜잭션을 처리했다.이 방법은 속도는 빠를지언정 서버가 다운되는 등의 갑작스러운 상황에 대응할 수 없었다. 특히 kubernetes의 pod는 잦은 스케일링으로 인해 거래 엔진의 갯수가 일정하지 않으므로 트랜잭션 관리에 어려움이 있었다.이 부분을 해결하고자 큐를 외부로 분리해서 중앙집중적으로 관리하는 게 낫다고 판단했다.그렇다면 여기서 또 다른 고민이 생긴다. 어떤 툴을 사용해야 하는가? 위 차트는 설명을 위한 참고일 뿐, 절대 기준으로 삼으시면 안됩니다. SQS, Kafka, RabbitMQ 등등 다양한 선택지가 있었다. 모두 훌륭한 툴이지만 당연히 하나만 골라야 한다..