← 전체 글 보기

Discord Interaction을 도메인 상태 머신에 붙이는 법: 중복·역순 이벤트 대응 설계

외부 플랫폼 연동의 어려움은 API 호출보다 상태 정합성에 있다. 특히 Discord Interaction은 이벤트 중심이기 때문에 서비스 도메인 상태와 연결하는 순간 복잡도가 급격히 올라간다.

이 글은 Interaction 이벤트를 운영 가능한 상태 모델로 연결한 방식에 대한 정리다.

문제 정의

핵심 선택

이벤트 수신과 도메인 처리를 분리했다.

핵심은 핸들러가 모든 걸 처리하지 않게 만드는 것이다. 핸들러는 입력 정규화와 검증만 맡고, 상태 전이는 도메인 레이어가 책임진다.

플랫폼 제약과 도메인 모델 연결

Discord Interaction은 빠른 초기 응답이 필요하기 때문에, 도메인 계산을 끝내고 응답하면 늦는다.

그래서 경로를 두 개로 나눴다.

이 구조가 없으면 타임아웃과 상태 꼬임이 동시에 발생한다.

상태 전이 예시

각 전이에는 event_id, source, version 메타데이터를 같이 저장했다. 이렇게 해야 재시도와 중복 처리 기준을 코드로 고정할 수 있다.

운영 관점에서 얻은 이점

운영 체크리스트

이 네 가지를 지키면 외부 플랫폼 이벤트를 내부 도메인 규칙으로 안정적으로 흡수할 수 있다.

참고 및 인용

참고: Discord Interaction API는 응답 타이밍과 후속 메시지 흐름을 명시적으로 규정한다. Receiving and Responding

참고: 상태 머신 모델링은 이벤트 순서 역전/중복 처리 같은 비동기 문제를 구조적으로 분리하는 데 유효하다. State Machine