Storage
Purpose
Section titled “Purpose”Explain the storage tiers in Get2Dial and which kind of data belongs in each.
Overview
Section titled “Overview”| Tier | Backend | Holds |
|---|---|---|
| Relational | PostgreSQL/TimescaleDB | Tenancy, config, leads, CDRs (hypertable), audit |
| In-memory | Redis | Call context, dialer pacing, agent presence |
| Object | MinIO | Audio-library assets, voicemail, recordings |
Choosing the right tier keeps the database lean, the call path fast, and large binaries out of rows.
Configuration
Section titled “Configuration”Each tier is configured by its own environment variables — see the linked pages.
Examples
Section titled “Examples”A call recording spans two tiers: the metadata (tenant, campaign, agent,
disposition) lands in the cdr row, and the audio file is written to MinIO. The
CDR’s recording_url holds the edge-local path while recording_status is
recorded, then the MinIO location once it flips to uploaded.
- Never store large binaries in PostgreSQL — use object storage and reference it by object key.
- Keep ephemeral data out of the durable tier so restarts stay cheap.