Uyumluluk: Pactmark 0.2.x.
Durumlar
Şekil 1. Mutlu yol düz bir çizgidir. İlginç olan her şey, koşu model olmayan bir şeyi beklemek zorunda kaldığında olur.Geçiş tablosunun tamamı
Geçersiz bir geçiş
KAF_RUNTIME_INVALID_TRANSITION üretir. Koşu sonlandıktan sonra denenen bir geçiş
KAF_RUNTIME_TERMINAL üretir. İkisi de yeniden denenebilir değildir.
verifying durumunun waiting_for_approval’a geri dönebildiğine dikkat edin. Doğrulama sonda
atılan bir mühür değildir — başarısız bir doğrulayıcı koşuyu insan kararına geri gönderebilir.Olaylar
Doğrulanmış komutlar sürümlenmişRunEvent kayıtları ekler. Her birinin kararlı bir eventType’ı,
bir sıra numarası ve katı bir yükü vardır.
Yaşam döngüsü ve planlama
Yaşam döngüsü ve planlama
RunAccepted · PlanningStarted · ExecutionStarted · RunSuspended · RunCompleted ·
RunFailed · RunCancelledModel sınırı
Model sınırı
ModelCallStarted · ModelCallCompleted — rezervasyon kimlikleri ve istek/yanıt özetleri taşır;
asla prompt veya tamamlama içeriği taşımaz.Araçlar
Araçlar
ToolCallRequested · ToolCallCompleted — araç kayıt özetini, argüman ve sonuç özetlerini taşır.Yeniden denemeler
Yeniden denemeler
RetryScheduled · RetryResumed — timed_out, retryable veya uncertain sınıflandırmasıyla
ve bir notBefore zaman damgasıyla.İnsan etkileşimi
İnsan etkileşimi
InputRequested · InputSubmitted · ApprovalRequested · ApprovalRecorded ·
ApprovalRejected — karar kimlikleri ve özetler taşır, ham kanıt taşımaz.Etkiler
Etkiler
EffectPrepared · EffectDispatched · EffectAcknowledged · EffectUncertain ·
EffectNeedsReconciliation · EffectReconciliationRecorded · EffectAbandoned ·
CompensationRequested · EffectCompensatedÇıktı ve doğrulama
Çıktı ve doğrulama
ArtifactProduced · VerificationStarted · VerificationRecorded ·
VerificationExceptionRecordedEffectNeedsReconciliationveEffectAbandoned,effectMayHaveOccurred: truedeğerini literal olarak taşır. Şema, bu durumları etkinin kesinlikle olmadığını ima ederek kaydetmenize izin vermez.RunFailed.errorCode,/^KAF_[A-Z0-9_]+$/ile kısıtlıdır. Başarısızlık nedenleri yapısı gereği makine tarafından okunabilirdir.
Projeksiyonlar
Şekil 2.RunProjection; status, lastSequence, currentStepId, resumeTarget, bekleyen
kimlikler, artifact ve doğrulama kimlikleri ile terminalErrorCode taşır. Hepsi türetilmiştir.
Projeksiyon türetilmiş olduğu için bir olay sırasında silip yeniden kurabilir ve karşılaştırabilirsiniz
— bir uyuşmazlık, koşuda değil katlama işleminizde bir sorun olduğunu söyler.
Kalıcılık ve güvenli devam
Şekil 3. Fencing token’lı veritabanı-zamanlı kiralar. Ölümden dönen bir worker daha yeni bir sahibin üzerine commit edemez, çünkü token’ı tanımı gereği bayattır. Kalıcı Postgres komutları; idempotency kayıtlarını, yetkiyi, olay mutasyonunu ve uyandırma durumunu tek bir atomik birimde bağlar. Korumalı bağlam tenant kapsamlı ve amaca bağlıdır; böylece devam etme, başka bir tenant’ın verisine arka kapı hâline gelmez.En-az-bir-kez ve bu konuda dürüst
Pactmark, denetimli etkilerle en-az-bir-kez yürütme kullanır. Küresel tam-bir-kez teslim iddia etmez. Belirsiz bir etki, kayıtlı stratejisi —native, transactional, reconcilable
veya none — eylem izni verene ya da ayrıca yetkilendirilmiş bir telafi koşusu başlatılana kadar park
edilmiş kalır.
Araçlar ve etkiler
Her etki stratejisinin gerçekte ne iddia ettiği ve neyi iddia etmeyi reddettiği.
Güvenilirlik ve kurtarma
Kiralar, RPO/RTO, park edilmiş işlerin izlenmesi ve yerel çökme testlerinin kanıtlamadıkları.