Skip to main content

Appraisal Storage

Summary

Persistence mapping and child ownership for the Appraisal aggregate.

Audience

Backend engineers, database reviewers, architects, QA, support, operations, security reviewers, and product owners.

Overview

Appraisal is a tenant-scoped aggregate root with generated identity, a globally unique compatibility identity, logical cycle and subject references, lifecycle status and timestamps, reviewer references, an optional Workflow reference, and required owned overall evaluation storage.

Confirmed persistence behavior

  • Appraisal owns Goal and Review children through configured one-to-many relationships.
  • Both child relationships use required parent keys and cascade deletion.
  • Cycle, subject, manager, HR, and approver references are logical identifiers, not configured foreign keys.
  • Tenant/status, tenant/cycle, compatibility identity, and Workflow reference indexes are present.
  • The compatibility identity is unique globally rather than tenant-prefixed.
  • No concurrency marker or employee-cycle uniqueness constraint is configured.
  • Audit and timeline links are logical rather than relational.

Classification

Implemented aggregate storage with Transitional compatibility identity and missing concurrency enforcement.

Requires confirmation

Global compatibility uniqueness, employee-cycle uniqueness, retention, concurrency, and reference validation require confirmation.

Diagram

See Also

Keywords

  • Performance persistence
  • Appraisal Storage
  • Draft database documentation

Source References

  • microservices/src/performance-service/Infrastructure/PerformanceDbContext.cs
  • microservices/src/performance-service/Domain/Appraisal/Appraisal.cs
  • microservices/src/performance-service/Infrastructure/Migrations/PerformanceDbContextModelSnapshot.cs

Revision Information

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