ASP.NET Core implementation of async request-reply pattern for long-running jobs with background processing.
- Client submits job → API returns
202 Accepted+ job ID - Background worker processes asynchronously
- Client polls status endpoint for progress
- Client retrieves result when complete
See AGENTS.md for architecture diagrams and detailed flow.
dotnet run --project src/LongRunningApiNavigate to https://localhost:5001 for Swagger UI.
POST /api/jobs # Submit job → 202 Accepted
GET /api/jobs/{id} # Get status → 200 OK
GET /api/jobs/{id}/result # Get result → 200 OK / 425 Too Early
DELETE /api/jobs/{id} # Delete job → 204 No Content
GET /health # Health check
Usage: See the samples in LongRunningApi.http
Queued → Processing → Completed / Failed
- DataProcessing: Simulates record processing with progress updates
- ReportGeneration: Multi-step report generation
- BatchImport: Simulates importing with success/failure tracking
- Generic: Default 5-step operation
Parameters: recordCount (default: 100), processingTimeMs (default: 50)
This demo uses in-memory storage (non-persistent). For production: