@mastra/mcp-docs-server 1.2.19-alpha.4 → 1.2.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.docs/docs/channels.md +28 -1
- package/.docs/docs/deployment/cloud-providers.md +1 -0
- package/.docs/docs/deployment/mastra-server.md +19 -0
- package/.docs/docs/deployment/overview.md +1 -0
- package/.docs/docs/deployment/workers.md +2 -2
- package/.docs/docs/harness/durable-agents.md +1 -1
- package/.docs/docs/mastra-platform/api.md +54 -0
- package/.docs/docs/mastra-platform/deploy.md +101 -0
- package/.docs/docs/mastra-platform/observability.md +3 -1
- package/.docs/docs/mastra-platform/server.md +6 -11
- package/.docs/docs/mastra-platform/studio.md +8 -10
- package/.docs/docs/memory/semantic-recall.md +19 -0
- package/.docs/docs/observability/feedback.md +14 -0
- package/.docs/docs/observability/integrations/exporters/mastra-storage.md +19 -14
- package/.docs/docs/observability/metrics/overview.md +31 -44
- package/.docs/docs/sandbox/overview.md +43 -0
- package/.docs/docs/server/middleware.md +30 -0
- package/.docs/docs/server/server-adapters.md +109 -34
- package/.docs/docs/storage.md +2 -0
- package/.docs/docs/subagents.md +6 -6
- package/.docs/integrations/channels/github.md +56 -9
- package/.docs/integrations/channels/imessage.md +150 -8
- package/.docs/integrations/databases/elasticsearch.md +156 -0
- package/.docs/integrations/databases/libsql.md +16 -0
- package/.docs/integrations/databases/mongodb.md +1 -1
- package/.docs/integrations/databases/postgresql.md +26 -0
- package/.docs/integrations/databases/valkey.md +99 -0
- package/.docs/integrations/deploy/kubernetes-helm.md +332 -0
- package/.docs/integrations/deploy/kubernetes.md +1 -1
- package/.docs/integrations/deploy/render.md +47 -61
- package/.docs/integrations/sandboxes/daytona.md +52 -0
- package/.docs/integrations/sandboxes/e2b-desktop.md +128 -0
- package/.docs/integrations/sandboxes/e2b.md +6 -0
- package/.docs/integrations/sandboxes/vercel.md +2 -2
- package/.docs/integrations/tools/parallel.md +240 -0
- package/.docs/integrations.md +5 -0
- package/.docs/models/environment-variables.md +9 -0
- package/.docs/models/gateways/netlify.md +12 -5
- package/.docs/models/gateways/openrouter.md +5 -10
- package/.docs/models/gateways/vercel.md +5 -5
- package/.docs/models/index.md +1 -1
- package/.docs/models/providers/agentrouter.md +17 -34
- package/.docs/models/providers/agnes.md +75 -0
- package/.docs/models/providers/aixy.md +73 -0
- package/.docs/models/providers/aki-io.md +14 -13
- package/.docs/models/providers/chutes.md +2 -2
- package/.docs/models/providers/cline-pass.md +4 -2
- package/.docs/models/providers/crof.md +3 -8
- package/.docs/models/providers/deepseek.md +4 -6
- package/.docs/models/providers/edenai.md +14 -14
- package/.docs/models/providers/evroc.md +3 -2
- package/.docs/models/providers/gmicloud.md +6 -4
- package/.docs/models/providers/huggingface.md +2 -1
- package/.docs/models/providers/hyper.md +5 -5
- package/.docs/models/providers/inceptron.md +2 -2
- package/.docs/models/providers/iteracompute.md +73 -0
- package/.docs/models/providers/kilo.md +26 -27
- package/.docs/models/providers/llmgateway-providers.md +18 -9
- package/.docs/models/providers/llmgateway.md +3 -5
- package/.docs/models/providers/llmtech.md +73 -0
- package/.docs/models/providers/nano-gpt.md +22 -13
- package/.docs/models/providers/neosmith.md +104 -0
- package/.docs/models/providers/nvidia.md +3 -1
- package/.docs/models/providers/ofox.md +2 -1
- package/.docs/models/providers/openai.md +2 -2
- package/.docs/models/providers/opencode-go.md +3 -2
- package/.docs/models/providers/opper.md +112 -0
- package/.docs/models/providers/pendra.md +78 -0
- package/.docs/models/providers/requesty.md +1 -1
- package/.docs/models/providers/standardcompute.md +73 -0
- package/.docs/models/providers/vivgrid.md +2 -1
- package/.docs/models/providers/wandb.md +2 -1
- package/.docs/models/providers/zai.md +2 -1
- package/.docs/models/providers.md +9 -0
- package/.docs/reference/agents/channels.md +1 -1
- package/.docs/reference/ai-sdk/handle-chat-stream.md +11 -0
- package/.docs/reference/ai-sdk/with-sse-heartbeat.md +47 -0
- package/.docs/reference/cli/mastra.md +10 -4
- package/.docs/reference/client-js/observability.md +1 -1
- package/.docs/reference/index.md +5 -0
- package/.docs/reference/observability/feedback.md +4 -0
- package/.docs/reference/observability/metrics/automatic-metrics.md +1 -1
- package/.docs/reference/observability/metrics/queries.md +462 -0
- package/.docs/reference/pubsub/valkey-streams.md +84 -0
- package/.docs/reference/rag/vector-databases.md +4 -4
- package/.docs/reference/server/elysia-adapter.md +184 -0
- package/.docs/reference/server/express-adapter.md +6 -8
- package/.docs/reference/server/hono-adapter.md +19 -6
- package/.docs/reference/storage/turso.md +88 -0
- package/.docs/reference/streaming/ChunkType.md +29 -1
- package/.docs/reference/streaming/agents/stream.md +1 -3
- package/.docs/reference/tools/mcp-client.md +41 -9
- package/.docs/reference/vectors/mongodb.md +11 -11
- package/.docs/reference/vectors/pg.md +2 -0
- package/.docs/reference/workspace/local-sandbox.md +2 -0
- package/.docs/reference/workspace/platform-sandbox.md +3 -1
- package/.docs/reference/workspace/sandbox.md +143 -3
- package/CHANGELOG.md +81 -0
- package/package.json +6 -6
- package/.docs/docs/observability/metrics/querying.md +0 -314
package/.docs/docs/channels.md
CHANGED
|
@@ -82,7 +82,7 @@ For example, a Slack adapter on an agent with the `your-agent` ID uses:
|
|
|
82
82
|
/api/agents/your-agent/channels/slack/webhook
|
|
83
83
|
```
|
|
84
84
|
|
|
85
|
-
Point the platform's webhook, event, or interactions URL to this path. Follow the guide for your platform or the [Chat SDK docs](https://chat-sdk.dev/adapters).
|
|
85
|
+
Point the platform's webhook, event, or interactions URL to this path. Follow the guide for your platform or the [Chat SDK docs](https://chat-sdk.dev/adapters). The webhook acknowledges the request before the agent finishes responding. See [Error handling and delivery](#error-handling-and-delivery) for what happens when verification or a handler fails.
|
|
86
86
|
|
|
87
87
|
During local development, platform webhooks need a public URL to reach your local server. Use a tunnel like [cloudflared](https://github.com/cloudflare/cloudflared) or [ngrok](https://ngrok.com/) to expose your server, `localhost:4111` by default:
|
|
88
88
|
|
|
@@ -215,6 +215,32 @@ Add only JSON-serializable, non-sensitive values. Signal metadata may be stored
|
|
|
215
215
|
|
|
216
216
|
Use `requestContext` for run-scoped configuration, such as credentials for a message that starts a run. Use `signalMetadata` for context that must stay attached to one message, including messages delivered to an active run.
|
|
217
217
|
|
|
218
|
+
## Error handling and delivery
|
|
219
|
+
|
|
220
|
+
A channel webhook acknowledges the platform before the agent finishes, so a `200` response means "received", not "answered". Before that acknowledgment, the adapter rejects bad requests synchronously (`401` for failed verification, `400` for an unparseable body, `503` for transient state failures) and the platform redelivers on non-`2xx` responses per its own policy. After the `200`, the platform never retries and Mastra owns errors. The default handler catches agent-run failures and posts an error message to the thread (customize it with `formatError`, which defaults to `❌ Error: {message}`). A custom handler that throws is only logged by Chat SDK, so nothing is posted or retried. Catch failures in custom handlers yourself:
|
|
221
|
+
|
|
222
|
+
```typescript
|
|
223
|
+
channels: {
|
|
224
|
+
adapters: {
|
|
225
|
+
slack: createSlackAdapter(),
|
|
226
|
+
},
|
|
227
|
+
handlers: {
|
|
228
|
+
onDirectMessage: async (thread, message, defaultHandler, ctx) => {
|
|
229
|
+
try {
|
|
230
|
+
ctx.signalMetadata.ticketId = await lookupTicket(message)
|
|
231
|
+
} catch (error) {
|
|
232
|
+
ctx.mastra?.getLogger().error('Ticket lookup failed', { error })
|
|
233
|
+
await thread.post('Something went wrong looking up your ticket. Try again in a moment.')
|
|
234
|
+
return
|
|
235
|
+
}
|
|
236
|
+
await defaultHandler(thread, message)
|
|
237
|
+
},
|
|
238
|
+
},
|
|
239
|
+
},
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
Platform retries also mean the same event can arrive more than once. Adapters deduplicate redelivered events using channel state, so configure [storage](https://mastra.ai/docs/storage) to keep deduplication reliable across restarts. Deduplication is best effort, so keep side effects in custom handlers idempotent so a duplicate that slips through doesn't repeat work like creating a ticket.
|
|
243
|
+
|
|
218
244
|
## Multimodal content
|
|
219
245
|
|
|
220
246
|
Models like Gemini can process images, video, and audio natively. Combine `inlineMedia` and `inlineLinks` to let users share rich content with your agent across platforms:
|
|
@@ -327,6 +353,7 @@ At the time of writing, Chat SDK lists adapters for:
|
|
|
327
353
|
- Kapso
|
|
328
354
|
- Lark / Feishu
|
|
329
355
|
- Linear
|
|
356
|
+
- Linq
|
|
330
357
|
- Liveblocks
|
|
331
358
|
- Matrix
|
|
332
359
|
- Mattermost
|
|
@@ -20,6 +20,7 @@ The following pages show you how to deploy Mastra to specific cloud providers.
|
|
|
20
20
|
- [Digital Ocean](https://mastra.ai/integrations/deploy/digital-ocean)
|
|
21
21
|
- [Inngest](https://mastra.ai/integrations/deploy/inngest)
|
|
22
22
|
- [Kubernetes](https://mastra.ai/integrations/deploy/kubernetes)
|
|
23
|
+
- [Kubernetes (Helm)](https://mastra.ai/integrations/deploy/kubernetes-helm)
|
|
23
24
|
- [Netlify](https://mastra.ai/integrations/deploy/netlify)
|
|
24
25
|
- [Render](https://mastra.ai/integrations/deploy/render)
|
|
25
26
|
- [Temporal](https://mastra.ai/integrations/deploy/temporal)
|
|
@@ -139,6 +139,24 @@ This list isn't exhaustive. To view all endpoints, run `mastra dev` and visit `h
|
|
|
139
139
|
|
|
140
140
|
To add your own endpoints, see [Custom API Routes](https://mastra.ai/docs/server/custom-api-routes).
|
|
141
141
|
|
|
142
|
+
## Graceful shutdown and rolling deploys
|
|
143
|
+
|
|
144
|
+
By default, the generated server handles `SIGINT` and `SIGTERM`. It stops accepting connections, waits up to [`server.drainTimeout`](https://mastra.ai/reference/configuration) for active requests and streams, then runs `mastra.shutdown()`. The drain timeout defaults to 5 seconds. A second signal terminates the process immediately. See [`server.handleShutdownSignals`](https://mastra.ai/reference/configuration) if you need to manage signals yourself.
|
|
145
|
+
|
|
146
|
+
Increase `drainTimeout` when your hosting platform's termination grace period can accommodate longer turns. Keep enough time after the drain for shutdown cleanup.
|
|
147
|
+
|
|
148
|
+
```typescript
|
|
149
|
+
import { Mastra } from '@mastra/core/mastra'
|
|
150
|
+
|
|
151
|
+
export const mastra = new Mastra({
|
|
152
|
+
server: {
|
|
153
|
+
drainTimeout: 240_000,
|
|
154
|
+
},
|
|
155
|
+
})
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
A plain `agent.stream()` call can't resume after its server process exits. If a stream ends without its expected terminal event, treat the turn as interrupted and let the client retry or reconcile it. Use [durable agents](https://mastra.ai/docs/harness/durable-agents) when turns must survive process replacement. [Crash recovery](https://mastra.ai/docs/harness/durable-agents) requires shared persistent run storage and idempotent tools. Replaying missed events after a restart also requires a shared persistent cache such as Redis because the default event cache is in-memory. Multi-replica recovery doesn't yet use a distributed lease.
|
|
159
|
+
|
|
142
160
|
## Troubleshooting
|
|
143
161
|
|
|
144
162
|
### Memory errors during build
|
|
@@ -154,4 +172,5 @@ NODE_OPTIONS="--max-old-space-size=4096" mastra build
|
|
|
154
172
|
- [Server Overview](https://mastra.ai/docs/server/overview): Configure server behavior, middleware, and authentication
|
|
155
173
|
- [Server Adapters](https://mastra.ai/docs/server/server-adapters): Use Express or Hono instead of `mastra build`
|
|
156
174
|
- [Custom API Routes](https://mastra.ai/docs/server/custom-api-routes): Add custom HTTP endpoints
|
|
175
|
+
- [Durable Agents](https://mastra.ai/docs/harness/durable-agents): Persist agent runs so they survive process restarts
|
|
157
176
|
- [Configuration Reference](https://mastra.ai/reference/configuration): Full configuration options
|
|
@@ -51,6 +51,7 @@ Use this option for auto-scaling, minimal infrastructure management, or when you
|
|
|
51
51
|
- [Digital Ocean](https://mastra.ai/integrations/deploy/digital-ocean)
|
|
52
52
|
- [Inngest](https://mastra.ai/integrations/deploy/inngest)
|
|
53
53
|
- [Kubernetes](https://mastra.ai/integrations/deploy/kubernetes)
|
|
54
|
+
- [Kubernetes (Helm)](https://mastra.ai/integrations/deploy/kubernetes-helm)
|
|
54
55
|
- [Netlify](https://mastra.ai/integrations/deploy/netlify)
|
|
55
56
|
- [Render](https://mastra.ai/integrations/deploy/render)
|
|
56
57
|
- [Temporal](https://mastra.ai/integrations/deploy/temporal)
|
|
@@ -29,7 +29,7 @@ Subscribes to workflow events on the [PubSub](https://mastra.ai/docs/server/pubs
|
|
|
29
29
|
|
|
30
30
|
In a split deployment, the orchestration worker pulls events from a distributed PubSub backend and delegates step execution back to the API over HTTP. In-process, it runs steps directly.
|
|
31
31
|
|
|
32
|
-
The orchestration worker requires a PubSub backend that supports pull mode (e.g., [`RedisStreamsPubSub`](https://mastra.ai/reference/pubsub/redis-streams) or [`GoogleCloudPubSub`](https://mastra.ai/reference/pubsub/google-cloud-pubsub)).
|
|
32
|
+
The orchestration worker requires a PubSub backend that supports pull mode (e.g., [`RedisStreamsPubSub`](https://mastra.ai/reference/pubsub/redis-streams), [`ValkeyStreamsPubSub`](https://mastra.ai/reference/pubsub/valkey-streams), or [`GoogleCloudPubSub`](https://mastra.ai/reference/pubsub/google-cloud-pubsub)).
|
|
33
33
|
|
|
34
34
|
### Scheduler worker
|
|
35
35
|
|
|
@@ -104,7 +104,7 @@ Any [supported storage backend](https://mastra.ai/reference/workers/overview) wo
|
|
|
104
104
|
|
|
105
105
|
Run the same build artifact in multiple containers, each with a different [`MASTRA_WORKERS`](https://mastra.ai/reference/workers/overview) value to control which worker starts in each process.
|
|
106
106
|
|
|
107
|
-
Split deployments require a distributed PubSub backend ([`RedisStreamsPubSub`](https://mastra.ai/reference/pubsub/redis-streams) or [`GoogleCloudPubSub`](https://mastra.ai/reference/pubsub/google-cloud-pubsub)), a shared [storage backend](https://mastra.ai/reference/workers/overview), and network connectivity between the orchestration worker and the API.
|
|
107
|
+
Split deployments require a distributed PubSub backend ([`RedisStreamsPubSub`](https://mastra.ai/reference/pubsub/redis-streams), [`ValkeyStreamsPubSub`](https://mastra.ai/reference/pubsub/valkey-streams), or [`GoogleCloudPubSub`](https://mastra.ai/reference/pubsub/google-cloud-pubsub)), a shared [storage backend](https://mastra.ai/reference/workers/overview), and network connectivity between the orchestration worker and the API.
|
|
108
108
|
|
|
109
109
|
### Select workers
|
|
110
110
|
|
|
@@ -241,7 +241,7 @@ await durableAgent.resume(runId, { approved: true })
|
|
|
241
241
|
|
|
242
242
|
## Crash recovery
|
|
243
243
|
|
|
244
|
-
If the server process crashes while a durable agent run is in progress, that run remains in `running` status in storage with no automatic retry. On the next server start you can re-drive these orphaned runs so they pick up where they left off.
|
|
244
|
+
If the server process crashes while a durable agent run is in progress, that run remains in `running` status in storage with no automatic retry. For orderly shutdowns such as rolling deploys, the generated server can also drain in-flight turns before exiting. See [graceful shutdown and rolling deploys](https://mastra.ai/docs/deployment/mastra-server). On the next server start you can re-drive these orphaned runs so they pick up where they left off.
|
|
245
245
|
|
|
246
246
|
### Automatic recovery
|
|
247
247
|
|
|
@@ -105,6 +105,60 @@ The root URL for the endpoints below is: `/v1/gateway`
|
|
|
105
105
|
| GET | `/projects/:id/memory/threads/:threadId/observations/history` | Observation history (dashboard) |
|
|
106
106
|
| GET | `/models` | List available models |
|
|
107
107
|
|
|
108
|
+
## Observability feedback query API
|
|
109
|
+
|
|
110
|
+
The hosted feedback query API lists and analyzes feedback exported to Mastra Platform Observability. Because the API is unversioned, backwards compatibility isn't guaranteed. Rate limits, retention, and ingestion-to-query freshness aren't published contracts.
|
|
111
|
+
|
|
112
|
+
Use the root URL for your environment's data-residency region:
|
|
113
|
+
|
|
114
|
+
| Region | Root URL |
|
|
115
|
+
| -------------- | ------------------------------------------------------ |
|
|
116
|
+
| United States | `https://observability.mastra.ai/api/observability` |
|
|
117
|
+
| European Union | `https://observability.eu.mastra.ai/api/observability` |
|
|
118
|
+
|
|
119
|
+
Telemetry stays in its residency region. Querying the other region returns no records for the environment. See [Observability co-location](https://mastra.ai/docs/mastra-platform/regions) for the environment-to-region mapping.
|
|
120
|
+
|
|
121
|
+
### Authentication and project scope
|
|
122
|
+
|
|
123
|
+
Every request requires a platform access token. Create one in [Mastra Platform](https://projects.mastra.ai), or use the token written to `.env` during Platform setup.
|
|
124
|
+
|
|
125
|
+
Include `X-Mastra-Project-Id` to limit results to one project. If you omit it, the query covers feedback in every project available to the token's organization.
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
curl -sS "https://observability.mastra.ai/api/observability/feedback?page=0&perPage=20&feedbackType=rating" \
|
|
129
|
+
-H "Authorization: Bearer $MASTRA_PLATFORM_ACCESS_TOKEN" \
|
|
130
|
+
-H "X-Mastra-Project-Id: $MASTRA_PROJECT_ID" | jq
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
Use an organization-scoped Platform access token. Gateway inference keys such as `mk_*` keys aren't accepted. Queries remain constrained to the token's organization even when you supply a project ID.
|
|
134
|
+
|
|
135
|
+
### Endpoints
|
|
136
|
+
|
|
137
|
+
| Method | Endpoint | Description |
|
|
138
|
+
| ------ | ----------------------- | ---------------------------- |
|
|
139
|
+
| GET | `/feedback` | List feedback records |
|
|
140
|
+
| POST | `/feedback/aggregate` | Return one aggregate value |
|
|
141
|
+
| POST | `/feedback/breakdown` | Group feedback by dimensions |
|
|
142
|
+
| POST | `/feedback/timeseries` | Bucket feedback by interval |
|
|
143
|
+
| POST | `/feedback/percentiles` | Return percentile series |
|
|
144
|
+
|
|
145
|
+
The list endpoint accepts page-mode parameters such as `page`, `perPage`, `field`, and `direction`, plus feedback filters as query parameters. It also supports delta polling with `mode=delta`, `after`, and `limit`. Responses contain a `feedback` array and page or delta metadata.
|
|
146
|
+
|
|
147
|
+
Analytics endpoints accept the same JSON request shapes and return types as the [feedback reference](https://mastra.ai/reference/observability/feedback). Analytics operate only on numeric feedback values.
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
curl -sS "https://observability.mastra.ai/api/observability/feedback/aggregate" \
|
|
151
|
+
-X POST \
|
|
152
|
+
-H "Authorization: Bearer $MASTRA_PLATFORM_ACCESS_TOKEN" \
|
|
153
|
+
-H "X-Mastra-Project-Id: $MASTRA_PROJECT_ID" \
|
|
154
|
+
-H "Content-Type: application/json" \
|
|
155
|
+
--data '{"feedbackType":"rating","feedbackSource":"user","aggregation":"avg"}' | jq
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
The API returns `401` for invalid credentials, `403` for organization authorization failures, and `400` for malformed query arguments or JSON bodies.
|
|
159
|
+
|
|
160
|
+
Hosted observability doesn't provide a feedback creation route. Export feedback from the application as described in [Export feedback to Mastra Platform](https://mastra.ai/docs/observability/feedback).
|
|
161
|
+
|
|
108
162
|
## Gateway proxy endpoints
|
|
109
163
|
|
|
110
164
|
Visit the [Gateway documentation](https://gateway.mastra.ai/docs) for more details.
|
|
@@ -67,6 +67,8 @@ A local `.env` file is optional. Environment variables stored on the platform ar
|
|
|
67
67
|
|
|
68
68
|
> **Warning:** Set up [authentication](https://mastra.ai/docs/auth/overview) before exposing your endpoints publicly.
|
|
69
69
|
|
|
70
|
+
Each deploy replaces the running server process, which affects agent turns that are still streaming when the new version goes live. Because Mastra Platform doesn't currently provide a configurable or guaranteed termination grace period, don't rely on a raised `server.drainTimeout` for turns that may run longer than the default drain window. Use [durable agents](https://mastra.ai/docs/harness/durable-agents) with persistent storage and cache when turns must survive a deploy, or handle an interrupted stream in the client. See [graceful shutdown and rolling deploys](https://mastra.ai/docs/deployment/mastra-server) for the available strategies.
|
|
71
|
+
|
|
70
72
|
The first deploy writes a `.mastra-project.json` file linking your directory to the platform project. Commit it so later deploys, CI runs, and [`mastra env`](https://mastra.ai/docs/mastra-platform/environments) commands target the same project without extra flags.
|
|
71
73
|
|
|
72
74
|
## Deploy to another environment
|
|
@@ -175,6 +177,105 @@ In CI, set `MASTRA_PROJECT_ID` and `MASTRA_API_TOKEN` and pass `--yes`:
|
|
|
175
177
|
mastra deploy --env production --yes
|
|
176
178
|
```
|
|
177
179
|
|
|
180
|
+
## Migrating from server and studio deploys
|
|
181
|
+
|
|
182
|
+
`mastra server deploy` and `mastra studio deploy` are deprecated. They'll be removed in the next major version. Once removed, both commands will fail and legacy-pipeline projects can't deploy a new build until they migrate.
|
|
183
|
+
|
|
184
|
+
Existing deployed services keep running. This only affects your ability to publish new deploys.
|
|
185
|
+
|
|
186
|
+
### Who this affects
|
|
187
|
+
|
|
188
|
+
You are on the legacy pipeline if any of these are true:
|
|
189
|
+
|
|
190
|
+
- Your last deploy went out with `mastra server deploy` or `mastra studio deploy` and the deploy log printed a **Deprecated** banner.
|
|
191
|
+
- Your project's most recent successful deploy used `@mastra/core` older than `1.44`.
|
|
192
|
+
- Your organization hasn't been opted in to environment deploys.
|
|
193
|
+
|
|
194
|
+
The deploy log is the source of truth: the legacy pipeline prints a deprecation banner on every deploy.
|
|
195
|
+
|
|
196
|
+
### Migrate
|
|
197
|
+
|
|
198
|
+
1. Upgrade `@mastra/core` in your project. The environment pipeline calls `setStudio` on the built artifact, which requires `@mastra/core` `>= 1.44`.
|
|
199
|
+
|
|
200
|
+
**npm**:
|
|
201
|
+
|
|
202
|
+
```bash
|
|
203
|
+
npm install @mastra/core@latest
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
**pnpm**:
|
|
207
|
+
|
|
208
|
+
```bash
|
|
209
|
+
pnpm add @mastra/core@latest
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
**Yarn**:
|
|
213
|
+
|
|
214
|
+
```bash
|
|
215
|
+
yarn add @mastra/core@latest
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
**Bun**:
|
|
219
|
+
|
|
220
|
+
```bash
|
|
221
|
+
bun add @mastra/core@latest
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
If you are jumping several minor versions, paste the following into a coding agent (Claude Code, Cursor, etc.) to catch breaking changes in APIs you actually use:
|
|
225
|
+
|
|
226
|
+
```text
|
|
227
|
+
Check whether this project is ready for the Mastra Platform environment pipeline.
|
|
228
|
+
|
|
229
|
+
1. Find the installed version of `@mastra/core` (check package.json and the
|
|
230
|
+
lockfile for the version that actually resolved, not just the range).
|
|
231
|
+
2. If it is >= 1.44.0, tell me I'm good — no further action needed.
|
|
232
|
+
3. If it is < 1.44.0:
|
|
233
|
+
a. Fetch the `@mastra/core` changelog from
|
|
234
|
+
https://github.com/mastra-ai/mastra/blob/main/packages/core/CHANGELOG.md
|
|
235
|
+
and read every entry between my installed version and the latest release.
|
|
236
|
+
b. Scan my project (agents, workflows, tools, memory, storage, deployers,
|
|
237
|
+
telemetry — anywhere `@mastra/core`, `@mastra/*`, or `mastra` is imported)
|
|
238
|
+
and list every Mastra API surface I actually use.
|
|
239
|
+
c. For each used API, cross-reference the changelog and produce a table of:
|
|
240
|
+
API I use → breaking change → severity (breaks build / breaks runtime /
|
|
241
|
+
behavior change / none).
|
|
242
|
+
d. For each "breaks build" or "breaks runtime" row, implement the fix in my
|
|
243
|
+
codebase. For "behavior change" rows, leave a comment at the call site
|
|
244
|
+
explaining what changed so I can decide.
|
|
245
|
+
e. Bump `@mastra/core` (and any `@mastra/*` peers) to the latest matching
|
|
246
|
+
versions, then run typecheck and tests. Report anything still failing.
|
|
247
|
+
4. Search my scripts, package.json, Dockerfiles, and CI config for
|
|
248
|
+
`mastra server deploy` and `mastra studio deploy`. Replace each
|
|
249
|
+
occurrence with `mastra deploy` — this is the unified command required
|
|
250
|
+
by the environment pipeline.
|
|
251
|
+
|
|
252
|
+
Do not restructure my CI, provision new infra, or change my environment
|
|
253
|
+
variable values — only the Mastra usage in my code and the deploy command
|
|
254
|
+
itself.
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
2. Replace the split command in your scripts and CI with the unified command:
|
|
258
|
+
|
|
259
|
+
```diff
|
|
260
|
+
- mastra server deploy
|
|
261
|
+
- mastra studio deploy
|
|
262
|
+
+ mastra deploy
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
`mastra deploy` builds once and deploys both the server and the Studio UI shell for the target environment. Any recent `mastra` CLI supports it. If yours doesn't, upgrade with `npm install -g mastra@latest`.
|
|
266
|
+
|
|
267
|
+
3. Deploy once. Your project is auto-adopted onto the environment pipeline and the `production` environment is created on first deploy. See [Environments](https://mastra.ai/docs/mastra-platform/environments) for the full model.
|
|
268
|
+
|
|
269
|
+
4. Move any project-level environment variables to the environment that needs them, in the dashboard under **Environments → \<env> → Variables**. See [Environment variables](https://mastra.ai/docs/mastra-platform/environments).
|
|
270
|
+
|
|
271
|
+
### FAQ
|
|
272
|
+
|
|
273
|
+
**My deploy fails with `MASTRA_CORE_TOO_OLD`.** The environment pipeline requires `@mastra/core` `>= 1.44`. Upgrade `@mastra/core` and redeploy.
|
|
274
|
+
|
|
275
|
+
**My organization isn't opted in yet.** Contact support. Opt-in will be automatic before the next major version.
|
|
276
|
+
|
|
277
|
+
**Can I roll back?** Yes. Environments retain deploy history and you can redeploy any prior successful artifact from the dashboard.
|
|
278
|
+
|
|
178
279
|
## Related
|
|
179
280
|
|
|
180
281
|
- [Environments](https://mastra.ai/docs/mastra-platform/environments)
|
|
@@ -130,7 +130,7 @@ See [Mastra storage exporter](https://mastra.ai/docs/observability/integrations/
|
|
|
130
130
|
|
|
131
131
|
## View observability data
|
|
132
132
|
|
|
133
|
-
Open your project in [Mastra Platform](https://projects.mastra.ai) to inspect exported traces, logs, metrics,
|
|
133
|
+
Open your project in [Mastra Platform](https://projects.mastra.ai) to inspect exported traces, logs, metrics, and scores. A Studio or Server deployment isn't required. Query exported feedback through the hosted feedback API described below.
|
|
134
134
|
|
|
135
135
|
Use a consistent `serviceName` to filter data from a specific application or deployment.
|
|
136
136
|
|
|
@@ -164,6 +164,8 @@ bun x mastra api trace list
|
|
|
164
164
|
|
|
165
165
|
The CLI can infer platform credentials from your project environment. See the [`mastra api` CLI reference](https://mastra.ai/reference/cli/mastra) for available commands, filtering, pagination, credential resolution, and `curl` examples.
|
|
166
166
|
|
|
167
|
+
You can query exported feedback over HTTP. See the [observability feedback query API](https://mastra.ai/docs/mastra-platform/api) for its current status, regional endpoints, authentication, and project scoping.
|
|
168
|
+
|
|
167
169
|
## Next steps
|
|
168
170
|
|
|
169
171
|
- 📹 [Mastra observability and Studio workshop](https://www.youtube.com/watch?v=dKO_a3RPra0)
|
|
@@ -6,8 +6,6 @@ Server on Mastra platform is a production deployment target that runs your Mastr
|
|
|
6
6
|
|
|
7
7
|
You get a stable API endpoint with environment variable management and custom domain support, plus deploy history out of the box.
|
|
8
8
|
|
|
9
|
-
> **Note:** `mastra server deploy` is the earlier split deploy path. New projects should use the unified [`mastra deploy`](https://mastra.ai/docs/mastra-platform/deploy) command, which adds preflight validation, environments, and CLI-managed databases.
|
|
10
|
-
|
|
11
9
|
> **Note:** Server deploy provisions hosted storage automatically. If you override storage with [LibSQLStore](https://mastra.ai/integrations/databases/libsql) and a file URL, switch to a remotely hosted database because Mastra platform uses an ephemeral filesystem.
|
|
12
10
|
|
|
13
11
|
## Quickstart
|
|
@@ -43,7 +41,7 @@ You get a stable API endpoint with environment variable management and custom do
|
|
|
43
41
|
3. Deploy your project:
|
|
44
42
|
|
|
45
43
|
```bash
|
|
46
|
-
mastra
|
|
44
|
+
mastra deploy
|
|
47
45
|
```
|
|
48
46
|
|
|
49
47
|
If you're not already authenticated, the CLI prompts you to log in. It stores your credentials locally and any subsequent CLI commands use these credentials.
|
|
@@ -157,7 +155,7 @@ Automate deployments from GitHub Actions, GitLab CI, or any CI provider. After y
|
|
|
157
155
|
Pass `--yes` (or `-y`) to skip all confirmation prompts. Without it, the CLI waits for interactive input and your CI job hangs.
|
|
158
156
|
|
|
159
157
|
```bash
|
|
160
|
-
mastra
|
|
158
|
+
mastra deploy --yes
|
|
161
159
|
```
|
|
162
160
|
|
|
163
161
|
### GitHub Actions
|
|
@@ -184,15 +182,13 @@ jobs:
|
|
|
184
182
|
- name: Install dependencies
|
|
185
183
|
run: npm install
|
|
186
184
|
- name: Deploy to Mastra platform
|
|
187
|
-
run: npx mastra
|
|
185
|
+
run: npx mastra deploy --yes
|
|
188
186
|
env:
|
|
189
187
|
MASTRA_API_TOKEN: ${{ secrets.MASTRA_API_TOKEN }}
|
|
190
188
|
```
|
|
191
189
|
|
|
192
190
|
Adjust the `paths` filter and `working-directory` if your Mastra project is in a subdirectory (e.g. a monorepo).
|
|
193
191
|
|
|
194
|
-
> **Note:** For Studio deploys, replace `mastra server deploy` with `mastra studio deploy`. The flags and environment variables are the same.
|
|
195
|
-
|
|
196
192
|
### GitLab CI
|
|
197
193
|
|
|
198
194
|
The following pipeline deploys on pushes to `main`:
|
|
@@ -206,7 +202,7 @@ deploy:
|
|
|
206
202
|
before_script:
|
|
207
203
|
- npm install
|
|
208
204
|
script:
|
|
209
|
-
- npx mastra
|
|
205
|
+
- npx mastra deploy --yes
|
|
210
206
|
```
|
|
211
207
|
|
|
212
208
|
Add `MASTRA_API_TOKEN` as a CI/CD variable in **Settings → CI/CD → Variables**.
|
|
@@ -217,7 +213,7 @@ Any CI system that runs Node.js and shell commands works with Mastra:
|
|
|
217
213
|
|
|
218
214
|
1. Install dependencies.
|
|
219
215
|
2. Set `MASTRA_API_TOKEN` as an environment variable.
|
|
220
|
-
3. Run `mastra
|
|
216
|
+
3. Run `mastra deploy --yes`.
|
|
221
217
|
|
|
222
218
|
### Verify the deploy
|
|
223
219
|
|
|
@@ -253,8 +249,7 @@ The CLI reads `organizationId` and `projectId` from `.mastra-project.json` by de
|
|
|
253
249
|
|
|
254
250
|
## Related
|
|
255
251
|
|
|
256
|
-
- [`mastra
|
|
252
|
+
- [`mastra deploy`](https://mastra.ai/reference/cli/mastra)
|
|
257
253
|
- [`mastra server pause`](https://mastra.ai/reference/cli/mastra)
|
|
258
254
|
- [`mastra server restart`](https://mastra.ai/reference/cli/mastra)
|
|
259
|
-
- [`mastra studio deploy`](https://mastra.ai/reference/cli/mastra)
|
|
260
255
|
- [`mastra auth tokens`](https://mastra.ai/reference/cli/mastra)
|
|
@@ -6,8 +6,6 @@ Studio on Mastra platform is a hosted visual workspace for testing agents and ru
|
|
|
6
6
|
|
|
7
7
|
You can deploy Studio from the CLI as shown below, or link a GitHub repository for push-to-deploy. See the [GitHub integration](https://mastra.ai/docs/mastra-platform/github) for the repository-linked flow.
|
|
8
8
|
|
|
9
|
-
> **Note:** `mastra studio deploy` is the earlier split deploy path. New projects should use the unified [`mastra deploy`](https://mastra.ai/docs/mastra-platform/deploy) command, which adds preflight validation, environments, and CLI-managed databases.
|
|
10
|
-
|
|
11
9
|
## Quickstart
|
|
12
10
|
|
|
13
11
|
1. Follow the [get started guide](https://mastra.ai/docs) to create your first Mastra project.
|
|
@@ -41,7 +39,7 @@ You can deploy Studio from the CLI as shown below, or link a GitHub repository f
|
|
|
41
39
|
3. Deploy Studio with a single command:
|
|
42
40
|
|
|
43
41
|
```bash
|
|
44
|
-
mastra
|
|
42
|
+
mastra deploy
|
|
45
43
|
```
|
|
46
44
|
|
|
47
45
|
On a successful deploy, the CLI outputs the URL of your deployed Studio instance.
|
|
@@ -50,11 +48,11 @@ On your first deploy, the CLI prompts you to create a new project or select an e
|
|
|
50
48
|
|
|
51
49
|
## How deploy works
|
|
52
50
|
|
|
53
|
-
The `mastra
|
|
51
|
+
The `mastra deploy` command builds your project and compiles `src/mastra/` into `.mastra/output`. It packages that output as an artifact ZIP, then uploads and deploys it to a cloud sandbox.
|
|
54
52
|
|
|
55
53
|
A deploy transitions through **queued → uploading → starting → running** or **failed** if something goes wrong. If a sandbox is already running for your project, the platform updates it in place with no downtime. Otherwise, it creates a fresh sandbox. Your instance URL is assigned per project slug and remains stable across deploys.
|
|
56
54
|
|
|
57
|
-
See the [`mastra
|
|
55
|
+
See the [`mastra deploy` CLI reference](https://mastra.ai/reference/cli/mastra) for the full list of flags and CI/CD usage.
|
|
58
56
|
|
|
59
57
|
## Environment files
|
|
60
58
|
|
|
@@ -63,17 +61,17 @@ A local env file is optional. When a `.env` or `.env.*` file is present in the p
|
|
|
63
61
|
When multiple env files are present, the CLI prompts you to pick one. To select non-interactively, pass `--env-file`:
|
|
64
62
|
|
|
65
63
|
```bash
|
|
66
|
-
mastra
|
|
64
|
+
mastra deploy --env-file .env.production --yes
|
|
67
65
|
```
|
|
68
66
|
|
|
69
|
-
To run the same codebase across `production` and `staging`, use
|
|
67
|
+
To run the same codebase across `production` and `staging`, use [`mastra deploy --env`](https://mastra.ai/docs/mastra-platform/deploy). See [Environments](https://mastra.ai/docs/mastra-platform/environments) for the full model.
|
|
70
68
|
|
|
71
69
|
## Create a new project non-interactively
|
|
72
70
|
|
|
73
|
-
`mastra
|
|
71
|
+
`mastra deploy` can create a project on first run. If `--project <name>` doesn't match an existing project, the CLI uses the value as the new project name and creates it after confirmation. Combined with `--yes`, this is fully scriptable:
|
|
74
72
|
|
|
75
73
|
```bash
|
|
76
|
-
mastra
|
|
74
|
+
mastra deploy --project "my-new-project" --yes
|
|
77
75
|
```
|
|
78
76
|
|
|
79
77
|
Use this from CI or AI coding agents instead of `mastra studio projects create`, which is interactive only.
|
|
@@ -84,4 +82,4 @@ To deploy Studio on your own infrastructure, see [Studio deployment](https://mas
|
|
|
84
82
|
|
|
85
83
|
## Related
|
|
86
84
|
|
|
87
|
-
- [`mastra
|
|
85
|
+
- [`mastra deploy`](https://mastra.ai/reference/cli/mastra)
|
|
@@ -350,6 +350,25 @@ const agent = new Agent({
|
|
|
350
350
|
})
|
|
351
351
|
```
|
|
352
352
|
|
|
353
|
+
FastEmbed also exposes the multilingual E5 model for non-English content. E5 is asymmetric, so it's exposed as two models: `multilingualE5LargePassage` for text you index and `multilingualE5LargeQuery` for search text.
|
|
354
|
+
|
|
355
|
+
```ts
|
|
356
|
+
import { Memory } from '@mastra/memory'
|
|
357
|
+
import { Agent } from '@mastra/core/agent'
|
|
358
|
+
import { fastembed } from '@mastra/fastembed'
|
|
359
|
+
|
|
360
|
+
const agent = new Agent({
|
|
361
|
+
id: 'agent',
|
|
362
|
+
memory: new Memory({
|
|
363
|
+
embedder: fastembed.multilingualE5LargePassage,
|
|
364
|
+
}),
|
|
365
|
+
})
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
Memory uses a single embedder for both storing and recalling messages, so pick one of the two models and use it consistently. Use the paired `multilingualE5LargeQuery` model only where you control both sides of the pipeline, such as a RAG workflow that indexes with the passage model and searches with the query model.
|
|
369
|
+
|
|
370
|
+
Multilingual E5 produces 1024-dimensional vectors. Your vector index must be created with matching dimensions, and E5 vectors can't be mixed with vectors from another embedder in the same index.
|
|
371
|
+
|
|
353
372
|
## PostgreSQL index optimization
|
|
354
373
|
|
|
355
374
|
When using PostgreSQL as your vector store, you can optimize semantic recall performance by configuring the vector index. This is particularly important for large-scale deployments with thousands of messages.
|
|
@@ -33,6 +33,10 @@ await mastra.observability.addFeedback({
|
|
|
33
33
|
})
|
|
34
34
|
```
|
|
35
35
|
|
|
36
|
+
When you pass only `traceId` and `spanId`, `addFeedback()` rehydrates the target from configured observability storage before emitting the feedback event. Configure [`MastraStorageExporter`](https://mastra.ai/docs/observability/integrations/exporters/mastra-storage) when feedback is added after the traced execution has finished. If the trace isn't available in storage, Mastra logs a warning and drops the feedback event.
|
|
37
|
+
|
|
38
|
+
During a live traced execution, you can pass its `correlationContext` to emit feedback without rehydrating the trace from storage. This path is useful when the active request collects feedback before its tracing context ends.
|
|
39
|
+
|
|
36
40
|
## Find the trace for a message
|
|
37
41
|
|
|
38
42
|
Feedback is usually collected against a message a user has already read, so you need the `traceId` for that message. Assistant messages carry it in `content.metadata`, both in the stream result and when the message is recalled later from memory:
|
|
@@ -143,6 +147,16 @@ const ratingsOverTime = await observability!.getFeedbackTimeSeries({
|
|
|
143
147
|
|
|
144
148
|
See the [feedback reference](https://mastra.ai/reference/observability/feedback) for all fields, filters, return types, and percentile query parameters.
|
|
145
149
|
|
|
150
|
+
The local runtime exposes the list route at `/api/observability/feedback` and analytics under its related paths. See the [HTTP routes table](https://mastra.ai/reference/observability/feedback). Mastra Platform provides a separate, unversioned hosted query API. See the [observability feedback query API](https://mastra.ai/docs/mastra-platform/api) for regional endpoints, authentication, and project scoping.
|
|
151
|
+
|
|
152
|
+
## Export feedback to Mastra Platform
|
|
153
|
+
|
|
154
|
+
[`MastraPlatformExporter`](https://mastra.ai/reference/observability/tracing/exporters/mastra-platform-exporter) forwards emitted feedback events to Mastra Platform automatically because the hosted query API doesn't provide a creation route.
|
|
155
|
+
|
|
156
|
+
If your application adds feedback after an agent or workflow response using only its `traceId`, configure `MastraStorageExporter` alongside `MastraPlatformExporter`. The storage exporter keeps the trace available for `addFeedback()` to rehydrate, and the Platform exporter forwards the resulting feedback event. Exporting a trace to Platform doesn't make it available to the application's local storage.
|
|
157
|
+
|
|
158
|
+
See [Observability on Mastra Platform](https://mastra.ai/docs/mastra-platform/observability) for the combined exporter configuration.
|
|
159
|
+
|
|
146
160
|
## Export feedback to external platforms
|
|
147
161
|
|
|
148
162
|
Feedback flows through the observability event bus, so exporters that support feedback forward it automatically. The [PostHog exporter](https://mastra.ai/reference/observability/tracing/exporters/posthog) sends feedback as native `$ai_feedback` events that appear on the linked trace in PostHog.
|
|
@@ -87,11 +87,12 @@ MastraStorageExporter automatically selects the optimal tracing strategy based o
|
|
|
87
87
|
|
|
88
88
|
### Available Strategies
|
|
89
89
|
|
|
90
|
-
| Strategy | Description
|
|
91
|
-
| ---------------------- |
|
|
92
|
-
| **realtime** | Process each event immediately
|
|
93
|
-
| **batch-with-updates** | Buffer events and batch write with full lifecycle support
|
|
94
|
-
| **insert-only** | Only process completed spans, ignore updates
|
|
90
|
+
| Strategy | Description | Use Case |
|
|
91
|
+
| ---------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------ |
|
|
92
|
+
| **realtime** | Process each event immediately | Development, debugging, low traffic |
|
|
93
|
+
| **batch-with-updates** | Buffer events and batch write with full lifecycle support | Low volume Production |
|
|
94
|
+
| **insert-only** | Only process completed spans, ignore updates | High volume Production |
|
|
95
|
+
| **event-sourced** | Write one row when a span starts and another when it ends, then collapse them on read | High volume Production, in-progress traces |
|
|
95
96
|
|
|
96
97
|
### Strategy Configuration
|
|
97
98
|
|
|
@@ -99,7 +100,7 @@ MastraStorageExporter automatically selects the optimal tracing strategy based o
|
|
|
99
100
|
new MastraStorageExporter({
|
|
100
101
|
strategy: 'auto', // Default - let storage provider decide
|
|
101
102
|
// or explicitly set:
|
|
102
|
-
// strategy: 'realtime' | 'batch-with-updates' | 'insert-only'
|
|
103
|
+
// strategy: 'realtime' | 'batch-with-updates' | 'insert-only' | 'event-sourced'
|
|
103
104
|
|
|
104
105
|
// Batching configuration (applies to both batch-with-updates and insert-only)
|
|
105
106
|
maxBatchSize: 1000, // Max spans per batch
|
|
@@ -116,14 +117,17 @@ If you set the strategy to `'auto'`, the `MastraStorageExporter` automatically s
|
|
|
116
117
|
|
|
117
118
|
### Providers with Observability Support
|
|
118
119
|
|
|
119
|
-
| Storage Provider
|
|
120
|
-
|
|
|
121
|
-
| **[ClickHouse](https://mastra.ai/integrations/databases/clickhouse)**
|
|
122
|
-
| **[
|
|
123
|
-
| **[
|
|
124
|
-
| **[
|
|
125
|
-
| **[
|
|
126
|
-
| **[
|
|
120
|
+
| Storage Provider | Preferred Strategy | Supported Strategies | Recommended Use |
|
|
121
|
+
| ----------------------------------------------------------------------------- | ------------------ | ------------------------------- | ------------------------------------- |
|
|
122
|
+
| **[ClickHouse](https://mastra.ai/integrations/databases/clickhouse)** | insert-only | insert-only | Production (high-volume) |
|
|
123
|
+
| **[PostgresStore](https://mastra.ai/integrations/databases/postgresql)** | batch-with-updates | batch-with-updates, insert-only | Production (low volume) |
|
|
124
|
+
| **[PostgresStoreVNext](https://mastra.ai/integrations/databases/postgresql)** | event-sourced | event-sourced | Production (high-volume) |
|
|
125
|
+
| **[MSSQL](https://mastra.ai/integrations/databases/mssql)** | batch-with-updates | batch-with-updates, insert-only | Production (low volume) |
|
|
126
|
+
| **[MongoDB](https://mastra.ai/integrations/databases/mongodb)** | batch-with-updates | batch-with-updates, insert-only | Production (low volume) |
|
|
127
|
+
| **[OracleDB](https://mastra.ai/integrations/databases/oracledb)** | batch-with-updates | batch-with-updates, insert-only | Production (low volume) |
|
|
128
|
+
| **[libSQL](https://mastra.ai/integrations/databases/libsql)** | batch-with-updates | batch-with-updates, insert-only | Default storage, good for development |
|
|
129
|
+
|
|
130
|
+
> **Note:** Under `insert-only`, only completed spans are persisted, and span start and update events are ignored. A trace therefore becomes visible in Studio only after its root span ends, and filtering traces by `status: 'running'` returns no results. `PostgresStoreVNext` uses `event-sourced` tracing instead, so in-progress traces remain visible while preserving append-only writes.
|
|
127
131
|
|
|
128
132
|
### Providers without Observability Support
|
|
129
133
|
|
|
@@ -141,6 +145,7 @@ The following storage providers **don't support** the observability domain. If y
|
|
|
141
145
|
- **realtime**: Immediate visibility, best for debugging
|
|
142
146
|
- **batch-with-updates**: 10-100x throughput improvement, full span lifecycle
|
|
143
147
|
- **insert-only**: Additional 70% reduction in database operations, perfect for analytics
|
|
148
|
+
- **event-sourced**: Append-only like insert-only, but in-progress traces stay visible in Studio while a run executes
|
|
144
149
|
|
|
145
150
|
## Production recommendations
|
|
146
151
|
|