VerneMQ persistence - what is the vmq_generic_msg_store, what features does it provide?

Working on setting up a new cluster for a client in a k8s env. What is the vmq_generic_msg_store, what features does it provide?

What is stored in the levels db? I’m wondering where LWT, retained msgs, offline (>qos 0) messages are stored.

1 Like

Hi Ashton,

vmq_generic_msg_store serves as a plugin to store offline messages. It can have various DB backends, we call those ‘engines’. The default is to use LevelDB. Persistent messages will be written to the message store. At the same time, the message store will back the offline queues which hold references to binary messages in the message store. The message store has 12 partitions as a default. We sometimes call this the data layer in Verne.

Verne has more to store than just messages (data). We consider all the rest to be metadata. This is typically things that have to be replicated in a cluster, like subscriptions or retained messages. This is handled by a metadata plugin (which implements a sync protocol). The default here is vmq_swc. This is also backed by LevelDB stores (10 partitions).
I hope this helps as a first quick description.