Skip to content

deliveryhero/asya

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

344 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Asya Β Β  Delivery Hero

CI License Go Report Card Kubernetes Helm Artifact Hub

The Message Knows the Way.

🎭 Asya is a Kubernetes-native actor mesh for async AI/ML pipelines. Each actor is a pure Python function. Each message carries its own route. No central orchestrator. No SDK. No waiting.


The Problem

AI workloads are batch jobs β€” bursty, GPU-heavy, multi-step. Forcing them into synchronous REST patterns creates three problems:

  1. Wasted resources β€” GPU pods sit idle between bursts; you pay for 24/7 what you need for minutes
  2. Cascading failures β€” one slow step blocks the entire pipeline; retry logic is bolted on
  3. Tight coupling β€” models, transports, and orchestration are tangled in application code

How Asya Solves It

Write a pure Python function. Deploy it as a Kubernetes CRD. Asya handles the rest:

# handler.py β€” your code, zero dependencies
def process(state: dict) -> dict:
    state["output"] = model.predict(state["input"])
    return state
# 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

Two files, two owners: data scientist owns the handler, platform team owns the spec.

Actor Mesh

Actors communicate through queues. Each message carries its own route.


Key Properties

  • Decentralized routing β€” each envelope carries prev/curr/next queues; no coordinator to fail
  • Scale to zero β€” KEDA watches each actor's queue independently; GPU pods cost nothing when idle
  • Pure Python handlers β€” no SDK imports, no decorators; test with assert process(payload) == expected
  • Dynamic pipelines β€” routes are data, not code; actors rewrite routing at runtime for agentic patterns, LLM judges, and branching flows
  • Multi-transport β€” SQS, RabbitMQ, GCP Pub/Sub; switch without changing handler code
  • A2A + MCP gateway β€” expose actor pipelines as A2A agents or MCP tools with streaming and pause/resume

Get Started

helm repo add asya https://asya.sh/charts
helm repo update asya
helm install asya asya/asya-playground --namespace asya-demo --create-namespace

See the full Quickstart Guide for cluster setup, verification, and sending your first message.


Documentation

Setup Install on Kind (local), EKS, or GKE
Usage Write handlers, deploy actors, build flows
Concepts Envelope, actor, sidecar, routing β€” the core model
Architecture Components, protocols, data flow
Reference Specs, config tables, API surfaces
Examples Actor specs and Flow DSL examples

Contributing

See CONTRIBUTING.md. Prerequisites: Go 1.24+, Python 3.13+, Docker, Make.


Status

Born from 3 years of production AI workloads at Delivery Hero. Open source and growing.

Apache 2.0 licensed. 🎭 Maintainer: Artem Yushkovskiy (@atemate)

About

🎭 Distributed Actor Mesh on K8s for AI Agents

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors