Storage Configuration

EverTask supports multiple storage providers for task persistence. This guide covers all available options and how to implement custom storage.

Overview

Storage providers persist tasks and their state, enabling task recovery after application restarts, task history tracking, audit trails, and scheduled/recurring task management.

Storage Topics

Storage Overview

Learn about the available storage providers, their characteristics, and how to choose the right one for your use case.

Audit Configuration

Configure audit trail levels to control database bloat from high-frequency tasks. Learn about Full, Minimal, ErrorsOnly, and None audit levels.

In-Memory Storage

Fast, zero-setup storage perfect for development and testing. Tasks are lost on application restart.

SQL Server Storage

Enterprise-grade storage for production environments with DbContext pooling, stored procedures, and schema management.

SQLite Storage

Lightweight, file-based storage ideal for small-scale production and single-server deployments.

Custom Storage

Learn how to implement custom storage providers for Redis, MongoDB, PostgreSQL, or any other database.

Serialization

Best practices for designing serializable tasks and handling serialization with Newtonsoft.Json.

Best Practices

Storage selection guidelines, connection string management, migration strategies, backup/recovery, and cleanup tasks.

Quick Start

Development Setup

builder.Services.AddEverTask(opt =>
{
    opt.RegisterTasksFromAssembly(typeof(Program).Assembly);
})
.AddMemoryStorage();

Production Setup (SQL Server)

builder.Services.AddEverTask(opt =>
{
    opt.RegisterTasksFromAssembly(typeof(Program).Assembly);
})
.AddSqlServerStorage(
    builder.Configuration.GetConnectionString("EverTaskDb")!,
    opt =>
    {
        opt.SchemaName = "EverTask";
        opt.AutoApplyMigrations = true;
    });

Production Setup (SQLite)

builder.Services.AddEverTask(opt =>
{
    opt.RegisterTasksFromAssembly(typeof(Program).Assembly);
})
.AddSqliteStorage("Data Source=evertask.db");

Next Steps


Table of contents


Copyright © 2025 Giampaolo Gabba. Distributed under the APACHE 2.0 License.