- rivermigrate at startup (idempotent, before client construction) - S3 store init from env vars (S3_ENDPOINT/S3_BUCKET/S3_ACCESS_KEY/S3_SECRET_KEY/S3_REGION/S3_USE_PATH_STYLE) - signal.NotifyContext created AFTER all startup I/O (PATTERNS.md critical ordering) - HeartbeatWorker + OrphanCleanupWorker registered via river.AddWorker - river.Client with slog.Default() Logger, SlogErrorHandler, MaxWorkers:10 - HeartbeatArgs periodic every 1 min (RunOnStart:true), OrphanCleanupArgs every 1 hr - StopAndCancel(10s timeout) on shutdown; pool.Close after StopAndCancel |
||
|---|---|---|
| .. | ||
| main.go | ||