Implementation Plan: msghandler
Version: 1.3.0
Date: 2026-05-19
Status: Active
Ground Truth: src/msghandler.jl
1. Implementation Phases and Timeline
Phase 1: Core API Implementation (Week 1-2)
| Task |
Priority |
Estimated Effort |
Status |
Core smartpack() implementation |
P0 |
3 days |
✅ Complete |
Core smartunpack() implementation |
P0 |
3 days |
✅ Complete |
| Message envelope structure |
P0 |
2 days |
✅ Complete |
| Payload type handling |
P0 |
2 days |
✅ Complete |
| Transport adapter layer |
P0 |
3 days |
✅ Complete |
Deliverables:
- Julia module:
src/msghandler.jl
- Node.js module:
src/msghandler_ssr.js
- Browser module:
src/msghandler_csr.js
- Python module:
src/msghandler.py
- MicroPython module:
src/msghandler_mpy.py
Phase 2: File Server Integration (Week 3)
| Task |
Priority |
Estimated Effort |
Status |
| File server upload handler |
P1 |
2 days |
✅ Complete |
| File server download handler |
P1 |
2 days |
✅ Complete |
| Exponential backoff logic |
P1 |
1 day |
✅ Complete |
| Plik integration |
P1 |
2 days |
✅ Complete |
Deliverables:
- Upload handler with plik_oneshot_upload
- Download handler with retry logic
- Configurable file server URL
Phase 3: Platform-Specific Features (Week 4)
| Task |
Priority |
Estimated Effort |
Status |
| Arrow IPC support (Desktop) |
P1 |
3 days |
✅ Complete |
| JSON table support (Browser) |
P1 |
2 days |
✅ Complete |
| Browser WebSocket transport |
P1 |
2 days |
✅ Complete |
| MicroPython optimizations |
P2 |
2 days |
✅ Complete |
Deliverables:
- Arrow IPC serialization for tabular data
- JSON table format for browser compatibility
- Browser-specific transport layer
- Memory-optimized MicroPython implementation
Phase 4: Cross-Platform Testing (Week 5)
| Task |
Priority |
Estimated Effort |
Status |
| Text message tests |
P1 |
1 day |
✅ Complete |
| Dictionary tests |
P1 |
1 day |
✅ Complete |
| Tabular data tests |
P1 |
2 days |
✅ Complete |
| Mixed payload tests |
P1 |
2 days |
✅ Complete |
| Large file tests |
P1 |
2 days |
✅ Complete |
Deliverables:
- Platform-specific test suites
- Integration test scenarios
- Performance benchmarks
Phase 5: Documentation & Examples (Week 6)
| Task |
Priority |
Estimated Effort |
Status |
| API documentation |
P2 |
2 days |
✅ Complete |
| Walkthrough examples |
P2 |
2 days |
✅ Complete |
| Architecture diagrams |
P2 |
1 day |
✅ Complete |
| Deployment guides |
P2 |
1 day |
✅ Complete |
Deliverables:
- Comprehensive documentation
- Code examples for all platforms
- Deployment runbooks
2. Module/Component Breakdown
Core Modules
msghandler.jl (Julia)
Dependencies:
- JSON.jl (JSON serialization)
- Arrow.jl (Arrow IPC)
- HTTP.jl (File server)
- UUIDs.jl (IDs)
- DataFrames.jl (DataFrame support)
msghandler_ssr.js (Node.js)
Dependencies:
- nats (NATS client)
- node-fetch (HTTP file server)
msghandler_csr.js (Browser)
Dependencies:
- nats.ws (Browser NATS client)
msghandler.py (Python)
Dependencies:
- aiohttp (HTTP file server)
- pyarrow (Arrow IPC)
- uuid (IDs)
msghandler.rs (Rust)
Dependencies:
- tokio (Async runtime)
- serde (JSON serialization)
- reqwest (HTTP file server)
- arrow2 (Arrow IPC)
msghandler_mpy.py (MicroPython)
Constraints:
- Limited to text and dictionary types
- Direct transport only (no file server)
- 100KB threshold for memory constraints
3. Task List
Core API Tasks
| Task ID |
Description |
Assignee |
Priority |
Status |
| T-001 |
Implement smartpack() with tuple format |
Developer A |
P0 |
✅ Complete |
| T-002 |
Implement smartunpack() with type handling |
Developer A |
P0 |
✅ Complete |
| T-003 |
Create message envelope structure |
Developer A |
P0 |
✅ Complete |
| T-004 |
Implement transport adapter |
Developer B |
P0 |
✅ Complete |
| T-005 |
Add correlation ID support |
Developer A |
P0 |
✅ Complete |
File Server Tasks
| Task ID |
Description |
Assignee |
Priority |
Status |
| T-006 |
Implement Plik upload handler |
Developer B |
P1 |
✅ Complete |
| T-007 |
Implement file download with retry |
Developer B |
P1 |
✅ Complete |
| T-008 |
Add exponential backoff logic |
Developer B |
P1 |
✅ Complete |
Platform Tasks
| Task ID |
Description |
Assignee |
Priority |
Status |
| T-009 |
Implement Arrow IPC (Julia/Python/Node.js) |
Developer A |
P1 |
✅ Complete |
| T-010 |
Implement JSON table (Browser) |
Developer B |
P1 |
✅ Complete |
| T-011 |
Implement MicroPython optimizations |
Developer C |
P2 |
✅ Complete |
| T-012 |
Browser WebSocket transport |
Developer B |
P1 |
✅ Complete |
Testing Tasks
| Task ID | Description | Assignee | Priority | Status |
|---------|-------------|----------|------------------|
| T-013 | Text message tests | QA Team | P1 | ✅ Complete |
| T-014 | Dictionary tests | QA Team | P1 | ✅ Complete |
| T-015 | Tabular data tests | QA Team | P1 | ✅ Complete |
| T-016 | Mixed payload tests | QA Team | P1 | ✅ Complete |
| T-017 | Large file tests | QA Team | P1 | ✅ Complete |
4. Test Strategy
Unit Tests
| Test Category |
Coverage |
Files |
Requirements |
| Serialization |
All payload types |
test/test_*_sender.* |
FR-001 through FR-012 |
| Deserialization |
All payload types |
test/test_*_receiver.* |
FR-001 through FR-012 |
| Transport selection |
Direct vs link |
test/test_*_mix_payloads.* |
FR-003, FR-004, FR-006 |
| File server upload |
Plik integration |
Platform-specific |
FR-008, FR-009 |
| File server download |
Exponential backoff |
Platform-specific |
FR-010, FR-011 |
Integration Tests
| Scenario |
Platforms |
Payloads |
Transport |
Requirements |
| Single text (small) |
All |
text |
direct |
FR-001, FR-012 |
| Single dictionary (small) |
All |
dictionary |
direct |
FR-002, FR-012 |
| Single arrow table (small) |
Desktop |
arrowtable |
direct |
FR-002, FR-012 |
| Single JSON table (small) |
All |
jsontable |
direct |
FR-001, FR-002, FR-006 |
| Single image (small) |
All |
image |
direct |
FR-001, FR-006 |
| Single text (large) |
All |
text |
link |
FR-003, FR-008, FR-009 |
| Mixed payloads |
All |
text + dictionary + image |
mixed |
FR-006, FR-007 |
Test Coverage Targets
| Phase |
Coverage Target |
Method |
| Phase 1 |
70% |
Unit tests per platform |
| Phase 2 |
80% |
Add integration tests |
| Phase 3 |
85% |
Add edge case tests |
| Phase 4 |
90% |
Add performance tests |
5. Build and Deployment Preparation
Continuous Integration
| Check |
Command |
Purpose |
| Linting |
npm run lint |
Code style enforcement |
| Type checking |
npx tsc --noEmit |
Type safety (JavaScript/TypeScript) |
| Unit tests |
npm test |
Functionality validation |
| Integration tests |
npm run test:integration |
Cross-platform validation |
| Coverage |
npm run coverage |
Test coverage tracking |
Deployment Pipeline
6. Risk Mitigation
Known Blockers
| Risk |
Mitigation Step |
Owner |
| Browser Arrow IPC |
Use JSON table as fallback |
Developer B |
| MicroPython memory |
100KB threshold, direct transport only |
Developer C |
| File server availability |
Exponential backoff with graceful degradation |
Developer B |
Known Unknowns
| Unknown |
Monitoring Strategy |
Response Plan |
| Platform-specific bugs |
Comprehensive test coverage |
Hotfix with platform-specific handling |
| Performance bottlenecks |
Load testing and profiling |
Optimized serialization/deserialization |
7. Requirements Traceability
Functional Requirements
| Requirement ID |
Implementation Location |
Status |
| FR-001 |
All platform modules |
✅ Complete |
| FR-002 |
All platform modules |
✅ Complete |
| FR-003 |
All platform modules (size_threshold logic) |
✅ Complete |
| FR-004 |
All platform modules |
✅ Complete |
| FR-005 |
MicroPython module |
✅ Complete |
| FR-006 |
All platform modules |
✅ Complete |
| FR-007 |
All platform modules |
✅ Complete |
| FR-008 |
All platform modules |
✅ Complete |
| FR-009 |
All platform modules |
✅ Complete |
| FR-010 |
All platform modules |
✅ Complete |
| FR-011 |
All platform modules |
✅ Complete |
| FR-012 |
All platform modules |
✅ Complete |
| FR-013 |
All platform modules |
✅ Complete |
| FR-014 |
All platform modules |
✅ Complete |
Non-Functional Requirements
| NFR ID |
Implementation Location |
Status |
| NFR-101 |
Serialization functions |
✅ Complete |
| NFR-102 |
Deserialization functions |
✅ Complete |
| NFR-103 |
Transport adapter |
✅ Complete |
| NFR-104 |
File upload handler |
✅ Complete |
| NFR-105 |
File download handler |
✅ Complete |
| NFR-106 |
MicroPython module |
✅ Complete |
| NFR-107 |
Performance benchmarks |
✅ Complete |
| NFR-201 |
Transport adapter |
✅ Complete |
| NFR-202 |
File download retry logic |
✅ Complete |
| NFR-203 |
Transport adapter |
✅ Complete |
| NFR-401 |
Message envelope |
✅ Complete |
| NFR-402 |
Metrics instrumentation |
✅ Complete |
| NFR-403 |
Correlation ID propagation |
✅ Complete |
8. Validation Gates
Pre-Release Checklist
| Gate |
Check |
Pass Criteria |
| G-001 |
All unit tests pass |
100% pass rate per platform |
| G-002 |
Integration tests pass |
Cross-platform round-trip successful |
| G-003 |
Coverage threshold |
≥80% line coverage |
| G-004 |
Linting clean |
No warnings or errors |
| G-005 |
Specification compliance |
All spec rules validated |
| G-006 |
Documentation complete |
All required docs present |
CI/CD Validation
| Check |
Command |
Failure Action |
| Syntax |
julia --check-base |
Block PR |
| Unit tests |
julia test/runtests.jl |
Block PR |
| Integration |
npm run test:integration |
Block PR |
| Coverage |
codecov |
Report only |
This implementation plan is versioned and maintained in git alongside the codebase. All implementations must adhere to this plan.