Seven databases.

One decision.
cachesessionagent-memoryrate-limiterqueuefeature-flagaudit-log

Each purpose shapes the engine, TTL, eviction, and durability. You declare intent. The platform derives configuration.

Purpose profiles
01cache
02session
03agent-memory
04rate-limiter
05queue
06feature-flag
07audit-log
HOT
k0
k1
k2
k3
k4
COLD
Keys evict as they cool → LRU
01

Fast and forgettable

Shallow and wide. AkashaKV dual-mode keeps the hot set in cache while the LSM tree preserves writes. Ideal for API response caching, computed values, and CDN origin shields.

engine: AkashaKVttl: 300s defaulteviction: TTL/LRU policydurability: WAL + LSM
Why purpose matters

Generic KV vs. purpose-shaped.

TTL policy
You set it per key. Or forget.
Derived from purpose. Cache: 300s. Session: 24h. Agent-memory: never.
Eviction
Global maxmemory-policy. One size for everything.
LRU for cache. TTL for session. FIFO for queue. None for agent-memory.
Durability
RDB snapshots or AOF. Same for all data.
AkashaKV WAL + LSM persistence for every purpose.
Engine
One engine. Redis.
AkashaKV dual-mode backing engine with purpose-specific keyspaces.
Identity
Connection-level AUTH. Same permissions for all keys.
Per-principal scoping. Agents only access their own keyspace.
Generic KVPurpose-shaped
CLI

One command. Purpose-shaped.

zaps
# Create three databases with different purposes
$ zap create cdn-cache --purpose cache
✓ Created cdn-cache · engine: AkashaKV · ttl: 300s · eviction: TTL/LRU
$ zap create cortex --purpose agent-memory
✓ Created cortex · engine: AkashaKV · ttl: none · eviction: none
$ zap create ops-log --purpose audit-log
✓ Created ops-log · engine: AkashaKV · ttl: 7y · eviction: append-only
# Three databases. Three purposes. Zero configuration.

A cache should not be configured like an audit log.

That is not flexibility. That is negligence.

Next: Agent Identity →See the full platform