Skip to main content

Review Cycle Storage

Summary

Persistence mapping for the ReviewCycle aggregate and its logical appraisal association.

Audience

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

Overview

ReviewCycle is a tenant-scoped aggregate root with generated identity, name and period metadata, status, optional notes, lifecycle timestamps, and an owned CyclePeriod.

Confirmed persistence behavior

  • CyclePeriod is required and table-sharing through an owned mapping.
  • A composite tenant-and-status index supports scoped lifecycle queries.
  • A global tenant query filter is configured.
  • No uniqueness constraint exists for cycle name or period.
  • Appraisal stores a cycle identity and denormalized cycle name, but no EF foreign key connects Appraisal to ReviewCycle.
  • Audit and timeline associate through logical entity type and textual identity rather than foreign keys.
  • No persisted rating-scale reference or Workflow link exists on ReviewCycle.

Classification

Implemented aggregate storage; lifecycle phase and uniqueness policy remain incomplete.

Requires confirmation

Cycle uniqueness, retention, close cascade, phase transitions, and logical-reference enforcement require confirmation.

Diagram

See Also

Keywords

  • Performance persistence
  • Review Cycle Storage
  • Draft database documentation

Source References

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

Revision Information

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