Skip to main content
Push delivery persists pending, un-acknowledged events to disk so a gateway restart never silently drops a message.

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.
The same settings load from 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.
Keep the default backend so a mid-notification restart replays on reconnect.

Best Practices

SQLite is durable, zero-dependency, and appropriate for the vast majority of deployments.
For a single gateway, SQLite is faster and simpler. Reach for redis when fanning out across replicas.
Any restart loses in-flight events silently, so reserve memory for throwaway runs.
Include ~/.praisonai/state/ in your agent-state backups. The file is small — rows evict on ACK and TTL — but it holds the durability guarantee.

Gateway Overview

Configure and run the gateway that hosts push delivery.

Durable Delivery

Distinguish outbound platform delivery from gateway push delivery.