update_docs #10
@@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
## Executive Summary
|
## Executive Summary
|
||||||
|
|
||||||
NATSBridge is a cross-platform, bi-directional data bridge that enables seamless communication between **Julia**, **JavaScript**, **Python**, and **MicroPython** applications using NATS as the message bus. The system implements the **Claim-Check pattern** for efficient handling of large payloads (>1MB) by uploading them to an HTTP file server instead of sending raw binary data over NATS.
|
NATSBridge is a cross-platform, bi-directional data bridge that enables seamless communication between **Julia**, **JavaScript**, **Python**, and **MicroPython** applications using NATS as the message bus. The system implements the **Claim-Check pattern** for efficient handling of large payloads (>0.5MB) by uploading them to an HTTP file server instead of sending raw binary data over NATS.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -20,8 +20,8 @@ NATSBridge is a cross-platform, bi-directional data bridge that enables seamless
|
|||||||
1. **Cross-Platform Interoperability**: Enable seamless data exchange between Julia, JavaScript, Python, and MicroPython applications without platform-specific barriers.
|
1. **Cross-Platform Interoperability**: Enable seamless data exchange between Julia, JavaScript, Python, and MicroPython applications without platform-specific barriers.
|
||||||
|
|
||||||
2. **Efficient Large Payload Handling**: Implement intelligent transport selection based on payload size:
|
2. **Efficient Large Payload Handling**: Implement intelligent transport selection based on payload size:
|
||||||
- **Direct Transport**: Small payloads (<1MB) sent directly via NATS
|
- **Direct Transport**: Small payloads (<0.5MB) sent directly via NATS
|
||||||
- **Link Transport**: Large payloads (≥1MB) uploaded to HTTP file server, URL sent via NATS
|
- **Link Transport**: Large payloads (≥0.5MB) uploaded to HTTP file server, URL sent via NATS
|
||||||
|
|
||||||
3. **Unified API Across Platforms**: Provide consistent `smartsend()` and `smartreceive()` functions across all supported platforms while maintaining idiomatic implementations.
|
3. **Unified API Across Platforms**: Provide consistent `smartsend()` and `smartreceive()` functions across all supported platforms while maintaining idiomatic implementations.
|
||||||
|
|
||||||
@@ -48,7 +48,7 @@ NATSBridge is a cross-platform, bi-directional data bridge that enables seamless
|
|||||||
|-------|----------|---------------------|
|
|-------|----------|---------------------|
|
||||||
| **As a Julia developer**, I want to send text messages to JavaScript applications | P1 | Text messages are serialized, encoded, and received correctly across platforms |
|
| **As a Julia developer**, I want to send text messages to JavaScript applications | P1 | Text messages are serialized, encoded, and received correctly across platforms |
|
||||||
| **As a Python developer**, I want to send tabular data to Julia applications | P1 | DataFrame exchange works with both Arrow IPC and JSON formats |
|
| **As a Python developer**, I want to send tabular data to Julia applications | P1 | DataFrame exchange works with both Arrow IPC and JSON formats |
|
||||||
| **As a JavaScript developer**, I want to send large files (>1MB) to other applications | P1 | Large files are automatically uploaded to file server and URLs are sent via NATS |
|
| **As a JavaScript developer**, I want to send large files (>0.5MB) to other applications | P1 | Large files are automatically uploaded to file server and URLs are sent via NATS |
|
||||||
| **As a MicroPython developer**, I want to send sensor data with minimal memory usage | P1 | Direct transport works for payloads <100KB on memory-constrained devices |
|
| **As a MicroPython developer**, I want to send sensor data with minimal memory usage | P1 | Direct transport works for payloads <100KB on memory-constrained devices |
|
||||||
|
|
||||||
### Multi-Payload Support
|
### Multi-Payload Support
|
||||||
@@ -83,8 +83,8 @@ NATSBridge is a cross-platform, bi-directional data bridge that enables seamless
|
|||||||
| Message serialization overhead | <50ms for 10KB payload | Benchmark tests |
|
| Message serialization overhead | <50ms for 10KB payload | Benchmark tests |
|
||||||
| Message deserialization overhead | <50ms for 10KB payload | Benchmark tests |
|
| Message deserialization overhead | <50ms for 10KB payload | Benchmark tests |
|
||||||
| NATS connection establishment | <100ms | Connection pool benchmarks |
|
| NATS connection establishment | <100ms | Connection pool benchmarks |
|
||||||
| File upload latency | <1s for 1MB file | Integration tests |
|
| File upload latency | <1s for 0.5MB file | Integration tests |
|
||||||
| File download latency | <1s for 1MB file | Integration tests |
|
| File download latency | <1s for 0.5MB file | Integration tests |
|
||||||
|
|
||||||
### Scalability Requirements
|
### Scalability Requirements
|
||||||
|
|
||||||
@@ -206,7 +206,7 @@ NATSBridge is a cross-platform, bi-directional data bridge that enables seamless
|
|||||||
|
|
||||||
| Platform | Threshold | Notes |
|
| Platform | Threshold | Notes |
|
||||||
|----------|-----------|-------|
|
|----------|-----------|-------|
|
||||||
| Desktop (Julia/JS/Python) | 1MB (1,048,576 bytes) | Default size threshold |
|
| Desktop (Julia/JS/Python) | 0.5MB (1,048,576 bytes) | Default size threshold |
|
||||||
| MicroPython | 100KB (102,400 bytes) | Lower threshold for memory constraints |
|
| MicroPython | 100KB (102,400 bytes) | Lower threshold for memory constraints |
|
||||||
|
|
||||||
### Maximum Payload Size
|
### Maximum Payload Size
|
||||||
|
|||||||
Reference in New Issue
Block a user