Files, appended by cron

Do the Vercel setup first.

Gateways
CSV / Parquet / JSON
S3 PUT
Tigris landing/
every minute
Cron job
/api/cron/landing
commit
Tigris bucket
Iceberg tables

Gateways upload files under landing/ in the bucket with any S3 client, using an access key of their own (create one in the Tigris console). Once a minute a cron job lists the files, appends each one with its key as the batch id, and deletes it. Give every file a unique key, such as the gateway and the time, and send corrections as new files.

Try it:

cat > readings.csv <<'EOF'
time,device_id,temp,humidity
2026-01-05T10:15:00Z,pump-1,64.0,40
EOF
aws s3 cp readings.csv s3://timelake/landing/gateway-1-20260105T1015.csv