CAGE is a complete testing framework designed to evaluate latency, throughput, and payload processing performance in distributed Cloud–Edge architectures.
The goal of CAGE is to identify architectural gaps, performance bottlenecks, and network limitations across different connectivity environments such as 4G/5G, Starlink, WiFi, fiber, or satellite links.
This repository includes two main components:
- Client Module → generates telemetry and image payloads and sends them at controlled rates
- Server Module → receives payloads, logs ingestion metrics, and supports end-to-end KPI analysis
Together, they form a reproducible measurement suite useful for research, benchmarking, and Cloud–Edge system evaluation.
CAGE/
│── client/ # Payload generator and KPI test executor
│── server/ # FastAPI ingestion service and CSV logger
│── README.md # (this file)
CAGE helps evaluate:
- Cloud–Edge architectural gaps
- real network performance under different conditions
- effects of payload size on network behavior
- ingestion speed and throughput of backend services
- end-to-end telemetry delays
- suitability of Cloud, Edge, or Hybrid processing
You can use CAGE for:
- research experiments
- infrastructure benchmarking
- performance comparisons between ISPs
- KPI validation (e.g., OA4.1, cloud/edge split)
- system capacity planning
Simulates IoT/Edge devices by sending:
- weather telemetry JSON payloads
- image payloads encoded in Base64
- configurable batch sizes
- latency patterns (batch + frequency)
- throughput stress bursts
All sent metadata is logged into CSV files.
📄 Documentation:
➡️ client/README.md
A FastAPI service that:
- receives all client payloads
- timestamps arrival time
- measures payload size
- sanitizes image fields
- appends full records to CSV for later analysis
- exposes a
/pinghealth endpoint
📄 Documentation:
➡️ server/README.md
- Python 3.8+
- FastAPI
- Uvicorn
- Requests
- python-dotenv
- CSV logging for reproducibility
Each module has its own .env.example.
Copy and rename to .env:
cp client/.env.example client/.env
cp server/.env.example server/.env
pip install -r client/requirements.txt
pip install -r server/requirements.txtcd server
uvicorn app:app --reloadcd client
python3 client.pyCAGE produces:
- timestamps of sending
- JSON payload sizes
- test parameters (batch, frequency, throughput type)
- timestamps of reception
- payload size
- sanitized payload fields
Use these logs for:
- latency curves
- throughput charts
- jitter estimation
- network performance comparison
- Cloud–Edge gap analysis