Skip to main content

Expense Input Boundary

Summary

Payroll maintains an Expense claim projection and includes only records currently marked approved for the Payroll period.

Audience

Backend and frontend developers, QA and DevOps engineers, support and security engineers, and solution architects.

Overview

Payroll maintains an Expense claim projection and includes only records currently marked approved for the Payroll period.

Technical Detail

Projection behavior

Approval, rejection, and paid events upsert one claim-owned projection and change its status. Calculation groups approved records by employee and period and includes the total as a reimbursement earning.

Idempotency and staleness

Claim identity is unique within a tenant. Exact duplicate events are ignored and strictly older events are rejected. A later rejected or paid state removes the record from future approved-input queries without deleting history.

Correction gaps

Amount/category corrections depend on subsequent source events. There is no Payroll-owned reimbursement reversal transaction or snapshot of which Expense claims contributed to a frozen run. Recalculation and post-freeze correction governance Requires confirmation.

Source References

  • microservices/src/payroll-service/Domain/PayrollEntities.cs
  • microservices/src/payroll-service/Messaging/PayrollReadModelConsumer.cs
  • microservices/src/payroll-service/Application/PayrollCalculationService.cs

See Also

Keywords

  • Payroll Service
  • Expense Input Boundary
  • Technical architecture

Revision Information

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