Skip to main content

Leave Database Compatibility and Transition

Summary​

The monolith and extracted Leave Service maintain separate persistence models; compatibility routes do not prove synchronized data ownership.

Audience​

Architects, backend developers, QA, DevOps, support, and cutover owners.

Concept​

AreaLegacy modelExtracted modelTransition implicationSource
RequestsNumeric identity, employee link, integer days, nullable tenantNumeric identity, employee reference, decimal days, workflow/audit/timelineIdentifier and precision parity require reconciliationModels/LeaveRequest.cs; microservices/src/leave-service/Domain/Leave/LeaveRequest.cs
BalancesOpening/accrued/used/adjustedAdds carried-forward and encashed valuesNet-new columns have no legacy parityModels/LeaveBalance.cs; microservices/src/leave-service/Domain/Leave/LeaveBalance.cs
CalendarLegacy Holiday/WeeklyOff objectsLeave-owned equivalents; Attendance weekly-off overlapCalendar ownership and paid metadata need parity testsModels/Holiday.cs; Models/WeeklyOff.cs
Types/policiesLegacy configuration differsFirst-class Leave objectsMapping/backfill is not confirmedmicroservices/src/leave-service/Domain/Leave/LeaveConfig.cs

No source-confirmed synchronization pipeline, backfill runner, reconciliation report, dual-write transaction, or database-level replication was found. Cutover can therefore change which independent store a request observes. Rollback requires explicit ownership and reconciliation decisions; gateway rollback alone does not reconcile divergent data. Direct production database procedures are intentionally excluded.

Source References​

  • microservices/src/leave-service/Infrastructure/LeaveDbContext.cs
  • Data/AppDbContext.cs
  • Models/LeaveRequest.cs
  • Models/LeaveBalance.cs
  • Models/Holiday.cs
  • Models/WeeklyOff.cs
  • microservices/src/gateway-api/Program.cs

See Also​

Keywords​

  • Monolith coexistence
  • Reconciliation
  • Cutover boundary

Revision Information​

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