Skip to content
This repository was archived by the owner on May 12, 2026. It is now read-only.

Commit d75bdae

Browse files
committed
update arch with QUIC/MQTT plane decisions
1 parent cb0c021 commit d75bdae

1 file changed

Lines changed: 8 additions & 5 deletions

File tree

docs/architecture.md

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,24 +38,27 @@ The rule engine enables complex, event-driven orchestration across all three cli
3838
To support low-latency signaling alongside high-volume data transport across an intranet worksite, we are exploring well-supported, off-the-shelf open platforms to replace custom legacy patterns (e.g., pure WebSockets).
3939

4040
### Signaling (Low-Latency, 2-Way)
41-
* **Target Platforms**: **NATS** or **MQTT**.
41+
* **Target Platforms**: **MQTT** (Primary) or **NATS**.
42+
* **Recommendation**: **MQTT** is the recommended choice for cross-platform signaling. It is purposefully designed for edge scenarios, gracefully handles spotty connections, and has robust, mature client libraries across iOS (CocoaMQTT) and Android (Eclipse Paho). This fits perfectly into the Industrial Error Loop orchestration.
4243
* **Purpose**: Lightweight pub/sub for control planes, hardware error messaging, rule triggers, and maintaining live device registries.
4344
* **Fallback**: WebSocket is maintained for simple browser-client integration.
4445

4546
### Data Transport (High-Volume, 2-Way)
46-
* **Target Platforms**: **QUIC** (HTTP/3) or **gRPC**.
47+
* **Target Platforms**: **QUIC** (HTTP/3) (Primary) or **gRPC**.
48+
* **Recommendation**: **QUIC** (HTTP/3) is the recommended primary choice for high-volume, multiplexed data transfer. It natively avoids head-of-line blocking, making it exceptionally resilient on spotty edge networks when concurrently sending video, depth, and audio streams. **gRPC** remains a strong secondary option for strict RPC coordination where specific typed API contracts are preferred.
49+
* **Media Addendum**: For purely live video/audio streaming, **WebRTC** is the recommended standard as it natively handles packet loss, adaptive bitrates, and has full native cross-platform support.
4750
* **Purpose**: Resilient, multiplexed binary transfer. QUIC avoids head-of-line blocking for sending multiple concurrent video/depth/audio streams. gRPC provides strong typing for RPC coordination.
4851
* **Legacy**: Standard HTTP chunked uploads for simple, large-file ingest.
4952

5053
### Mobile Client Protocol Support Levels
5154

52-
Both iOS and Android provide robust support for these communication protocols, with QUIC being the newest and still in the process of wider adoption. HTTP and WebSocket are well-established and fully supported on both platforms.
55+
Both iOS and Android provide robust support for these communication protocols. HTTP and WebSocket are well-established, while QUIC is fully supported on modern OS versions, offering unparalleled performance benefits.
5356

5457
#### QUIC Protocol Support
5558
| Platform | Support Level | Details |
5659
| :--- | :--- | :--- |
57-
| **iOS** | Experimental | QUIC is supported through the Network framework, allowing developers to create network connections using QUIC. |
58-
| **Android** | Supported | QUIC is available via the Cronet library, which can be loaded through Google Play Services. |
60+
| **iOS** | Supported | QUIC (HTTP/3) is enabled by default in `URLSession` (iOS 15+). Custom raw QUIC streams can be built via `Network.framework` (iOS 15+). |
61+
| **Android** | Supported | QUIC is available via the Cronet library (Android API 29+ / Android 10+ recommended for best support). |
5962

6063
#### HTTP Protocol Support
6164
| Platform | Support Level | Details |

0 commit comments

Comments
 (0)