Storage modes
| Mode | Data survives restart | Write performance | Best for |
|---|---|---|---|
memory | No | Fastest — no I/O | Unit tests, CI pipelines |
persistent | Yes | Synchronous disk write on every change | Development with strict durability |
hybrid | Yes | In-memory reads, async flush to disk | General local development |
wal | Yes | Append-only write-ahead log with compaction | High-write workloads |
Global configuration
Set the storage mode and data directory once and all services inherit it:The WAL compaction interval controls how often Floci rewrites the append-only log into a compact snapshot. The default is
30000 ms (30 seconds). Lower values reduce log file growth; higher values reduce compaction overhead.Per-service override
When a service omitsmode, it inherits the global storage.mode. Set a per-service mode only when you need different behaviour for that service:
Recommended profiles
- Fast CI
- Local development
- Durable development
All services run in memory. Fastest possible startup and test execution — nothing is written to disk.In docker-compose or GitHub Actions:
Per-service environment variable overrides
Override the global mode for individual services without touching the YAML file. When a variable is not set, the service inheritsFLOCI_STORAGE_MODE.
| Variable | Default | Description |
|---|---|---|
FLOCI_STORAGE_SERVICES_SSM_MODE | global default | SSM storage mode |
FLOCI_STORAGE_SERVICES_SSM_FLUSH_INTERVAL_MS | 5000 | SSM async flush interval (ms) |
FLOCI_STORAGE_SERVICES_SQS_MODE | global default | SQS storage mode |
FLOCI_STORAGE_SERVICES_S3_MODE | global default | S3 storage mode |
FLOCI_STORAGE_SERVICES_DYNAMODB_MODE | global default | DynamoDB storage mode |
FLOCI_STORAGE_SERVICES_DYNAMODB_FLUSH_INTERVAL_MS | 5000 | DynamoDB async flush interval (ms) |
FLOCI_STORAGE_SERVICES_SNS_MODE | global default | SNS storage mode |
FLOCI_STORAGE_SERVICES_SNS_FLUSH_INTERVAL_MS | 5000 | SNS async flush interval (ms) |
FLOCI_STORAGE_SERVICES_LAMBDA_MODE | global default | Lambda storage mode |
FLOCI_STORAGE_SERVICES_LAMBDA_FLUSH_INTERVAL_MS | 5000 | Lambda async flush interval (ms) |
FLOCI_STORAGE_SERVICES_CLOUDWATCHLOGS_MODE | global default | CloudWatch Logs storage mode |
FLOCI_STORAGE_SERVICES_CLOUDWATCHLOGS_FLUSH_INTERVAL_MS | 5000 | CloudWatch Logs async flush interval (ms) |
FLOCI_STORAGE_SERVICES_CLOUDWATCHMETRICS_MODE | global default | CloudWatch Metrics storage mode |
FLOCI_STORAGE_SERVICES_CLOUDWATCHMETRICS_FLUSH_INTERVAL_MS | 5000 | CloudWatch Metrics async flush interval (ms) |
FLOCI_STORAGE_SERVICES_SECRETSMANAGER_MODE | global default | Secrets Manager storage mode |
FLOCI_STORAGE_SERVICES_SECRETSMANAGER_FLUSH_INTERVAL_MS | 5000 | Secrets Manager async flush interval (ms) |
FLOCI_STORAGE_SERVICES_ACM_MODE | global default | ACM storage mode |
FLOCI_STORAGE_SERVICES_ACM_FLUSH_INTERVAL_MS | 5000 | ACM async flush interval (ms) |
FLOCI_STORAGE_SERVICES_OPENSEARCH_MODE | global default | OpenSearch storage mode |
FLOCI_STORAGE_SERVICES_OPENSEARCH_FLUSH_INTERVAL_MS | 5000 | OpenSearch async flush interval (ms) |