Skip to main content

Recruitment Aggregate Boundaries

Summary

There is no single Recruitment aggregate. Job requisition, job opening, candidate, interview, offer, and onboarding are independent aggregate roots.

Audience

Backend and frontend engineers, architects, QA, support, security reviewers, and operators responsible for Recruitment.

Overview

Each root owns only its child collections and local invariants. Cross-root workflows are application concerns:

  • Requisition approval creates a separate JobOpening.
  • Interview feedback updates both Interview and Candidate.
  • Offer creation and response update both Offer and Candidate.
  • Onboarding completion coordinates Onboarding, Candidate, and Employee Service.

These multi-aggregate changes share the Recruitment EF unit of work when all affected state is local. External HTTP effects are not part of a distributed transaction. Saga orchestration, compensation, and formal cross-service recovery are Not implemented.

Requires confirmation

Production ownership, authorization policy, operational thresholds, and future design decisions require confirmation.

Source References

  • microservices/src/recruitment-service/Domain/Common/DomainPrimitives.cs
  • microservices/src/recruitment-service/Domain/Recruitment
  • microservices/src/recruitment-service/Infrastructure/RecruitmentDbContext.cs

See Also

Keywords

  • Recruitment technical architecture
  • Recruitment Service
  • Aggregate Boundaries

Revision Information

  • Status: Draft
  • Last reviewed: 2026-07-16
  • Review cycle: Quarterly