giip

MQE Detailed Specification Guide (Technical)

Technical specifications for the protocols, data structures, and reliability mechanisms of the GIIP Message Queue Engine (MQE).

🔔 Go to Message Queue Configuration →

📋 Overview

The Message Queue Engine (MQE) acts as the nervous system of the GIIP ecosystem. It is designed for high-performance and high-reliability communication between distributed agents and the central server, incorporating technical mechanisms to minimize data loss even under unstable network conditions.

🛠️ Technical Specifications

1. Communication Protocols & Ports

  • Primary Protocol: AMQP 0-9-1 (RabbitMQ-based) or AMQP 1.0 (Azure Service Bus-based)
  • Port: 5671 (TLS encrypted communication mandatory)
  • Fallback: Supports WebSocket-based HTTPS (443) communication to handle firewall environments.

2. Message Payload Structure (JSON)

All messages include the following common header:

{
  "header": {
    "msgId": "UUID",
    "timestamp": "ISO8601",
    "originNode": "AgentID",
    "priority": "0-9"
  },
  "payload": {
    "type": "METRIC | ISSUE | COMMAND",
    "data": { ... }
  }
}

3. Reliability & Security

  • At-Least-Once Delivery: Messages are not deleted from the queue until the consumer completes processing and sends an ACK.
  • End-to-End Encryption: Payload data can be encrypted with AES-256 at the point of origin.
  • Circuit Breaker: Automatically blocks traffic from specific nodes in case of overload to protect the entire system.

⚙️ Developer Notes

  • Agent Implementation: When developing a new agent, you must utilize the MQE SDK to implement heartbeat and reconnection logic.
  • Handling Latency: If processing speed on the consumer side slows down, Queue Depth will increase; increase efficiency through scaling out.

Troubleshooting

SymptomCauseSolution
MQE connection over port 5671 failsThe firewall blocks the AMQP (5671) portSwitch to the WebSocket-based HTTPS (443) fallback communication
The same message is processed more than onceAt-Least-Once delivery resends before the ACKImplement idempotent handling based on msgId on the consumer side
Queue Depth keeps increasingConsumer processing speed cannot keep up with the inflowAdd more consumers by scaling out
Inbound messages from a specific node are blockedThe Circuit Breaker tripped due to overload trafficReconnect via heartbeat/reconnection logic once the traffic normalizes

Version: 1.0 Last Updated: 2026-03-19 Source: giipv3/public/help/mqe-spec.en.md