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

Desired and observed state

Praxis reasons about infrastructure through three related views.

Desired stateevaluated CUEObserveread AWSObserved statenormalized provider dataCompareLifecycle policyCorrect AWSReady + DriftFree conditionautoobserve differencedriftedreport onlyread againmatching

Desired state is the validated resource specification produced from the CUE template. It records what the user asked Praxis to maintain.

Observed state is a fresh description returned by the AWS API. Drivers normalize provider responses before comparing them so irrelevant ordering and provider defaults do not create false drift.

Outputs are stable values exposed to users and dependent resources, such as a VPC ID, bucket ARN, or load balancer DNS name. They are persisted with resource state and can hydrate downstream specifications.

Planning combines desired state with stored outputs and a live provider probe when enough identity is known. The result distinguishes:

  • A resource that does not exist and must be created
  • A matching resource that needs no changes
  • A mutable field change
  • An immutable change that requires replacement
  • A resource removed from the desired deployment

Reconciliation repeats the desired-versus-observed comparison after deployment. Policy determines whether the result produces corrective writes or a visibility-only drift condition.

This separation lets Praxis report a healthy control-plane decision without pretending AWS matches the declaration. For example, correction-disabled drift can remain Ready while DriftFree=False preserves the fact that AWS differs.