Pub-Sub(퍼브-섭, 발행-구독)
발행-구독(Pub-Sub)은 발행자가 수신자를 알 필요 없이 이벤트를 중앙 브로커에 발행하고, 구독자가 특정 이벤트 유형에 관심을 등록해 해당 이벤트를 비동기적으로 받는 메시징 패턴입니다.
이해하기 Pub-Sub(퍼브-섭, 발행-구독)
Pub-Sub은 메시지의 송신자(발행자)와 수신자(구독자)를 분리합니다. 발행자는 누가 구독하는지 신경 쓰지 않고 이벤트를 발행합니다. 구독자는 관심 있는 이벤트 유형을 등록해, 적절한 이벤트를 폴링이나 발행자와의 직접 연결 없이도 받을 수 있습니다. 이런 분리는 시스템 확장에 유리하여, 새로운 구독자를 추가해도 기존 발행자나 구독자에 아무런 변경이 필요 없습니다. RabbitMQ, Apache Kafka, Google Cloud Pub/Sub와 같은 메시지 브로커가 이 패턴을 대규모로 구현합니다.
GAIA 활용 방법 Pub-Sub(퍼브-섭, 발행-구독)
GAIA는 RabbitMQ를 통해 pub-sub 메시징을 활용하여 에이전트 워크플로우를 조정합니다. 이메일이 도착하면 이메일 수신 서비스가 이벤트를 브로커에 발행(publish)합니다. 여러 구독자(subscriber)가 반응할 수 있습니다. 이메일 분류 에이전트는 긴급도를 처리하고, 작업 추출 에이전트는 작업을 생성하며, 캘린더 에이전트는 일정 관련 언급을 확인합니다. 이러한 pub-sub 설계 덕분에 GAIA는 동일한 이벤트를 여러 병렬 워크플로우에서 효율적으로 처리할 수 있습니다.
관련 개념
이벤트 기반 아키텍처
이벤트 기반 아키텍처(EDA)는 시스템 구성 요소들이 이벤트(특정 동작이 발생했다는 개별 알림)를 통해 소통하는 소프트웨어 설계 패턴입니다. 이를 통해 시스템 간 결합도를 낮추고, 실시간 반응성과 확장 가능한 반응형 시스템을 구현할 수 있습니다.
메시지 큐
메시지 큐는 생산자(producer)가 보낸 메시지(작업 또는 이벤트)를 저장하고, 이를 소비자(consumer)에게 전달해 처리하도록 하는 시스템입니다. 이로 인해 두 시스템이 분리되어 비동기적이고 신뢰성 높은 통신이 가능합니다.
Webhook
Webhook은 시스템 내에서 사전 정의된 이벤트가 발생할 때마다 지정된 URL로 자동화된 HTTP 요청을 보내는 HTTP 콜백 메커니즘입니다. 이를 통해 서비스 간 실시간 알림과 통합이 폴링 없이 가능합니다.
이벤트 기반 자동화
이벤트 기반 자동화는 워크플로우가 특정 이벤트(예: 새 이메일 도착, 캘린더 이벤트 생성, 메시지 게시 등)에 반응하여 자동으로 트리거되는 방식으로, 실시간적이고 반응적인 처리가 가능합니다.


