RRR (Read Route Record) is a general purpose acquirement, transmission and processing daemon supporting HTTP, MQTT, TCP, UDP and other I/O devices. RRR has a variety of different modules which can be chained together to retrieve, transmit, modify and save messages.
Currently all session states are stored in the RAM engine. The session system is already designed to have multiple different storage engines. A database engine, e.g. MySQL, will allow for client state to be preserved across restarts.
A lot of "business" rules of the MQTT protocol specification are inside the ram session framework. This must somehow be taken out to avoid duplication of these in a new session storage engine.
Currently all session states are stored in the RAM engine. The session system is already designed to have multiple different storage engines. A database engine, e.g. MySQL, will allow for client state to be preserved across restarts.