InfluxDB Line Protocol (Ingest)
The IoT de-facto ingest path: devices, Telegraf and collectors already speak it. TCP, newline-delimited, fire-and-forget.
xcon-db-time serve -root /var/lib/xcon-db-time -ilp :9009 -ilp-db firm1
printf 'telemetry,entity=veh-1 speed=52.5,status="moving" 1700000000000000000\n' | nc host 9009
Semantics
- the
entitytag is required; other tags are ignored - timestamps are nanoseconds (converted to the engine's milliseconds); omitted = server time
- unknown tables and channels are auto-registered in the catalog: kind inferred from the first value,
FILL NONE— mechanics only, never meaning. Declare channels properly viaCREATE TABLEwhen you wantHOLD/staleness. - value syntax → frozen types:
"..."→ string;4.2,42i,true/false→ f64 - a malformed line is dropped; the stream lives on (per-line contract). A type conflict with the catalog is an error, not a coercion.
Security model
ILP carries no credentials. One listener binds to one database (-ilp-db); run one listener per firm and firewall it to that firm's devices. For authenticated ingest, use POST /write instead — same line format, basic auth.