Skip to content
Praxis is in alpha. The supported API is praxis.io/alpha, and the contract can change while Praxis is in alpha.About the alpha contract

Architecture

Praxis separates declaration, orchestration, durable execution, and provider behavior into clear layers.

CUE templatePraxis Corevalidate · plan · build the DAG · coordinateRestatedurable calls · state · timers · serializationDriver packsone lifecycle contract · 51 AWS resource kindsAWS APIs declared resourcesdurable workflows and RPCkeyed resource operationsobserve and converge

Core receives commands, evaluates templates, resolves data sources and secrets, builds the resource graph, and coordinates deployments. It owns relationships between resources. Individual drivers do not know about the deployment DAG.

Each managed resource is a keyed Restate Virtual Object. Mutation handlers are exclusive, so concurrent requests for the same resource are serialized without a separate distributed lock. Shared handlers expose status, outputs, and inputs concurrently.

Every production driver uses the same generic lifecycle kernel with resource-specific hooks for:

  • Spec decoding and provider identity
  • AWS client construction
  • Create, read, update, and delete operations
  • Desired-versus-observed field comparison
  • Output normalization
  • Provider error classification

The service-specific code describes AWS behavior. The generic kernel owns state transitions, conditions, reconciliation policy, and handler shape.

Drivers are grouped into storage, network, compute, identity, and monitoring services. The grouping controls deployment and scaling boundaries without changing the per-resource contract.

Restate provides the durable runtime capabilities that Praxis needs directly. Kubernetes is therefore optional infrastructure for hosting the services, not part of the Praxis resource model.