View Source SpawnSdk.Actor behaviour (spawn_sdk v0.5.0-rc.12)
Documentation for Actor
.
Actor look like this:
defmodule MyActor do
use SpawnSdk.Actor,
name: "joe",
persistent: false,
state_type: Io.Eigr.Spawn.Example.MyState,
deactivate_timeout: 5_000,
snapshot_timeout: 2_000
require Logger
alias Io.Eigr.Spawn.Example.{MyState, MyBusinessMessage}
defact sum(%MyBusinessMessage{value: value} = data}, %Context{state: state} = ctx) do
Logger.info("Received Request...")
new_value = (state.value || 0) + value
%Value{}
|> Value.of(%MyBusinessMessage{value: new_value}, %MyState{value: new_value})
|> Value.reply!()
end
Link to this section Summary
Link to this section Types
@type command() :: String.t()
@type context() :: SpawnSdk.Context.t()
@type data() :: module()
@type error() :: any()
@type value() :: SpawnSdk.Value.t()