Skip to main content

Payroll Workforce Storage

Summary​

Local workforce projection used by Payroll calculation and output paths.

Audience​

Payroll developers, QA and support engineers, solution and security architects, and implementation partners.

Reference Content​

The sections below describe the confirmed logical storage contract and its implementation boundaries.

Purpose​

Describe EmployeePayrollProfile as a Payroll-owned projection of upstream workforce and compensation inputs.

Ownership​

Payroll owns the projection record; upstream employee sources remain authoritative for workforce facts.

Lifecycle​

Inbound employee events upsert the projection with last-event markers. Backfill and development seeding can also populate it. Calculation reads eligible profiles; it does not query the upstream employee store in the same EF transaction.

Persisted fields​

High-level groups include tenant and employee identifiers, employment/organization descriptors, contact attributes, employment status, compensation and work-schedule inputs, payment-routing attributes, activity state, last-event markers, and update time. Sensitive values are deliberately not enumerated.

Relationships​

Employee identifiers logically align profiles with run details, projections, adjustments, advances, overtime, components, payslips, and timeline records. No foreign keys enforce those links.

Constraints​

Legacy employee identity is unique within a tenant. The newer employee identifier is indexed but not unique.

Indexes​

A unique tenant/legacy-employee index and a non-unique tenant/employee index support compatibility and extracted-service lookup.

Tenant behavior​

The projection has a global tenant filter. Consumer/backfill operations can bypass it while applying explicit tenant predicates.

Audit behavior​

Inbound synchronization writes Payroll audit evidence; backfill completion is separately audited.

Integration usage​

The event consumer uses duplicate and stale-event guards. The backfill source is read-only and target writes are batched.

Known limitations​

Two employee identifier forms coexist. Projection freshness depends on event delivery or controlled backfill.

Requires confirmation​

  • Final identifier migration and compatibility retirement.
  • Data minimization, masking, retention, and access rules for sensitive profile attributes.

Source References​

  • microservices/src/payroll-service/Infrastructure/PayrollDbContext.cs
  • microservices/src/payroll-service/Domain/PayrollEntities.cs
  • microservices/src/payroll-service/Infrastructure/Migrations/PayrollDbContextModelSnapshot.cs
  • microservices/src/payroll-service/Messaging/PayrollReadModelConsumer.cs
  • microservices/src/payroll-service/Backfill/EmployeeProfileBackfill.cs

See Also​

Keywords​

  • Payroll database
  • Payroll Workforce Storage
  • Payroll persistence

Revision Information​

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