Skip to content

deliveryhero/asya

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

317 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Asya🎭    Delivery Hero

The Message Knows the Way.

AI workloads don't belong behind synchronous REST APIs. They're batch jobs — bursty, GPU-heavy, multi-step — and forcing them into request/response patterns adds latency, waste, and cascading failures.

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 waiting.

def process(payload: dict) -> dict:
    return {**payload, "result": model.predict(payload["input"])}

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

Two files, two owners: your handler (Python) + your actor spec (YAML). That's the entire interface.


Why Asya

  • Decentralized routing — envelopes carry prev/curr/next queues; no coordinator can fail
  • Scale to zero — KEDA autoscales each actor independently from 0→N based on its own queue depth; GPU pods cost nothing when idle
  • Pure Python handlers — no SDK imports, no decorators, no framework coupling; test locally with assert process(payload) == expected
  • Dynamic pipelines — routes are data embedded in each message, not code; actors can rewrite routing at runtime for agentic patterns, LLM judges, branching flows

Documentation

Setup Install on Kind (local) or your cluster — start here
Usage Write handlers, deploy actors, build flows with the Flow DSL
Concepts Envelope, actor, sidecar, routing — the core model
Motivation Why async actors beat synchronous REST for AI at scale
Architecture Components, protocols, data flow
Operate Monitoring, scaling, troubleshooting, upgrades
Examples Actor specs and flow DSL examples

Contributing

Prerequisites: Go 1.24+, Python 3.13+, Docker, Make, uv

make setup          # Install hooks, sync deps
make build          # Build all components
make test-unit      # Unit tests
make lint           # Linters with auto-fix

See CONTRIBUTING.md for the full development and testing guide.


Status

Alpha. APIs may change. Battle-tested at Delivery Hero for global-scale AI image enhancement. Now powering LLM and agentic workflows.

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

About

🎭 Distributed Actor Mesh on K8s for AI Agents

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors