Features
Everything your data needs to become intelligent
An immutable event store with built-in AI enrichment, vector search, and compliance reporting. Every capability builds on the same append-only event spine.
Capabilities
What TES does
Nine capabilities, one event log. Each one builds on the immutable foundation below it.
Immutable Event Log
Every state change is an append-only event. No updates, no deletes. Current state is always derived from history, never overwritten. Full history preserved — trace what happened, when, why, and by whom.
await tes.emit("thing.status_changed", {
thing_id: "thing_abc",
status: "identified",
holder_id: "holder_wh01",
});Entity Lifecycle Tracking
Track things, holders, locations, and products through 26 lifecycle stages. Every custody transfer, location change, and status update is recorded. Edge history tracks every relationship over time.
AI Enrichment
Every event triggers automatic AI processing. Vision analysis, taxonomy classification, market pricing, valuation, and 1024-dim embeddings — all generated without any configuration required.
await tes.query(`mutation {
uploadThingImage(id: "thing_abc", input: {
url: "https://example.com/photo.jpg"
}) { success eventId }
}`);
// → vision, pricing, valuation, embeddingVector Search
Find similar entities by natural language, image, or existing item. BGE-M3 embeddings with cosine similarity. Search by meaning, not keywords. Embeddings are generated automatically by the enrichment pipeline.
const results = await tes.search({
query: "vintage leather jacket",
min_score: 0.7,
limit: 10,
});Compliance & Audit
Because every event is immutable, governance comes for free. Query the full audit trail for any entity. Export compliance reports by entity, time range, or jurisdiction. EU AI Act ready.
const trail = await tes.query(`{
eventsByEntity(entityId: "thing_abc") {
eventType timestamp source clientId
}
}`);Edge-Native Infrastructure
Built on Cloudflare Workers, Queues, R2, and D1. Sub-50ms globally across 300+ edge locations. Zero cold starts, automatic scaling. Multi-tenant with physical data isolation per client.
// POST https://tes.pentatonic.com/api/events
// x-response-time: 12ms
// cf-ray: 8a1b2c3d4e5f-LHR
// Tenant isolation is automaticWebhooks & Integrations
HMAC-SHA256 signed webhooks for real-time event notifications. Subscribe to any event type. Connect via GraphQL, REST, MCP for AI assistants, or the SDK.
await tes.webhooks.create({
url: "https://your-app.com/hooks/tes",
events: ["item.graded", "settlement.completed"],
secret: "whsec_...",
});Extensible Modules
Purpose-built modules extend the event log. Deep Memory for persistent AI recall. Bias Evolution for pattern and drift detection. Predictive modelling, pricing rules, Shopify sync, and more — enabled per client.
// Modules extend the GraphQL schema
// - deep-memory (persistent AI memory)
// - bias-evolution (anomaly detection)
// - predictive-modelling (demand forecasting)
// - pricing (rules-based pricing)
// - shopify-catalog (product sync)AI Agent SDK
Open-source SDK (MIT) that wraps any LLM client for automatic observability. Provider-agnostic — works with OpenAI, Anthropic, and Cloudflare Workers AI. Zero runtime dependencies. Includes a Claude Code plugin for persistent memory.
import { TESClient } from "@pentatonic/ai-agent-sdk";
const tes = new TESClient({ apiKey, clientId });
const ai = tes.wrap(new Anthropic());
// Every call is now automatically tracked
// Token usage, tool calls, sessions — all capturedFAQ
Frequently asked questions
Try it yourself
See TES in action
Simulate real-world entity lifecycles in the playground, or start building with the free tier.