Storage Overview
RadarOS uses a StorageDriver interface for key-value persistence. Storage drivers power session management, memory, and any component that needs to store state across requests. Choose the right driver based on your deployment environment, scale, and persistence requirements.StorageDriver Interface
All storage implementations conform to the same interface:Retrieves a value by namespace and key. Returns
null if not found.Stores a value. Values are JSON-serialized automatically.
Removes a key from the namespace.
Lists all keys in a namespace, optionally filtered by prefix.
Closes connections and releases resources.
Choosing a Driver
Development & Testing
Use InMemoryStorage—no setup, no dependencies. Data is lost on restart.
Single-Node Production
Use SqliteStorage or PostgresStorage for durable, file-based or relational persistence.
Distributed / Scale
Use PostgresStorage or MongoDBStorage for multi-instance deployments.
Document-Oriented
Use MongoDBStorage if you already run MongoDB or prefer document storage.
Comparison Table
| Driver | Dependencies | Initialize Required | Persistence | Best For |
|---|---|---|---|---|
| InMemoryStorage | None | No | No (lost on restart) | Dev, tests, demos |
| SqliteStorage | better-sqlite3 | No | Yes (file) | Single-node, embedded |
| PostgresStorage | pg | Yes | Yes | Production, multi-instance |
| MongoDBStorage | mongodb | Yes | Yes | Document stores, scale |
Namespaces
Storage uses namespaces to isolate data. RadarOS reserves namespaces such as:memory:short— Short-term conversation messagesmemory:long— Long-term summariessession:*— Session metadata
Quick Example
Next Steps
- In-Memory Storage — Zero-config, ephemeral storage
- SQLite Storage — File-based persistence with
better-sqlite3 - PostgreSQL Storage — Production-grade relational storage
- MongoDB Storage — Document-based storage for scale