Durable, consistent state for every entity in your application. No database to manage, no locks to write, no race conditions to debug.

Stateful Actors on Telnyx run colocated with telephony termination, so call-leg and messaging workloads stay where calls land, not in a distant cloud region. That means lower latency for real-time voice and messaging. And actors are part of a broader platform: Functions, KV, Object Storage, and Inference on one account, one API, one bill.

Voice, messaging, storage, compute, and inference on a single API. Your application talks to the same infrastructure that carries the call, stores the data, and runs the model. No patchwork of vendors to reconcile.

Traffic between your functions, storage, and telephony stays on the Telnyx private network. Lower latency, no exposure to public internet routing, no hop through a third-party cloud.

Telnyx infrastructure carries production voice and messaging traffic for enterprises globally. The same network that handles millions of calls powers your edge compute workloads. Tier-1 backbone, redundant routing, 24/7 NOC.
The actor model handles locking, routing, and persistence for you. You write a class with methods. The platform does the rest.
Consistent per-entity state
Every request for the same entity routes to the same instance. Two requests for the same user, same cart, same call leg always hit the same state. The platform handles routing automatically, no coordination logic required.
No race conditions
Requests are handled one at a time within each actor. No locks, no mutexes, no transaction blocks. Race conditions are structurally impossible because the platform serializes access for you.
Survives restarts
Writes are flushed to persistent storage before the caller gets a response. If an actor restarts, it recovers its committed state automatically. You never lose acknowledged work.
Just write a class
Define a TypeScript class with methods for your entity logic. The platform handles routing, serialization, and persistence. No workflow definitions, no state machine DSL, no infrastructure config files.
Fast reads, safe recovery
State lives in memory for fast reads on the hot path, with durable storage for recovery. You get speed and safety without managing either one yourself.
Runs where your calls land
Actors run on the same edge infrastructure as Telnyx Functions, colocated with call termination. Lower latency for real-time voice and messaging workloads.
Write a TypeScript class with your business logic. The platform routes requests, serializes calls, persists writes, and recovers state on restart. Your code is just the logic that matters.
// Define a stateful actor class
export default class CartActor {
constructor(private state: DurableObjectState) {}
async addItem(item: { id: string; qty: number }) {
let cart = (await this.state.storage.get('cart')) || [];
cart.push(item);
await this.state.storage.put('cart', cart);
return cart;
}
async getCart() {
return (await this.state.storage.get('cart')) || [];
}
}
Functions call actors through a binding. A stateless function delegates stateful operations to an actor instance. No credentials, no network hop.
Learn more
Mount a POSIX filesystem on any host or container. Actors can read and write files that persist across restarts, with concurrent access from multiple instances.
Learn more
Actors read and write KV for shared state. Session data written by a function is readable from an actor, and vice versa. One store, no sync step.
Learn more.webp?width=1568&format=webp)
Actors can invoke inference models for real-time AI workloads. Call state persists across turns, so the actor remembers conversation context between model calls.
Learn moreGet an API key, deploy your first actor, and tell us what you are building. We are actively working on the roadmap and want your feedback.

Get an API key, deploy your first actor, and tell us what you are building. We are actively working on the roadmap and want your feedback.

A stateful actor gives each entity in your application its own durable, consistent state. Every request for the same entity, like a shopping cart or a call leg, hits the same instance every time. You get read-modify-write semantics without locks, transactions, or an external database.
Every request for the same entity, like "cart_123" or "acct_456", routes to the same running instance. Two concurrent requests for the same entity both hit the same actor. The platform handles routing automatically, so you don't need to coordinate or shard.
Edge functions are stateless. Each request is independent, with no shared state between calls. Actors are stateful. An actor maintains state across requests, and the platform guarantees that the same instance handles all requests for a given entity.
Memory is a cache. Only persisted storage survives restarts. When an actor restarts, it recovers its state from durable storage. Any write that was acknowledged before the restart is safe. Any in-memory state that was not persisted is lost.
Actors are in early access. We're actively developing features like WebSocket hibernation and alarms. For low-traffic or internal workloads, actors are stable enough to use today. For high-traffic production workloads, talk to us about your use case and we'll help you assess readiness.
Both use the actor model: one instance per entity, single-threaded execution. The key difference is that Telnyx Actors are colocated with telephony termination, so call-leg and messaging workloads run where calls land. Telnyx Actors are also part of a broader platform that includes Functions, KV, Object Storage, and Inference. Cloudflare Durable Objects are GA with SQLite backing, WebSocket hibernation, and alarms. We don't have those features yet, and we're honest about that.
Shopping carts, call leg state, chat rooms, per-user rate limiters, and job coordinators. Any workload where you need per-entity state with read-modify-write semantics is a good fit. The actor model eliminates the locking and transaction complexity that comes with shared-state approaches.
Create a Telnyx account, generate an API key, and deploy your first actor class. During early access, we're working closely with early users. Tell us what you're building and we'll help you get set up.