Desired and observed state
Praxis reasons about infrastructure through three related views.
Desired state
Section titled “Desired state”Desired state is the validated resource specification produced from the CUE template. It records what the user asked Praxis to maintain.
Observed state
Section titled “Observed state”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
Section titled “Outputs”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
Section titled “Planning”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
Section titled “Reconciliation”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.