Shumoul Background Jobs Framework — Developer Guide
The Shumoul Background Jobs Framework gives every part of the platform a reliable way to schedule and run background work — recurring jobs, tenant-aware execution, distributed locking, and consistent failure handling — without each feature having to solve those problems on its own.
Who it's for: Backend Developers · Platform Engineers · QA Engineers · Technical Partners · Future Internal Developers extending or consuming the framework from a new host.
| Field | Value |
|---|---|
| Status | Production Ready |
| Version | Latest |
| Last Updated | 2026-07-04 |
| Maintained By | Shumoul Engineering |
| Documentation | Official Developer Guide |
| Source of Truth | Shumoul Platform Source Code |
This guide is written directly against the platform's shipped source and kept in sync with it — see Chapter 1 — Overview for how it fits alongside the Notification Framework, and Chapter 20 — Appendix § Verification Notes for a small number of documented, non-blocking discrepancies found while writing it.
Relationship to the Notification Framework
The Background Jobs Framework and the Notification Framework are architectural siblings, not layers of one another: no package-level dependency exists in either direction. Where they meet is at the ERP host — every recurring job that used to belong to the Notification Framework's own Hangfire registrations (retry processor, retry expire, dead-letter cleanup, campaign scheduler, campaign workflow executor, campaign cleanup) now triggers through a Background Jobs Framework pipeline, which calls into an ERP-owned adapter, which calls the same, unchanged Notification Framework business service it always called. See Chapter 14 — Job Migration Guide.
Table of Contents
| # | Section | File |
|---|---|---|
| 1 | Overview | 01-overview.md |
| 2 | Architecture | 02-architecture.md |
| 3 | Packages | 03-packages.md |
| 4 | Runtime Pipeline | 04-runtime-pipeline.md |
| 5 | Execution Flow | 05-execution-flow.md |
| 6 | Runtime Services | 06-runtime-services.md |
| 7 | Adapters | 07-adapters.md |
| 8 | Tenant Context | 08-tenant-context.md |
| 9 | Distributed Lock | 09-distributed-lock.md |
| 10 | Scheduler | 10-scheduler.md |
| 11 | Execution Context | 11-execution-context.md |
| 12 | Public API | 12-public-api.md |
| 13 | Host Integration | 13-host-integration.md |
| 14 | Job Migration Guide | 14-job-migration-guide.md |
| 15 | Architecture Decisions | 15-architecture-decisions.md |
| 16 | Testing | 16-testing.md |
| 17 | Performance | 17-performance.md |
| 18 | Troubleshooting | 18-troubleshooting.md |
| 19 | FAQ | 19-faq.md |
| 20 | Appendix | 20-appendix.md |
