클라이언트가 WebSocket 연결을 열고 인증 정보를 보낸다.
연결 시점과 이벤트 수신 시점의 권한을 모두 확인한다.
클라이언트는 WebSocket을 열어 관심 이벤트를 구독하고, 서버는 PubSub에 발행된 이벤트를 해당 구독자에게 밀어준다.
클라이언트가 WebSocket 연결을 열고 인증 정보를 보낸다.
관심 필드와 변수로 이벤트 스트림을 등록한다.
mutation 또는 service가 domain event를 PubSub에 발행한다.
구독 변수, 권한, tenant 조건으로 받을 대상을 가른다.
열린 채널로 payload를 전송하고 UI가 갱신된다.
이벤트 이름, 필터, 반환 타입을 GraphQL 계약으로 노출한다.
데이터 변경 후 어떤 이벤트를 발행할지 결정한다.
단일 서버는 PubSub, 분산 환경은 Redis/Kafka 같은 브로커로 전달한다.
연결 시점과 이벤트 수신 시점의 권한을 모두 확인한다.
메모리 PubSub은 인스턴스가 늘면 이벤트가 흩어진다.
연결 종료 시 구독과 리소스를 정리해 누수를 막는다.