Daily legal-package reminder tick

FeatureDaemonService
Shipped
August 7, 2026 at 12:10 AM UTC
Author
Kamo
Commit
e962c63

DaemonService owns the tick because DocsService cannot. DaemonService is strategy:Recreate — the old pod is gone before the new one starts, so a deploy window cannot double-fire. DocsService is RollingUpdate maxSurge:1, so a @Scheduled there provably can: for the length of every rollout there are two pods and both believe it is 13:00. For a job whose output is mail to every overdue employee on the platform, "usually once" is not a property. It also gives us @DisallowConcurrentExecution, JobTriggerController's manual trigger and a cron tunable without redeploying DocsService. Modelled on LeadEmailSweepJob, including the part that is load-bearing rather than stylistic: a default RestTemplate waits FOREVER, so a wedged DocsService would pin this thread and — under @DisallowConcurrentExecution — stop the sweep until the pod restarts, silently and indefinitely, looking exactly like "no reminders were due". The timeouts are explicit. Stamps internal.auth.secret (public-chat), the value DocsInternalAuthFilter validates — NOT the MLOS internal secret, which is a different value and 403s every call, the correction StewardNotifier and VoipGlobalSyncJob both needed. Daily, not hourly: the bucket is a function of the day, so an hourly tick is 24x the cross-org scanning for at most one extra send and 24x the blast radius. No configmap change — the docs base URL and the cron both carry working defaults.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing