Cyclium. DynamicActor. Watcher
(Cyclium v0.1.5)
Copy Markdown
Optional GenServer that subscribes to Bus events and automatically refreshes dynamic actors and dynamic workflows when their DB definitions change.
Events handled
Agent definitions
"agent_definition.created"— loads and starts a new dynamic actor"agent_definition.updated"— drains, then reloads the actor from DB"agent_definition.disabled"— drains and stops the actor
Workflow definitions
"workflow_definition.created"— loads and registers a new dynamic workflow"workflow_definition.updated"— reloads the workflow from DB"workflow_definition.disabled"— unregisters the workflow
Usage
Add to your supervision tree if you want automatic refresh:
children = [
# ... other children ...
Cyclium.DynamicActor.Watcher
]Then broadcast events from your application when definitions change:
Cyclium.Bus.broadcast("agent_definition.created", %{actor_id: "my_monitor"})
Cyclium.Bus.broadcast("workflow_definition.created", %{workflow_id: "onboarding"})If you don't want automatic refresh, call lifecycle/loader functions directly.
Summary
Functions
Returns a specification to start this module under a supervisor.
Functions
Returns a specification to start this module under a supervisor.
See Supervisor.