
# Orion
**Build services at AI speed on a consistent, governed foundation.**
Define the business logic in JSON. Orion supplies the runtime around it.
[](https://github.com/GoPlasmatic/Orion/actions/workflows/ci.yml)
[](https://crates.io/crates/orion-server)
[](LICENSE)
[](https://www.rust-lang.org)
[](https://docs.goplasmatic.io/)
[](https://github.com/GoPlasmatic/Orion/releases)
Orion is a declarative services runtime. An Orion service consists of a
**workflow** and a **channel**, with optional **connectors** to external systems.
Post those definitions, activate them, and the service is live—without writing
an application server, building a container for each service, or restarting the
runtime.
Orion consistently handles the surrounding infrastructure: routing, ingress
guards, rate limits, timeouts, retries, circuit breakers, connection pooling,
version rollout, rollback, metrics, and tracing. Definitions can be written by
a developer or proposed by an AI assistant; they follow the same draft, test,
activation, and audit path.
> [!NOTE]
> Orion is designed for request- and event-shaped work expressible as ordered
> task functions and JSONLogic. It is not a general-purpose application runtime
> or a durable workflow engine. See [When Orion fits](#when-orion-fits) before
> choosing it for a project.
## Quickstart
This tested path uses Docker, `curl`, and a POSIX-compatible shell. It starts a
local Orion instance, deploys an order-processing workflow and channel, and
calls the resulting API.
### 1. Start Orion
```bash
docker run --name orion-quickstart -d -p 8080:8080 \
ghcr.io/goplasmatic/orion:latest
curl --retry 10 --retry-delay 1 --retry-connrefused \
http://localhost:8080/healthz
```
### 2. Inspect and deploy the example
```bash
curl -fsSLo /tmp/orion-quickstart.sh \
https://raw.githubusercontent.com/GoPlasmatic/Orion/main/examples/quickstart.sh
less /tmp/orion-quickstart.sh
bash /tmp/orion-quickstart.sh
```
The script makes four administration calls: it creates and activates a
workflow, then creates and activates its channel. It finishes with a test
request and is safe to run again. From a cloned repository, run
`./examples/quickstart.sh` instead.
### 3. Call your service
```bash
curl -fsS -X POST http://localhost:8080/api/v1/data/orders \
-H 'Content-Type: application/json' \
-d '{ "data": { "order_id": "ORD-0001", "total": 12500 } }'
```
The response contains the parsed order with `"flagged": true`. The workflow
holds the business logic; the channel exposes it at `POST /orders`. Routing,
validation, tracing, and lifecycle management are supplied by Orion.
For expected output, troubleshooting, Windows-friendly installation paths, and
cleanup instructions, follow the
[complete quickstart](https://docs.goplasmatic.io/getting-started/quickstart.html).
## The core model
```mermaid
flowchart LR
Request["HTTP request, Kafka record, or schedule"] --> Channel
Channel["Channel