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

Reconciliation and drift

Reconciliation compares a resource’s stored desired specification with its current AWS state. Praxis can run it from a durable timer or on demand.

Terminal window
praxis reconcile VPC/us-west-2~payments

When managedDriftCorrection is enabled:

  1. The driver describes the live AWS resource.
  2. It computes differences from the desired specification.
  3. It records drift conditions and an event.
  4. It applies supported corrective changes.
  5. It observes the resource again and records convergence.

If an externally deleted resource is still desired, the reconciler provisions it again. The declared resource still exists in Praxis, so absence in AWS is drift from user intent.

When correction is disabled, reconciliation performs no provider writes. Praxis reports the drift and keeps the resource operationally healthy because visibility-only behavior is the desired policy.

This is not a silent success. The resource retains a drift condition with the observed difference so users and agents can distinguish “matching AWS” from “healthy but externally changed.”

Transient provider failures are returned to Restate from inside the journaled handler callback. Restate applies durable retry semantics. Terminal validation, authorization, conflict, and not-found outcomes are classified explicitly so they do not retry forever.

A user can trigger provisioning after correcting a terminal resource error. Retry policy and timeout remain configurable at deployment level.

Conditions are persisted with generic resource state. They provide context beyond a single status value, including readiness, drift, and the latest reconciliation outcome.