Broker / Nginx modules

Session service

Configure bounded MQTT session, expiry, offline queue, and inflight delivery limits.

Implemented Core nginx boundary

ngz_iot_session is the nginx-facing boundary for persistent sessions and delivery state. nginz-iotd remains authoritative for reconnects, expiry, offline queues, Wills, and QoS 1 retry.

Configuration shape

stream {
  iot_session_capacity 100000;

  server {
    iot_session on;
    iot_session_limits 86400 1024 64;
  }
}

Use values appropriate for the licensed lane and available durable storage. Nginx rejects enabled session service without explicit bounded expiry, offline-queue, inflight-QoS, and total-session limits.

Durability

Free uses memory state and does not promise recovery. Pro and higher lanes coordinate session mutations with the PostgreSQL store and broker frontier before publishing durable acknowledgements.

MQTT boundary

The current-source profile covers clean start, persistent reconnect, Session Expiry, Will Delay, bounded offline replay, Receive Maximum, QoS 1 retry/PUBACK and MQTT 3.1.1 QoS 2 ownership/exchanges. MQTT 5 keeps its declared QoS 0/1 ceiling. Verify the installed image and selected memory/durable recovery profile.

See MQTT profile for the selected property subset and payload ceiling. Inspect live sessions from the operator console or the operator CLI (ngz-iot sessions).

Implementation authority

This page is a customer-oriented guide. The source contract remains authoritative for exact behavior and release evidence.

src/modules/iot-session-nginx-module/README.md