Asya

The Message Knows the Way.


/ΛˆΙ‘Λ.sjΙ™/async actors 🎭

  • A Kubernetes-native actor mesh for AI and agentic workloads
  • Queue-based routing — each message carries its own route
  • Independent scaling from zero to infinity
  • No central orchestrator — choreography, not orchestration
  • Pure Python functions and K8s manifests — no infrastructure in your code
License CI Go Report Card Release Kubernetes 1.28+ Helm 3.12+ Artifact Hub

Two files. Two owners.

Data Scientist owns the handler

Pure Python, zero dependencies. No SDK imports, no decorators, no framework coupling.

Test locally with assert process(state) == expected.

# handler.py — your code, zero dependencies def process(state: dict) -> dict: state["output"] = model.predict(state["input"]) return state

Platform team owns the spec

Deploy as a Kubernetes CRD. Asya injects the sidecar, creates the queue, configures KEDA autoscaling. Your code stays clean.

# actor.yaml — the platform's job apiVersion: asya.sh/v1alpha1 kind: AsyncActor metadata: name: my-model spec: image: my-model:latest handler: handler.process scaling: minReplicas: 0 maxReplicas: 50

Why Asya

Built for AI/ML workloads that need independent scaling, fault isolation, and zero framework lock-in.

Architecture

Actors communicate through message queues. Each message is an envelope that carries its own routing instructions.

Actor Mesh diagram showing actors connected through queues with independent KEDA scaling

Actor Mesh: messages carry their own route through independently scaling actors

Actor Anatomy

Every actor pod has two containers: your Python runtime and the Asya sidecar. The sidecar polls the queue, delivers the envelope to your handler via Unix socket, and routes the response to the next queue in the chain.

Queue → Sidecar → Runtime → Sidecar → Next Queue

Quick Start

Local actor mesh in minutes.
Requires Docker, kubectl, Helm, and Kind.

Local Kind AWS EKS GCP GKE

Interoperability

Pluggable at every layer. Swap transports, state backends, and gateway protocols independently.

Message Transports
SQS Amazon RabbitMQ AMQP Pub/Sub GCP Kafka planned NATS JetStream planned Azure Service Bus planned
State Backends
S3 Amazon GCS Google Redis NATS KV DynamoDB planned Azure Blob planned PostgreSQL planned

How Asya🎭 Compares

Honest, factual comparisons with real code examples.

Documentation