피드로 돌아가기
Event Triggers on Garudust
Dev.toDev.to
Backend

단일 primitive 기반 비동기 Webhook 아키텍처를 통한 Event-Driven Agent 구현

Event Triggers on Garudust

Garudust2026년 5월 23일6intermediate

Context

다양한 외부 이벤트(Chat, Cron, Webhook)를 개별적으로 처리함에 따른 인터페이스 파편화 문제 발생. 모든 진입점을 단일 실행 모델로 통합하여 시스템 복잡도를 낮추고 확장성을 확보해야 하는 상황.

Technical Solution

  • agent.run(task)라는 단일 Base Primitive로 모든 외부 요청을 수렴시키는 단일화 구조 설계
  • Axum 기반 HTTP 서버를 통한 Webhook Adapter 구현 및 202 Accepted 즉시 응답을 통한 비동기 처리 체계 구축
  • HMAC-SHA256 서명 검증 및 Private IP Callback 차단 Network Guard를 통한 보안 계층 강화
  • session_key를 통한 상태 유지(Stateful) 컨텍스트 관리로 단발성 태스크를 연속적 대화 세션으로 확장
  • 외부 시스템이 Filter/Match 로직을 전담하고 Garudust가 Execution을 담당하는 명확한 Separation of Concerns 적용

- 외부 이벤트 기반 AI 워크플로우 설계 시, 진입점을 단일 Primitive로 추상화하여 인터페이스 일관성 확보 - 긴 실행 시간이 소요되는 LLM 태스크 특성을 고려해 Synchronous Response 대신 Callback 기반의 비동기 아키텍처 채택 - 세션 식별자(session_key)를 통해 Stateless한 HTTP 통신 환경에서 Stateful한 에이전트 컨텍스트 유지 전략 검토 - Webhook 수신부의 보안을 위해 HMAC 서명 검증 및 내부망 접근 제한(SSRF 방지) 설정 적용

원문 읽기