Payroll Database Ownership and Boundaries
Summary
Ownership boundaries between Payroll persistence, projections, legacy sources, and external systems.
Audience
Payroll developers, QA and support engineers, solution and security architects, and implementation partners.
Purpose
Define what Payroll persists and where confirmed responsibility stops.
Ownership
PayrollDbContext owns payroll periods, runs, details, calculations, payslips, adjustments, advances, overtime, salary components, statutory settings, audit/timeline evidence, workforce and input projections, processed-event markers, and outbox messages.
Lifecycle
Native commands write Payroll records. Inbound events and backfill populate local projections. Compatibility operations write the same Payroll context while preserving legacy-facing identifiers and contracts.
Persisted fields
Storage is grouped into lifecycle identifiers and status, period coordinates, employee references, outcome summaries, effective dates, audit metadata, event metadata, and structured calculation/payslip details.
Relationships
Logical identifiers connect records, but the EF model does not declare foreign keys. Source systems remain authoritative for upstream workforce, attendance, leave, and expense facts; Payroll owns only its local projections and computed outputs.
Constraints
Ownership is enforced primarily through service code, tenant predicates, global filters, and selected unique indexes—not database relationships.
Indexes
Indexes are defined around tenant/period, tenant/employee, run/employee, event identity, status/time, and evidence chronology query patterns.
Tenant behavior
Tenant-owned records normally use the context filter. Filter-bypassing code paths add explicit tenant predicates; their completeness requires ongoing source review.
Audit behavior
Selected commands, reports, projections, and backfill actions write audit evidence. Timeline entries are used for employee/run chronology, not as a universal change journal.
Integration usage
The monolith reader is read-only during backfill. Payroll projections are local copies, and external services are not part of the Payroll database transaction.
Known limitations
System-of-record ownership is Transitional during compatibility and backfill. Physical database ownership and deployment topology are intentionally excluded.
Requires confirmation
- Final retirement point for monolith-compatible persistence paths.
- Formal data stewardship and retention ownership per object family.
- Whether database permissions independently enforce the service boundary.
Source References
microservices/src/payroll-service/Infrastructure/PayrollDbContext.csmicroservices/src/payroll-service/Domain/PayrollEntities.csmicroservices/src/payroll-service/Infrastructure/Migrations/PayrollDbContextModelSnapshot.csmicroservices/src/payroll-service/Backfill/MonolithSourceReader.csmicroservices/src/payroll-service/Backfill/PayrollBackfillRunner.cs
Related Articles
See Also
Keywords
- Payroll database
- Payroll Database Ownership and Boundaries
- Payroll persistence
Revision Information
- Status: Draft
- Last reviewed: 2026-07-15
- Review cycle: Quarterly