Providers¶
Providers are pluggable backends wired through Config. They let the same workflow code use different storage, notifications, logging, and scheduling without changing task logic.
Families¶
| Provider | Purpose |
|---|---|
| Storage | Persists task context and checkpoints (memory, file, S3, GCS, …). |
| Notify | Sends alerts or summaries (default no-op, Telegram, …). |
| Log | Structured logging for runs. |
| Scheduler | Drives recurring execution (default, cron with dotflow[scheduler]). |
You pass instances into Config, for example Config(storage=StorageFile(path=".output"), scheduler=SchedulerCron(...)). Built-in providers use core dependencies; cloud and cron integrations often need pip extras—see Use integrations and the Overview hub.
Why it matters¶
- Durability: storage + checkpoints enable resume after failure.
- Observability: log and notify providers surface failures and retries.
- Operations: swap file storage in development for S3 or GCS in production with one config change.