Cloudflare
Mastra provides two Cloudflare storage implementations:
- Cloudflare KV (
CloudflareKVStorage): A globally distributed, eventually consistent key-value store - Cloudflare Durable Objects (
CloudflareDOStorage): A strongly consistent, SQLite-based storage using Durable Objects
Cloudflare storage doesn't support the observability domain. Traces from the MastraStorageExporter can't be persisted, and Studio's observability features won't work with Cloudflare as your only storage provider. To enable observability, use composite storage to route observability data to a supported provider like ClickHouse.
InstallationInstallation的直接链接
- npm
- pnpm
- Yarn
- Bun
npm install @mastra/cloudflare@latest
pnpm add @mastra/cloudflare@latest
yarn add @mastra/cloudflare@latest
bun add @mastra/cloudflare@latest
Cloudflare KV StorageCloudflare KV Storage的直接链接
The KV storage implementation provides a globally distributed, serverless key-value store solution using Cloudflare Workers KV.
UsageUsage的直接链接
import { CloudflareKVStorage } from '@mastra/cloudflare/kv'
// --- Example 1: Using Workers Binding ---
const storageWorkers = new CloudflareKVStorage({
id: 'cloudflare-workers-storage',
bindings: {
threads: THREADS_KV, // KVNamespace binding for threads table
messages: MESSAGES_KV, // KVNamespace binding for messages table
// Add other tables as needed
},
keyPrefix: 'dev_', // Optional: isolate keys per environment
})
// --- Example 2: Using REST API ---
const storageRest = new CloudflareKVStorage({
id: 'cloudflare-rest-storage',
accountId: process.env.CLOUDFLARE_ACCOUNT_ID!, // Cloudflare Account ID
apiToken: process.env.CLOUDFLARE_API_TOKEN!, // Cloudflare API Token
namespacePrefix: 'dev_', // Optional: isolate namespaces per environment
})
ParametersParameters的直接链接
id:
bindings?:
accountId?:
apiToken?:
namespacePrefix?:
keyPrefix?:
Additional notesAdditional notes的直接链接
Schema ManagementSchema Management的直接链接
The storage implementation handles schema creation and updates automatically. It creates the following tables:
threads: Stores conversation threadsmessages: Stores individual messagesmetadata: Stores additional metadata for threads and messages
Consistency & PropagationConsistency & Propagation的直接链接
Cloudflare KV is an eventually consistent store, meaning that data may not be immediately available across all regions after a write.
Key Structure & NamespacingKey Structure & Namespacing的直接链接
Keys in Cloudflare KV are structured as a combination of a configurable prefix and a table-specific format (e.g., threads:threadId).
For Workers deployments, keyPrefix is used to isolate data within a namespace; for REST API deployments, namespacePrefix is used to isolate entire namespaces between environments or applications.
Cloudflare Durable Objects StorageCloudflare Durable Objects Storage的直接链接
The Durable Objects storage implementation provides strongly consistent, SQLite-based storage using Cloudflare Durable Objects. This is ideal for applications that require transactional consistency and SQL query capabilities.
UsageUsage的直接链接
import { DurableObject } from 'cloudflare:workers'
import { CloudflareDOStorage } from '@mastra/cloudflare/do'
class AgentDurableObject extends DurableObject<Env> {
private storage: CloudflareDOStorage
constructor(ctx: DurableObjectState, env: Env) {
super(ctx, env)
this.storage = new CloudflareDOStorage({
sql: ctx.storage.sql,
tablePrefix: 'mastra_', // Optional: prefix for table names
})
}
async run() {
const memory = await this.storage.getStore('memory')
await memory?.saveThread({
thread: { id: 'thread-1', resourceId: 'user-1', title: 'Chat', metadata: {} },
})
}
}
ParametersParameters的直接链接
sql:
tablePrefix?:
disableInit?:
Strong ConsistencyStrong Consistency的直接链接
Unlike KV, Durable Objects provide strong consistency guarantees. All reads and writes within a Durable Object are serialized, making it very suitable for fast, long-running agents.
SQL CapabilitiesSQL Capabilities的直接链接
Durable Objects storage uses SQLite under the hood, enabling efficient queries, filtering, and pagination that aren't possible with key-value storage.
Schema ManagementSchema Management的直接链接
Both storage implementations handle schema creation and updates automatically. They create the following tables:
threads: Stores conversation threadsmessages: Stores individual messagesworkflow_snapshot: Stores workflow run state
Deprecated AliasesDeprecated Aliases的直接链接
For backwards compatibility, the following aliases are available:
// These are deprecated - use CloudflareKVStorage and CloudflareDOStorage instead
import { CloudflareStore } from '@mastra/cloudflare/kv' // alias for CloudflareKVStorage
import { DOStore } from '@mastra/cloudflare/do' // alias for CloudflareDOStorage