Skip to main content

Leave Performance Considerations

Summary

Leave uses async I/O but has no documented performance guarantees, cache, or broad pagination strategy.

Audience

Developers, architects, QA, and performance engineers.

Overview

Database materialization is asynchronous. Repository queries are tracked by default; explicit no-tracking reads are absent. Request and balance lookups are targeted, while general request/balance/calendar lists are not paginated. Timeline applies a fixed upper bound.

The calculator enumerates each date when exclusions apply; calendar rows are loaded for the requested range and weekly-off configuration is loaded for the tenant. Employee profile/manager lookups can add queries during Workflow context resolution. Lists that materialize all profiles for mapping/workspace may become hotspots.

No application cache is registered. Employee projection and outbox work run in background services with controlled message/poll batching. Performance tests, service-level guarantees, query budgets, and capacity limits were not found.

Source References

  • microservices/src/leave-service/Application/LeaveWorkflows.cs
  • microservices/src/leave-service/Infrastructure/Persistence.cs
  • microservices/src/leave-service/Domain/Leave/LeaveDayCalculator.cs
  • microservices/src/leave-service/Messaging/EmployeeProfileConsumer.cs

See Also

Keywords

  • Leave Service
  • Leave Performance Considerations
  • Technical architecture

Revision Information

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