Communication Protocol Benchmarking Application
A full-stack platform that benchmarks MQTT, HTTP, WebSocket, and CoAP against the quality attributes a real-time system actually depends on.
- 4
- protocols benchmarked
- 6
- network and load scenarios
- 22%
- performance variance revealed
- Node.js
- Meteor
- React
- MongoDB
- MQTT
- HTTP
- WebSocket
- CoAP
Live siteContext
Choosing a messaging protocol for an IoT or real-time system usually comes down to reputation and blog-post folklore, not evidence from the conditions you actually run in.
The problem
Teams reach for MQTT, HTTP, WebSocket, or CoAP based on habit, then meet the trade-offs in production. I built this to turn that choice into a measured, reproducible comparison a team can run against its own priorities.
My role
Sole engineer across the benchmarking engine, the scoring model, the dashboard, and the deployment.
What I built
- A Node.js benchmarking engine that drives real MQTT, HTTP, WebSocket, and CoAP clients and records latency, jitter, throughput, reliability, integrity, and resource use.
- Six configurable network and load scenarios so protocols are compared under both easy and constrained conditions.
- A weighting model that normalises each protocol's metrics into a fitness score out of 100, so a run can be re-scored under different priorities without re-running it.
- A Meteor and React dashboard with live run progress, comparative results, and run history persisted in MongoDB, plus a deterministic simulation mode for reproducible demos.
Key decisions
- Separated measurement from scoring: the engine records raw metrics and weighting happens at read time, so one run can be re-scored under different priorities.
- Made the simulation deterministic so results stay reproducible in reviews and demos without a live broker.
Outcome
Deployed and live. Running 100+ requests per protocol produced weighted fitness rankings, protocol recommendations, and comparative dashboards that surfaced up to 22% performance variance under constrained network conditions.




