idempotency 2

AWS SQS를 이용한 알림톡 모듈 - Enqueue/Dequeue 구현 및 로직 정리

기본 흐름 구성우리 서비스에서는 특정 이벤트 발생 -> Producer가 SQS에 메시지를 Enqueue -> Consumer가 Polling으로 Dequeue 후 알림톡 발송 -> 성공 시 메시지 삭제 흐름으로 알림톡 모듈을 구성하였다. 과금 방식그리고 과금(잔액 차감)은 "큐에 들어간 순간 바로 차감"이 아니라, Enqueue 시점에는 예약 차감 & 임시 과금 상태를 저장하고 Dequeue 후 발송 성공 시점에 확정 차감 & 실제 잔액을 차감하는 식으로 구성하였다. Enqueue 단계에서 잔액을 바로 차감하지 않는 이유를 설명하자면, SQS는 기본적으로 적어도 한 번 전달될 수 있고, 네트워크/타임아웃/컨슈머 장애로 인해 같은 메시지가 중복 처리될 가능성이 있다. 또한, 외부 알림톡 벤더 API는 ..

AWS SQS를 이용한 알림톡 모듈 개발 - SQS의 개념 및 작동 방식 (+SQS를 선택한 이유)

SQS란? SQS(Simple Queue Service)는 AWS에서 제공하는 완전 관리형 메시지 큐 서비스로, 분산 시스템과 애플리케이션 간의 메시지(작업)를 안정적으로 주고받도록 하여 서비스들을 분리(Decoupling)하고 확장성을 높여주는 역할을 한다. SQS는 생산자(Producer)가 보낸 메시지를 Enqueue를 통해 큐에 저장하고, 소비자(Consumer)가 필요할 때 큐에서 그 메시지를 가져가(Dequeue) 처리하는 비동기 방식으로 작업이 이루어진다. SQS의 작동 방식위 그림은 AWS SQS의 작동 방식이다. 맨 왼쪽의 Producer는 메시지를 제공하는 쪽이다. 즉, 메시지를 큐에 넣는 쪽을 producer라고 한다. 이렇게 큐에 들어간 메시지는 설정에 따라 서버사이드 암호화(S..