alias BeamWeaver.Checkpoint.ETS, as: CheckpointETS alias BeamWeaver.Graph alias BeamWeaver.Graph.Compiled checkpointer = CheckpointETS.new() config = %{"configurable" => %{"thread_id" => "example-interrupt"}} graph = Graph.new() |> Graph.add_node(:review, fn _state -> decision = Graph.interrupt(%{question: "approve?"}) %{decision: decision} end) |> Graph.add_edge(Graph.start(), :review) |> Graph.add_edge(:review, Graph.end_node()) |> Graph.compile!(checkpointer: checkpointer) {:interrupted, interrupt} = Compiled.invoke(graph, %{}, config: config) IO.puts(interrupt.value.question) {:ok, %{decision: "approved"}} = Compiled.resume(graph, "approved", config: config) IO.puts("approved")