Skip to content

Backend overview

Audience: backend
Status: specced
Owns: backend
Depends on: Domain overview, Domain entities, API overview

Describe architecture with domain names, not invented DTOs. Application code is not started; this page captures the intended shape from discovery and product docs.

Concern Owner context
Application lifecycle, competency, evidence, interview, certification path CAP RPL
JWT issuance, shared auth, identity verification providers, notifications Orchestrator
Course catalogue / recommendations fulfilment LMS (CAP calls over gRPC)

CAP consumes Orchestrator JWT; it does not redefine User login flows in isolation long-term.

The Application aggregate is the process spine:

Transitions (e.g. DRAFTCENTRE_REVIEW) must enforce identity verified, concurrent-application rules, and payment-before-facilitator.

Adapter Purpose Notes
Orchestrator auth Validate JWT; optionally delegate register/login Shared across apps
Identity provider NIN (or successor) verify Provider open — POL-04; prefer Orchestrator-hosted service
Payment Candidate → centre payout rails Centre payout details from centre onboarding
LMS gRPC Course recommendations On GAP_TRAINING / gap outcomes
Notifications Email / in-app / WhatsApp Via Orchestrator when available
Product module Domain focus
Auth User credentials / session via Orchestrator
Identity Identity on User; gate on Application submit
Trades Trade, Unit (NOS)
Payment Payment before EVIDENCE facilitation
Recommendations Recommendation + LMS integration

HTTP shapes for web/clients: API overview (OpenAPI when available). Do not treat UX screen lists as the API.