Data Retention
seal service is processing messages by storing their metadata in a relational database table used
as a queue. The table is called queue. To see the definition of the table columns you can look
inside the /db/migrations directory.
queue table description:
| Column name | Description |
|---|---|
| message_id | Unique message identifier |
| sender | Message sender stored as a JSON object |
| recipients | Message recipients stored as an array of JSON objects |
| unencrypted | Boolean indicating if the message must be encrypted |
| status | Message status used during internal processing stages |
| created_at | Unix timestamp when record is created |
| updated_at | Unix timestamp when record is last updated |
What data is stored and what data is removed and when?
There are two possible outcomes after a message is accepted for sealing by the seal service: successful sealing or failed sealing.
In both cases message metadata is deleted from the queue table and no other data is stored.
In case of failed sealing, the message is removed from the queue table after certain number of retries. The number of retries and the duration between retries are controlled by the
SEAL_MAX_MESSAGE_RETRIESandNACK_WAIT_RETRYconfiguration variables. After the message is removed from the queue, a failed status is sent to the mxengine service.