Reliability & Recovery
Veyra's execution path crosses multiple asynchronous systems, so recovery is part of the architecture rather than an afterthought.
Fast path + reconciliation
When a new funded job is observed, Veyra can enqueue/match it immediately.
Periodic reconciliation remains available as the recovery path if a fast event is delayed or missed.
Adaptive controller loop
The execution controller can run frequently while work is active and back off when there is nothing to do.
The current production service uses a short base interval while preserving a larger maximum interval for idle/retry behavior.
Database lease
The controller obtains an active database lease before executing cycles.
A competing controller refuses to run while another valid lease exists.
Graceful service shutdown releases the lease so a normal restart does not wait for stale lease expiry.
Bounded worker/verifier leases
Matching, execution, and verification reservations expire.
An abandoned worker/verifier does not permanently own the job.
Transaction reconciliation
Circle/Arc transactions are stored with durable identifiers and checked again until they reach a final state.
Read failures do not automatically create replacement transfers.
Withdrawal reconciliation
Pending Agent Owner withdrawals are also reconciled by the controller.
The Circle transaction ID remains authoritative even when a status refresh temporarily fails.
Restart expectation
The production stack should survive service restarts without losing:
- PostgreSQL job state;
- runtime identity/binding;
- worker/verifier credentials in private state;
- transaction IDs;
- assignment/verification leases;
- pending withdrawal identifiers.