update requirement doc
This commit is contained in:
@@ -136,20 +136,20 @@ msghandler is a cross-platform, bi-directional data bridge that enables seamless
|
|||||||
|
|
||||||
| ID | Requirement | Description |
|
| ID | Requirement | Description |
|
||||||
|----|-------------|-------------|
|
|----|-------------|-------------|
|
||||||
| **FR-001** | Cross-platform text messaging | System shall allow users to send text messages between Julia, JavaScript, Python, and MicroPython applications | FR-001 KPI: 95% of text messages delivered correctly across all platform pairs (<200ms latency) |
|
| **FR-001** | Cross-platform text messaging | System shall allow users to send text messages between Julia, JavaScript, Python, and MicroPython applications |
|
||||||
| **FR-002** | Cross-platform tabular data | System shall support DataFrame exchange between Julia and Python applications using Arrow IPC format | FR-002 KPI: 100% Arrow IPC round-trip integrity (Desktop), 100% JSON table round-trip integrity (Browser) |
|
| **FR-002** | Cross-platform tabular data | System shall support DataFrame exchange between Julia and Python applications using Arrow IPC format |
|
||||||
| **FR-003** | Large file handling | System shall automatically detect payloads ≥0.5MB and upload them to HTTP file server instead of sending via transport | FR-003 KPI: 99% successful file uploads to server for payloads ≥0.5MB |
|
| **FR-003** | Large file handling | System shall automatically detect payloads ≥0.5MB and upload them to HTTP file server instead of sending via transport |
|
||||||
| **FR-004** | Direct transport for small payloads | System shall send payloads <0.5MB directly via transport without file server upload | FR-004 KPI: 100% of payloads <0.5MB use direct transport |
|
| **FR-004** | Direct transport for small payloads | System shall send payloads <0.5MB directly via transport without file server upload |
|
||||||
| **FR-005** | MicroPython support | System shall support payloads <100KB on MicroPython devices using direct transport | FR-005 KPI: 100% of payloads <100KB delivered on MicroPython devices |
|
| **FR-005** | MicroPython support | System shall support payloads <100KB on MicroPython devices using direct transport |
|
||||||
| **FR-006** | Multi-payload messages | System shall accept and process lists of (dataname, data, type) tuples | FR-006 KPI: 100% correct parsing of multi-payload message lists |
|
| **FR-006** | Multi-payload messages | System shall accept and process lists of (dataname, data, type) tuples |
|
||||||
| **FR-007** | Payload type preservation | System shall preserve payload types when returning multi-payload messages | FR-007 KPI: 100% type integrity preserved across all platforms |
|
| **FR-007** | Payload type preservation | System shall preserve payload types when returning multi-payload messages |
|
||||||
| **FR-008** | Plik file server integration | System shall support Plik one-shot upload mode with upload ID and token handling | FR-008 KPI: 100% successful Plik upload/token handling |
|
| **FR-008** | Plik file server integration | System shall support Plik one-shot upload mode with upload ID and token handling |
|
||||||
| **FR-009** | Custom file server support | System shall provide handler function abstraction for custom HTTP file server implementations | FR-009 KPI: 100% handler abstraction works with custom implementations |
|
| **FR-009** | Custom file server support | System shall provide handler function abstraction for custom HTTP file server implementations |
|
||||||
| **FR-010** | Exponential backoff retry | System shall implement exponential backoff with configurable retries (default: 5, base_delay: 100ms, max_delay: 5000ms) for file server download failures | FR-010 KPI: 95% successful downloads within retry limit |
|
| **FR-010** | Exponential backoff retry | System shall implement exponential backoff with configurable retries (default: 5, base_delay: 100ms, max_delay: 5000ms) for file server download failures |
|
||||||
| **FR-011** | Correlation ID propagation | System shall propagate correlation IDs through all message processing steps | FR-011 KPI: 100% correlation IDs propagated through all steps |
|
| **FR-011** | Correlation ID propagation | System shall propagate correlation IDs through all message processing steps |
|
||||||
| **FR-012** | Message serialization | System shall serialize data types using Base64, JSON, or Arrow IPC encoding | FR-012 KPI: <50ms serialization overhead for 10KB payload |
|
| **FR-012** | Message serialization | System shall serialize data types using Base64, JSON, or Arrow IPC encoding |
|
||||||
| **FR-013** | Transport publishing | System shall return JSON string representation for caller to publish via transport layer (caller is responsible for actual transport publish) | FR-013 KPI: 100% JSON envelope generated correctly |
|
| **FR-013** | Transport publishing | System shall return JSON string representation for caller to publish via transport layer (caller is responsible for actual transport publish) |
|
||||||
| **FR-014** | Transport subscription | System shall receive and process messages by accepting JSON string from transport payload | FR-014 KPI: 100% JSON messages processed correctly |
|
| **FR-014** | Transport subscription | System shall receive and process messages by accepting JSON string from transport payload |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -458,7 +458,47 @@ function smartunpack(
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 15. References
|
## 15. Requirements Traceability Matrix
|
||||||
|
|
||||||
|
| Requirement ID | Description | Implementation File | Test File |
|
||||||
|
|----------------|-------------|---------------------|-----------|
|
||||||
|
| FR-001 | Cross-platform text messaging | `src/msghandler.jl` | `test/test_*_sender.*` |
|
||||||
|
| FR-002 | Cross-platform tabular data | `src/msghandler.jl` | `test/test_*_sender.*` |
|
||||||
|
| FR-003 | Large file handling | `src/msghandler.jl` | `test/test_*_fileserver.*` |
|
||||||
|
| FR-004 | Direct transport for small payloads | `src/msghandler.jl` | `test/test_*_transport.*` |
|
||||||
|
| FR-005 | MicroPython support | `src/msghandler_mpy.py` | `test/test_mpy.*` |
|
||||||
|
| FR-006 | Multi-payload messages | `src/msghandler.jl` | `test/test_*_mix_payloads.*` |
|
||||||
|
| FR-007 | Payload type preservation | `src/msghandler.jl` | `test/test_*_types.*` |
|
||||||
|
| FR-008 | Plik file server integration | `src/msghandler.jl` | `test/test_plik.*` |
|
||||||
|
| FR-009 | Custom file server support | `src/msghandler.jl` | `test/test_custom_server.*` |
|
||||||
|
| FR-010 | Exponential backoff retry | `src/msghandler.jl` | `test/test_retry.*` |
|
||||||
|
| FR-011 | Correlation ID propagation | `src/msghandler.jl` | `test/test_tracing.*` |
|
||||||
|
| FR-012 | Message serialization | `src/msghandler.jl` | `test/test_*_serialization.*` |
|
||||||
|
| FR-013 | Transport publishing | `src/msghandler.jl` | `test/test_*_transport.*` |
|
||||||
|
| FR-014 | Transport subscription | `src/msghandler.jl` | `test/test_*_receiver.*` |
|
||||||
|
| NFR-101 | Message serialization overhead | `src/msghandler.jl` | `test/test_benchmarks.*` |
|
||||||
|
| NFR-102 | Message deserialization overhead | `src/msghandler.jl` | `test/test_benchmarks.*` |
|
||||||
|
| NFR-103 | Transport connection establishment | `src/msghandler.jl` | `test/test_connection.*` |
|
||||||
|
| NFR-104 | File upload latency | `src/msghandler.jl` | `test/test_fileserver.*` |
|
||||||
|
| NFR-105 | File download latency | `src/msghandler.jl` | `test/test_fileserver.*` |
|
||||||
|
| NFR-106 | Concurrent connections | `src/msghandler.jl` | `test/test_scale.*` |
|
||||||
|
| NFR-107 | Message throughput | `src/msghandler.jl` | `test/test_load.*` |
|
||||||
|
| NFR-108 | File server scalability | `docs/architecture.md` | `docs/validation.md` |
|
||||||
|
| NFR-201 | Message delivery | `src/msghandler.jl` | `test/test_delivery.*` |
|
||||||
|
| NFR-202 | File server availability | `src/msghandler.jl` | `test/test_failure_injection.*` |
|
||||||
|
| NFR-203 | Connection recovery | `src/msghandler.jl` | `test/test_reconnect.*` |
|
||||||
|
| NFR-301 | Payload integrity | `src/msghandler.jl` | `test/test_integrity.*` |
|
||||||
|
| NFR-302 | Transport security | `src/msghandler.jl` | `test/test_security.*` |
|
||||||
|
| NFR-303 | File server security | `src/msghandler.jl` | `test/test_security.*` |
|
||||||
|
| NFR-401 | Required logs | `src/msghandler.jl` | `test/test_logging.*` |
|
||||||
|
| NFR-402 | Critical metrics | `src/msghandler.jl` | `test/test_metrics.*` |
|
||||||
|
| NFR-403 | Tracing | `src/msghandler.jl` | `test/test_tracing.*` |
|
||||||
|
| NFR-404 | Alerting | `src/msghandler.jl` | `test/test_alerting.*` |
|
||||||
|
| NFR-405 | Retention | `docs/runbook.md` | `docs/validation.md` |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 16. References
|
||||||
|
|
||||||
- [`src/msghandler.jl`](../src/msghandler.jl) - Ground truth implementation (Julia)
|
- [`src/msghandler.jl`](../src/msghandler.jl) - Ground truth implementation (Julia)
|
||||||
- [`src/msghandler_ssr.js`](../src/msghandler_ssr.js) - Server-side JavaScript implementation
|
- [`src/msghandler_ssr.js`](../src/msghandler_ssr.js) - Server-side JavaScript implementation
|
||||||
|
|||||||
Reference in New Issue
Block a user