Skip to content
← Blog

Introducing Akter

The framework for durable, stateful backends, and why we built it around one actor per thing.

Dallen Pyrah

Every backend we have worked on kept its most important things in pieces. An order lived in a table, its retries in a queue, its timers in cron, and its live updates on a socket server. The code that kept those pieces in step was always the code that broke.

One home per thing

Akter gives each order, chat room or agent session its own actor. The actor has an address, owns its state and tables, runs its own jobs, and keeps its live clients connected. It handles one request at a time, and each one commits in a single transaction against your Postgres database.

If a process dies before the commit, nothing was written. If it dies after, the retry gets the stored result.
REQUESTSBROWSERYOUR APISCHEDULEAKTERONE TRANSACTIONAGENT/S_41COMMITDATABASEPUSHLIVE CLIENTSEVERY TABUPDATES
Figure 1. Requests reach one actor by its address and commit in one transaction.

What's in the alpha

The 0.1 alpha runs embedded in your process or served over HTTP, WebSocket and SSE. Akter Cloud, with managed runners and an inspector for every actor, is in development.