Quick Start
1
Default (durable, zero config)
Enable push and delivery is durable out of the box — no flags, no external services.Pending events are written to
~/.praisonai/state/push_delivery.sqlite and replayed on restart.2
Explicit ephemeral (opt-out for tests)
Switch to
memory when durability is unwanted, such as throwaway test runs.3
Redis for horizontal scaling
Point delivery at Redis to fan out across multiple gateway processes.
gateway.yaml:
How It Works
The store persists each pending event, replays it after a restart, and evicts the row once the client acknowledges.Choosing a Backend
Pick the backend that matches your durability and scaling needs.Configuration Options
DeliveryConfig controls the at-least-once guarantee.
An invalid
store_backend raises ValueError at construction time — the closed set is validated in __post_init__.
Where State Lives
Common Patterns
Three setups cover most deployments.- Survives a redeploy
- Horizontal scale-out
- Throwaway CI
Keep the default backend so a mid-notification restart replays on reconnect.
Best Practices
Keep the default
Keep the default
SQLite is durable, zero-dependency, and appropriate for the vast majority of deployments.
Choose redis only for multi-process gateways
Choose redis only for multi-process gateways
For a single gateway, SQLite is faster and simpler. Reach for
redis when fanning out across replicas.Use memory only for tests
Use memory only for tests
Any restart loses in-flight events silently, so reserve
memory for throwaway runs.Back up the state directory
Back up the state directory
Include
~/.praisonai/state/ in your agent-state backups. The file is small — rows evict on ACK and TTL — but it holds the durability guarantee.Related
Gateway Overview
Configure and run the gateway that hosts push delivery.
Durable Delivery
Distinguish outbound platform delivery from gateway push delivery.

