De sessie is de verkeerde grens

Chattoepassingen behandelen meestal de levensduur van de interactie als de levensduur van de taak. Wanneer het tabblad sluit, stopt de actieve redenering. Wanneer de context wordt ingekort, verdwijnen eerdere beslissingen.

LibreTask scheidt de taak van de interface. Een taakdraad heeft een duurzame levenscyclus. De workflow kan pauzeren terwijl een persoon weg is, dan hervatten wanneer een beslissing komt.

Record gebeurtenissen, dan afleiden status

Het systeem registreert zinvolle acties als bestelde gebeurtenissen: een contract werd herzien, een plan werd gegenereerd, een mogelijkheid werd aangeroepen, een evaluatie mislukte, een menselijke beslissing kwam, of een oplevering werd geproduceerd.

De huidige toestand wordt vanuit die volgorde gereconstrueerd. Dit is nuttig voor het herstel, maar het beantwoordt ook een belangrijkere productvraag: waarom nam het systeem deze weg?

Een nieuwe poging is een beslissing

Blinde herhalingen kunnen een externe bijwerking dupliceren of een budget consumeren zonder het resultaat te verbeteren. Een bestuurd systeem moet weten welke capaciteit is mislukt, of de storing tijdelijk is, welk retrybeleid van toepassing is en of er een alternatief beschikbaar is.

Idempotency keys, capacity-specifieke timeouts en gestructureerde fouttypes maken herstel van een generieke lus tot een verklarende correctie.

Wachten is onderdeel van executie

Menselijke beoordeling kan minuten of dagen duren. Een duurzame workflow moet stoppen met het vasthouden van een levende werknemer en blijven wachten staat. Als het signaal aankomt, gaat de executie verder vanaf dat punt.

Dit is het praktische verschil tussen een systeem dat 's nachts kan draaien en een systeem dat alleen maar zegt dat het dat zal doen.