MongoDB Setup
Minimal example to enable MongoDB persistence for Elsa Workflows, including connection configuration and index creation guidance.
Prerequisites
NuGet Packages
dotnet add package Elsa
dotnet add package Elsa.MongoDb
dotnet add package MongoDB.DriverMinimal Configuration
Program.cs
using Elsa.Extensions;
var builder = WebApplication.CreateBuilder(args);
// Get connection string from configuration
var mongoConnectionString = builder.Configuration.GetConnectionString("MongoDb")
?? throw new InvalidOperationException("Connection string 'MongoDb' not found.");
builder.Services.AddElsa(elsa =>
{
// Configure workflow management (definitions, instances)
elsa.UseWorkflowManagement(management =>
{
management.UseMongoDb(mongo =>
{
mongo.ConnectionString = mongoConnectionString;
// Optional: Specify database name (defaults to 'elsa')
// mongo.DatabaseName = "elsa_workflows";
});
});
// Configure workflow runtime (bookmarks, inbox, execution logs)
elsa.UseWorkflowRuntime(runtime =>
{
runtime.UseMongoDb(mongo =>
{
mongo.ConnectionString = mongoConnectionString;
});
});
// Enable HTTP activities (optional)
elsa.UseHttp();
// Enable scheduling activities (optional)
elsa.UseScheduling();
// Enable API endpoints
elsa.UseWorkflowsApi();
});
var app = builder.Build();
// Map Elsa API endpoints
app.UseWorkflows();
app.Run();appsettings.json
Index Creation
Using MongoDB Shell
Save as Script
Advanced Configuration
Custom Database and Collection Names
Connection Pool Settings
Read Preference for Replicas
Mapping Considerations
Custom Activity Data
BSON Serialization Settings
TTL Collections
Troubleshooting
Connection Issues
Performance Issues
Logging
Related Documentation
Last updated