Skip to content

tapio

A Pekko-inspired actor toolkit for Python. Typed, asyncio-native actors with supervision, with Pydantic models throughout.

What runs today

Everything documented here runs and is tested. Local actors: spawning, typed tell, bounded mailboxes, dead letters, supervision with backoff, death watch, ask, timers, stash, message adapters, a round-robin router, run_blocking, and a deadline-based shutdown. Remoting: two systems open a TCP link, shake hands, and send each other typed messages, with refs that work on the other side, plus watching, asking, a failure detector, quarantine, an explicit reconnect, and starting an actor on another node. Clustering: nodes join from a seed list, gossip a membership they all converge on, let a member leave gracefully, and, with a downing strategy configured, write off the losing side of a partition. It ships a cluster singleton, a group router over a role, and a small HTTP port an operator reaches it through. The TestKit ships with the library.

Two things to know before you depend on it. A Terminated from an unreachable peer can be wrong, and staying wrong until somebody says otherwise is deliberate; the page about it explains why and what will change it. And clustering has no sharding and no distributed data: it places and moves a singleton and routes over a role, but it gives you nowhere to put replicated state, and a cluster with no downing strategy configured blocks on an unreachable member rather than guessing which side to keep. The page about it says what a cluster does give you.

Every code block on this site is a snippet include from examples/, so nothing documented here is unexecuted.