Recruitment Candidate Storage
Summary
Candidate is an aggregate root with an owned name and four cascade-owned child collections.
Audience
Developers, QA and support engineers, data reviewers, implementation partners, solution architects, and security reviewers.
Overview
Candidate name is an owned value stored with the candidate rather than as a separate persisted object. Status-like values are converted to strings. Candidate has a primary key and three explicit indexes: unique compatibility identity, tenant/stage, and tenant/email.
Application, stage-history, note, and document-reference children each use a Candidate foreign key with cascade delete. The model does not configure unique email or unique application constraints. Personal values and compensation fields are intentionally omitted.
Requires confirmation
Production migration governance, rollback ownership, reconciliation, retention, privacy, performance, query optimization, concurrency, and operational ownership require confirmation.
Source References
microservices/src/recruitment-service/Infrastructure/RecruitmentDbContext.csmicroservices/src/recruitment-service/Domain/Recruitment/Candidate.csmicroservices/src/recruitment-service/Domain/Common/ValueObjects.cs
Related Articles
See Also
Keywords
- Recruitment database
- Candidate Storage
Revision Information
- Status: Draft
- Last reviewed: 2026-07-16
- Review cycle: Quarterly