Skip to main content

Attendance Performance Considerations

Summary

The source contains pragmatic asynchronous and query-shaping choices but defines no performance guarantees.

Audience

Backend developers, architects, DevOps engineers, and QA engineers.

Confirmed considerations

Database operations are asynchronous. Read services commonly use no-tracking queries. Effective-policy resolution has a multi-employee path that batches profile, assignment, and shift loading, and scoped resolver caching avoids repeatedly loading tenant-wide policy and weekly-off context within a multi-date request. Persistence indexes support employee/date, approval/date, effective assignment, and outbox status access conceptually. The outbox relay performs bounded background batches.

Multi-date saves process rows sequentially before one commit. Bulk punch behavior invokes per-row workflow semantics. Several attendance list and period queries are not paginated, and name-map/roster loading can grow with tenant size. Query ports expose full IQueryable composition. No application cache, distributed cache, compiled queries, explicit concurrency token, rate limit, load-shedding, or benchmark suite is present.

Potential hotspots are large tenant rosters, wide date ranges, sequential bulk operations, repeated policy resolution across independent requests, and growing pending outbox queues. These are test areas, not measured bottlenecks. No latency, throughput, capacity, or consistency service-level guarantee is documented.

Source References

  • microservices/src/attendance-service/Application/Services/AttendanceQueries.cs
  • microservices/src/attendance-service/Application/Services/AttendancePolicyResolver.cs
  • microservices/src/attendance-service/Infrastructure/Persistence.cs
  • microservices/src/attendance-service/Infrastructure/OutboxRelayHostedService.cs
  • microservices/src/attendance-service/Application/Services/AttendanceCommands.cs

See Also

Keywords

  • Attendance Service
  • Attendance Performance Considerations

Revision Information

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