Skip to content

Instantly share code, notes, and snippets.

@abtris
Last active March 4, 2023 11:03
Show Gist options
  • Save abtris/e307a14059c83c4f486da702099034c4 to your computer and use it in GitHub Desktop.
Save abtris/e307a14059c83c4f486da702099034c4 to your computer and use it in GitHub Desktop.
DIagrams for durable task post
flowchart TD
    A[Amazon SWF]
    A-->B[Azure/durable task]
    A-->C[infinitic]
    B-->D[Azure Durable Functions]
    B-->E[Cadence]
    A-->E
    E-->F[Temporal.io]
    click A href "https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-welcome.html" "Amazon SWF"
    click C href "https://docs.infinitic.io/" "infinitic"
    click D href "https://learn.microsoft.com/en-us/azure/azure-functions/durable/durable-functions-overview?tabs=csharp-inproc" "Azure Durable Function"
    click E href "https://cadenceworkflow.io/" "Cadence"
    click F href "https://temporal.io/" "Temporal.io"
Loading
%% https://mermaid.js.org/syntax/sequenceDiagram.html
sequenceDiagram    
    rect rgb(220, 220, 220)
    note right of Client: ACID
        actor Client;    
        participant Engine;
        participant WorkflowState;
        participant Timers;
        participant TaskQueues;
        participant WorkflowDefinition;    
        Client->>Engine: start
        activate Engine
        Engine->>WorkflowState: create
        WorkflowState-->>Engine: ack
        Engine-->>Timers: add workflow timeout
        Timers-->>Engine: ack
        Engine-->>TaskQueues: add workflow task
        TaskQueues-->>Engine: ack
        TaskQueues-->>WorkflowDefinition: send
        deactivate Engine
    end
    rect rgb(220, 220, 220)
    note right of Engine: ACID
        participant Engine;
        participant WorkflowState;
        participant Timers;
        participant TaskQueues;
        participant WorkflowDefinition;
            
        activate Engine
        WorkflowDefinition->>Engine: execute Task 1
        Engine->>WorkflowState: update
        WorkflowState-->>Engine: ack
        Engine->>TaskQueues: add Task 1
        TaskQueues-->>Engine: ack
        Engine->>Timers: add Task 1 timeout
        Timers-->>Engine: ack
        Engine-->>WorkflowDefinition: send
        deactivate Engine
    end
    
 
Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment