# Myxo > Myxo is a Python framework for services that run together in one process or apart on several machines, with the same code. A TOML file, the layout, places services in processes; moving a service or adding replicas changes that file and leaves the code alone. A service is a class with a typed interface: a `Protocol` of async methods, each taking one frozen `msgspec` struct. `runtime.client(API)` returns a client that behaves the same whether the callee is in the process or across the network, with one timeout and the same errors (`Invalid`, `NotFound`, `Unavailable`, `RemoteError`). The framework includes events, jobs, schedules, caches and push to browsers, all on SQLite or PostgreSQL, with no Redis or broker. `myxo export` writes files for systemd, Hop3, Kubernetes, Docker and Procfile platforms. Myxo is at version 0.2, on PyPI (`pip install myxo`, or `myxo[postgresql]`), and needs Python 3.14 or later on Linux or macOS. Any name may change in a minor release until 1.0. Each link below names a page's Markdown source, beside the page on the site. ## Getting started - [Overview](https://myxo.lab.abilian.com/get-started/index.md): where to begin, and the words these pages use - [Installation](https://myxo.lab.abilian.com/get-started/installation.md): adding Myxo to a project, and its extras - [Quick Start](https://myxo.lab.abilian.com/get-started/quickstart.md): two services, run in one process and in two - [The Model](https://myxo.lab.abilian.com/concepts/index.md): services, interfaces, messages, clients, layouts and the runtime ## Tutorial - [The Application](https://myxo.lab.abilian.com/tutorial/index.md): a guestbook's interface, services and entry points - [Step 0: Develop](https://myxo.lab.abilian.com/tutorial/develop.md): one process on SQLite, and adding a service - [Step 1: One Box](https://myxo.lab.abilian.com/tutorial/one-box.md): two processes on one machine, `myxo up`, systemd's files - [Step 2: A Real Database](https://myxo.lab.abilian.com/tutorial/database.md): moving to PostgreSQL with `DATABASE_URL` - [Step 3: On a Platform](https://myxo.lab.abilian.com/tutorial/platform.md): an image, a secret, a migration job and the manifests - [Step 4: Replicas](https://myxo.lab.abilian.com/tutorial/replicas.md): an instance count, on PostgreSQL ## Writing applications - [Writing a Service](https://myxo.lab.abilian.com/guides/services.md): configuration, a service's own data, readiness and stages - [Placing Services](https://myxo.lab.abilian.com/guides/placing.md): when a service deserves its own process - [Rules for Application Code](https://myxo.lab.abilian.com/guides/rules.md): nine rules that keep the placement free - [Events](https://myxo.lab.abilian.com/guides/events.md): publishing in a transaction, consumer groups and retention - [Jobs](https://myxo.lab.abilian.com/guides/jobs.md): the durable queue, its guarantees and its rates - [Schedules](https://myxo.lab.abilian.com/guides/schedules.md): periodic work from one leader - [Caches](https://myxo.lab.abilian.com/guides/caches.md): in the process, or shared by the installation - [Push to Browsers](https://myxo.lab.abilian.com/guides/push.md): events as Server-Sent Events ## Reference - [Commands](https://myxo.lab.abilian.com/reference/cli.md): `myxo serve`, `migrate`, `up`, `check` and `export` - [Layout File](https://myxo.lab.abilian.com/reference/layout.md): every key of a layout - [Python API](https://myxo.lab.abilian.com/reference/api.md): `Service`, `Runtime`, the errors, the framework's services and the wire format - [Troubleshooting](https://myxo.lab.abilian.com/guides/troubleshooting.md): each message Myxo gives, its cause and what to do ## Deploying and operating - [Choosing a Target](https://myxo.lab.abilian.com/guides/deploying.md): the targets compared, and what has been tested - [systemd](https://myxo.lab.abilian.com/guides/systemd.md): units for a server with no platform - [Hop3](https://myxo.lab.abilian.com/guides/hop3.md): the files, and the directory with the application's wheel - [Kubernetes](https://myxo.lab.abilian.com/guides/kubernetes.md): what the layout must read, and what the export writes - [Operations](https://myxo.lab.abilian.com/guides/operations.md): migrations, upgrades, logs, backups and the framework's tables - [Security](https://myxo.lab.abilian.com/guides/security.md): what Myxo protects, and what remains yours ## Optional - [Home](https://myxo.lab.abilian.com/index.md): a short presentation of Myxo - [Reference overview](https://myxo.lab.abilian.com/reference/index.md): an index of the reference pages - [The Continuum](https://myxo.lab.abilian.com/concepts/continuum.md): the five steps, what a run measured, and where each step stops - [Failures](https://myxo.lab.abilian.com/concepts/failures.md): errors, restarts and readiness - [Guides overview](https://myxo.lab.abilian.com/guides/index.md): an index of the guides - [Changelog](https://myxo.lab.abilian.com/reference/changelog.md): each version's contents and known limits