Packages
journey
0.0.9
0.10.58
0.10.57
0.10.56
0.10.55
0.10.54
0.10.53
0.10.52
0.10.51
0.10.50
0.10.49
0.10.48
0.10.47
0.10.46
0.10.45
0.10.44
0.10.43
0.10.41
0.10.40
0.10.39
0.10.38
0.10.37
0.10.36
0.10.35
0.10.34
0.10.33
0.10.32
0.10.31
0.10.30
0.10.29
0.10.28
0.10.27
0.10.26
0.10.25
0.10.24
0.10.23
0.10.22
0.0.9
retired
0.0.8
0.0.7
0.0.6
0.0.5
0.0.3
0.0.2
Journey is a library for defining and running durable workflows with persistence, reliability, and scalability.
Retired package: not currently supported
Current section
Files
Jump to
Current section
Files
lib/process_catalog.ex
defmodule Journey.ProcessCatalog do
use Agent
@moduledoc false
@spec start_link(any) :: {:error, any} | {:ok, pid}
@doc """
Starts a new process store.
"""
def start_link(_opts) do
Agent.start_link(fn -> %{} end, name: __MODULE__)
end
@spec get(String.t()) :: Journey.Process.t() | nil
@doc """
Gets a process by process id.
"""
def get(process_id) do
Agent.get(__MODULE__, fn state ->
Map.get(state, process_id)
end)
end
@spec register(%Journey.Process{}) :: Journey.Process.t()
@doc """
Stores a process.
"""
def register(process) do
:ok =
Agent.update(__MODULE__, fn storage ->
# execution = %{execution | save_version: execution.save_version + 1}
Map.put(storage, process.process_id, process)
end)
get(process.process_id)
end
end