diff --git a/docs/requirements.md b/docs/requirements.md index 02d6d64..d778662 100644 --- a/docs/requirements.md +++ b/docs/requirements.md @@ -9,7 +9,7 @@ ## 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. 2. **Efficient Large Payload Handling**: Implement intelligent transport selection based on payload size: - - **Direct Transport**: Small payloads (<1MB) sent directly via NATS - - **Link Transport**: Large payloads (≥1MB) uploaded to HTTP file server, URL sent via NATS + - **Direct Transport**: Small payloads (<0.5MB) sent directly 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. @@ -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 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 | ### 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 deserialization overhead | <50ms for 10KB payload | Benchmark tests | | NATS connection establishment | <100ms | Connection pool benchmarks | -| File upload latency | <1s for 1MB file | Integration tests | -| File download latency | <1s for 1MB file | Integration tests | +| File upload latency | <1s for 0.5MB file | Integration tests | +| File download latency | <1s for 0.5MB file | Integration tests | ### Scalability Requirements @@ -206,7 +206,7 @@ NATSBridge is a cross-platform, bi-directional data bridge that enables seamless | 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 | ### Maximum Payload Size