Loading…
Loading…
The reason AI builders can’t ship payment + fulfilment + notification correctly is that they don’t generate compensators. Archiet does — with parallel branches, outbox events, distributed locks, and idempotent retries, generated as code for every multi-system workflow in your blueprint.
Generated when an aggregate root has more than three transitions, when a process flow touches more than one external system, or when the genome selects the workflow.saga capability.
Each saga step has a forward_action and a compensate_action. On failure at step N, compensators for steps 1…N−1 run in reverse order. The final state matches the initial state — no partial-failure ghosts.
Steps declare parallel_with: [other_step_ids] and the orchestrator runs them concurrently and joins. Sagas that touch payment + warehouse + email aren’t serial waterfalls.
Every step has an idempotency_key. Same key + same input returns the cached result. Replays after partial failure don’t double-charge or double-fulfill.
Saga steps that emit external events write to outbox_events in the same database transaction; a separate consumer publishes to RabbitMQ / Kafka / SQS / Cloud Pub/Sub. Zero 2PC, zero lost messages.
A saga can declare lock_resource: <key> and the orchestrator acquires it before start, releases on completion. Two sagas can’t race on the same entity.
Per-step timeout config with exponential-backoff retry up to N attempts, then compensate. The pattern that’s impossible to bolt on after the fact — generated upfront.
Orchestrator, step runner, compensator, outbox publisher, outbox consumer, and distributed lock are generated in your stack’s native language.
Where this generator answers a procurement question on day one.