docs: reconcile lifecycle delivery with PR 13
Documentation / docs (pull_request) Successful in 23s
ci / check (pull_request) Successful in 1m29s

This commit is contained in:
end committed 2026-10-27 12:15:32 -07:00
1 parent f4abb626c6
commit d8f3176053
1 file changed
+4 -3
@@ -2,7 +2,7 @@
title: "Supervise module lifecycle and managed workers within one shutdown budget" title: "Supervise module lifecycle and managed workers within one shutdown budget"
date: 2026-10-27 date: 2026-10-27
status: accepted status: accepted
implementation: in-progress implementation: implemented
summary: Order module startup and reverse cleanup while supervising services and background workers under one bounded shutdown. summary: Order module startup and reverse cleanup while supervising services and background workers under one bounded shutdown.
tags: tags:
- lifecycle - lifecycle
@@ -12,7 +12,8 @@ related:
- /docs/adr/20261025T214616275Z-version-light-core-packages-in-the-root-module-and-nest-heavy-dependency-modules.md - /docs/adr/20261025T214616275Z-version-light-core-packages-in-the-root-module-and-nest-heavy-dependency-modules.md
tracking: tracking:
- https://gitea.auvem.com/corestack/go/issues/5 - https://gitea.auvem.com/corestack/go/issues/5
implemented_by: [] implemented_by:
- https://gitea.auvem.com/corestack/go/pulls/13
--- ---
# Supervise module lifecycle and managed workers within one shutdown budget # Supervise module lifecycle and managed workers within one shutdown budget
@@ -71,4 +72,4 @@ The accepted signatures have the following edge semantics:
* One coordinator owns admission, cancellation, hook ordering and completion accounting. Applications must route background work through `Go` and supply cooperative callbacks to claim graceful whole-app completion; this is an explicit boundary, not automatic goroutine discovery. * One coordinator owns admission, cancellation, hook ordering and completion accounting. Applications must route background work through `Go` and supply cooperative callbacks to claim graceful whole-app completion; this is an explicit boundary, not automatic goroutine discovery.
* The shutdown bound requires asynchronous hook invocation and synchronized worker admission/completion, even when a consumer has no background workers. A blocked hook can consume the entire budget and leave earlier modules without teardown; a second signal deliberately accepts that same incomplete cleanup sooner. * The shutdown bound requires asynchronous hook invocation and synchronized worker admission/completion, even when a consumer has no background workers. A blocked hook can consume the entire budget and leave earlier modules without teardown; a second signal deliberately accepts that same incomplete cleanup sooner.
* Delivery should remain approximately 300–500 production lines plus focused race tests, a two-service package Example and public/package docs, in one PR. Verify startup/reverse ordering, partial rollback, service and worker failure propagation, normal completion, cancellation/error classification (including a first signal during setup with successful partial cleanup and rollback returning nil, and an initiating setup failure remaining observable), admission races, teardown unblocking workers, a shared deadline (including an uncooperative hook), second signals and joined errors. Test with injected signals, release blocked test goroutines explicitly, and use no real process signals. * Delivery should remain approximately 300–500 production lines plus focused race tests, a two-service package Example and public/package docs, in one PR. Verify startup/reverse ordering, partial rollback, service and worker failure propagation, normal completion, cancellation/error classification (including a first signal during setup with successful partial cleanup and rollback returning nil, and an initiating setup failure remaining observable), admission races, teardown unblocking workers, a shared deadline (including an uncooperative hook), second signals and joined errors. Test with injected signals, release blocked test goroutines explicitly, and use no real process signals.
* No plan tier is needed. The decision is accepted and implementation is in progress; independent implementation review and publication remain pending. Reconcile delivery metadata against the latest target branch and actual PR evidence before final review/merge. * No plan tier is needed. The accepted decision is implemented by [PR 13](https://gitea.auvem.com/corestack/go/pulls/13), including managed workers, bounded shutdown, focused race tests, the two-service example and public documentation. Independent standard and high implementation reviews are complete with no outstanding findings, and required local checks passed on the reviewed code. Publication is complete; CI and merge readiness are tracked in the PR. Delivery was reconciled against main at `46c4416ed44b4c8cfc69570b9bcb572b624d765e` plus the PR; this records implementation evidence, not a merge or release.