MQE Detailed Specification Guide (Technical)
Technical specifications for the protocols, data structures, and reliability mechanisms of the GIIP Message Queue Engine (MQE).
📋 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 Depthwill increase; increase efficiency through scaling out.
Troubleshooting
| Symptom | Cause | Solution |
|---|---|---|
| MQE connection over port 5671 fails | The firewall blocks the AMQP (5671) port | Switch to the WebSocket-based HTTPS (443) fallback communication |
| The same message is processed more than once | At-Least-Once delivery resends before the ACK | Implement idempotent handling based on msgId on the consumer side |
Queue Depth keeps increasing | Consumer processing speed cannot keep up with the inflow | Add more consumers by scaling out |
| Inbound messages from a specific node are blocked | The Circuit Breaker tripped due to overload traffic | Reconnect via heartbeat/reconnection logic once the traffic normalizes |
Version: 1.0
Last Updated: 2026-03-19
Source: giipv3/public/help/mqe-spec.en.md