babylon.engine.observers.persistence_observer
Persistence observer for automatic state persistence after tick (Feature 037).
Implements SimulationObserver protocol. Called after each tick to persist
state to the configured RuntimePersistence backend. Uses isinstance()
check for PostgresRuntimeExtensions to persist subsystem state.
Usage:
from babylon.engine.observers.persistence_observer import PersistenceObserver
observer = PersistenceObserver(
persistence=postgres_runtime,
session_id=session_id,
tracer=trace_recorder,
)
simulation.attach_observer(observer)
Classes
|
Observer that persists simulation state after each tick. |
- class babylon.engine.observers.persistence_observer.PersistenceObserver(persistence, session_id, tracer=None)[source]
Bases:
objectObserver that persists simulation state after each tick.
Implements
SimulationObserverprotocol. No changes toSimulationfacade orSimulationEnginerequired.- Parameters:
persistence (RuntimePersistence)
session_id (UUID)
tracer (TraceCollector | None)
- _persistence
Backend implementing RuntimePersistence.
- _session_id
Session UUID for data scoping.
- _tracer
Optional trace collector.
- on_simulation_start(initial_state, config)[source]
Called when simulation begins. Persists initial state and config.
- Parameters:
initial_state (
WorldState) – The WorldState at tick 0.config (
SimulationConfig) – The SimulationConfig for this run.
- Return type:
- on_tick(previous_state, new_state)[source]
Called after each tick. Persists new state.
- Parameters:
previous_state (
WorldState) – WorldState before the tick (unused).new_state (
WorldState) – WorldState after the tick.
- Return type:
- on_simulation_end(final_state)[source]
Called when simulation ends. Finalizes metadata.
- Parameters:
final_state (
WorldState) – The final WorldState.- Return type: