We’re building a connectivity app on AI Bridge v3.0.1 that subscribes cameras to a metadata topic (ONVIF bounding boxes) and an analytics-event topic, pulls RTSP, runs inference in the cloud, and publishes detections back. Since inference is billed per stream,
we want to stop pulling video and inferring on a camera the moment its topic is unsubscribed in Management Client — not just when the camera itself is deleted.
What we’ve run into:
-
cameras { communicationStatus } only tells us whether a camera exists and is online. It doesn’t expose whether our topic is currently subscribed for that camera.
-
Unsubscribing our topic from a camera (Processing Server tab) doesn’t stop the RTSP stream on our side. We keep receiving frames from the streaming service indefinitely, even though the topic is no longer subscribed.
-
We haven’t found any GraphQL query, documented or in the schema, that reports per-camera + per-topic subscription state.
Current approach:
We consume AI Bridge’s internal stream_subscriptions Kafka topic, which the proxy appears to re-affirm on a timer for each actively-subscribed camera+topic. When a path stops being re-affirmed past that interval, we treat it as unsubscribed and stop
pulling/inferring on that camera.
Question:
Is there a supported way to detect a per-camera topic unsubscribe that we’re missing? Is stopping RTSP consumption on unsubscribe expected to be handled client-side by the IVA app, or from the bridge side? Any pointers about what the suggested approach is, or whether the Kafka-based approach is an accepted pattern, would help us avoid running inference (we don’t want to add cost to a customer if it’s not needed) on cameras that are no longer subscribed.