Kafka#

Kafka is a distributed message broker that allows the application to publish and subscribe to topics. It plays a pivotal role in Warehouse Blueprint applications by distributing the data to various microservices for advanced analytics. These microservices, in turn, generate new messages and feed them back to Kafka for downstream use. In scenarios where users require custom real-time analytics, they have the option to either consume data from Kafka or produce data to Kafka through their microservices.

Additional information regarding Kafka can be found in the Quickstart Guide.

Kafka topics used by various microservices are as follows:

Kafka topics#

Name

Data Format

Class Name

Description

mdx-raw

Protobuf

nv.Frame

The topic where the Perception microservice sends frame metadata.

mdx-bev

Protobuf

nv.Frame

The topic where the Perception microservice sends Bird’s Eye View (BEV) based frame data.

mdx-behavior

Protobuf

nv.Behavior

The topic used by the analytics pipeline to send behavior data. Refer to Behavior Processing for details.

mdx-behavior-plus

Protobuf

nv.Behavior

Used by the analytics pipeline to send enhanced behavior data, like assigning cluster details to behaviors.

mdx-alerts

Protobuf

nv.Behavior

For all anomaly data sent by the analytics pipeline.

mdx-events

Protobuf

nv.Behavior

Used for sending various events such as IN/OUT tripwire events and ENTRY/EXIT ROI events.

mdx-frames

Protobuf

nv.Frame

This topic is for enriched frames metadata, which may include additional metrics and analytics, such as FOV & ROI occupancy.

mdx-mtmc

JSON

N/A

Used by the Multi-Camera Tracking (MTMC Analytics) microservice for sending MTMC-related data.

mdx-rtls

Protobuf

nv.Frame

Used by the Real Time Location System (RTLS) microservice for sending RTLS-related data.

mdx-amr

JSON

N/A

Used to send Autonomous Mobile Robot’s (AMR) location and events data.

mdx-space-utilization

Protobuf

nv.SpaceUtilization

Used for sending space utilization analytics data.

mdx-notification

JSON

N/A

For sending various notifications such as calibration updates, configuration changes, and sensor management.

mdx-vlm-alerts

Protobuf

nv.Behavior

Used for sending Vision Language Model (VLM) verified alerts.

mdx-incidents

Protobuf

nv.Incident

Used for sending incident data from the analytics pipeline.

mdx-vlm-incidents

Protobuf

nv.Incident

Used for sending Vision Language Model (VLM) verified incident data.

mdx-embed

Protobuf

nv.VisionLLM

Used for sending embedding data for vector similarity searches.

Note

  • You can use this Kafka Python library to produce and consume messages. You can find more details regarding the library and sample code over here.