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.
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.