Messaging infrastructureData and operations
Storage and migrations
Use in-memory storage for bounded development or PostgreSQL for durable routing, chats, workers, subscriptions, and events.
Storage and migrations — contract and behavior
- Both storage implementations satisfy the same ABC so routers and backends do not branch on database type.
- The migration runner applies sorted SQL files and records each applied filename.
- Production compositions use durable PostgreSQL for worker affinity and webhook state.
- Switching storage implementations requires an explicit data plan; in-memory state is not a migration source.