Skip to main content
Version: Next

Platform Architecture

This page is the portal-wide architecture landing page. Each framework's own detailed architecture chapter (diagrams, dependency graphs, ownership boundaries) lives inside that framework's own section — see, for example, Notification Framework → Architecture Overview.

Platform-wide conventions

Every Shumoul framework and the core ERP follow the same architectural rules:

  • Clean Architecture, 4 layers: Api → Infrastructure → Application → Domain, with a single dependency direction and no upward references.
  • Framework First: generic, reusable infrastructure lives in a standalone, versioned package/repository; the ERP host consumes it and owns only ERP-specific business rules and adapters. The Notification Framework is the reference example — see its Framework Packages chapter.
  • Multi-tenancy: tenant isolation is enforced via IMultiTenant + EF Core global query filters, resolved per-request from the JWT/subdomain.
  • Soft delete everywhere: business entities are never hard-deleted; Is_Deleted/DeletedOn/DeletedBy mark records instead.
  • Service-based CRUD, no CQRS: business logic lives in named {Entity}Service classes called directly from controllers.

Golden Reference modules

A framework reaches Golden Reference status once it is fully extracted into its own repository/package set, has zero circular dependencies on the ERP host, and passes the platform's compliance checklist. The Notification Framework and the Background Jobs Framework are the platform's current Golden Reference modules.