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.csmicroservices/src/attendance-service/Application/Services/AttendancePolicyResolver.csmicroservices/src/attendance-service/Infrastructure/Persistence.csmicroservices/src/attendance-service/Infrastructure/OutboxRelayHostedService.csmicroservices/src/attendance-service/Application/Services/AttendanceCommands.cs
Related Articles
See Also
Keywords
- Attendance Service
- Attendance Performance Considerations
Revision Information
- Status: Draft
- Last reviewed: 2026-07-15
- Review cycle: Quarterly