Resolve the deferred docker system events subscription question. docker/system/events is now a v1 Subscription operation using the same StreamingHandler pattern already wired for logs, exec, and image/pull. The internal ownership-store subscription for stale-entry cleanup on destroy events is a follow-up refinement. Scrub hedging language from ADR-060 and docker specs: - Remove 'marginal gain' / 'future feature is additive' framing - Replace 'no reaper' / 'not promptly cleaned up' with clean statement that events subscription provides the prompt-cleanup path - Remove stale-entry policy from ADR-060's two-way door classification
30 lines
1.5 KiB
Markdown
30 lines
1.5 KiB
Markdown
# OQ-50: Docker System Events Subscription
|
|
|
|
- **Origin**:
|
|
[crates/docker/docker-operations.md](crates/docker/docker-operations.md)
|
|
§"Operation Surface";
|
|
[ADR-060](decisions/060-container-resource-model-and-label-namespace.md)
|
|
§4 (autonomous-death tolerance).
|
|
- **Status**: resolved
|
|
- **Door type**: Two-way
|
|
- **Priority**: low
|
|
- **Resolution**: `docker/system/events` is included in v1 as a
|
|
`Subscription` operation. bollard's `events()` returns
|
|
`Stream<SystemEventsMessage>` — the same `StreamingHandler` pattern
|
|
already wired for `logs`, `exec`, and `image/pull`. The operation
|
|
surfaces daemon events (container start/stop/die/destroy, image
|
|
pull/tag/delete, etc.) as `call.responded` frames. The internal
|
|
ownership-store subscription for stale-entry cleanup on `destroy`
|
|
events is a follow-up refinement — the operation itself is the
|
|
architecture decision. The use case is already documented in
|
|
ADR-060 §4 (autonomous container death leaves stale ownership
|
|
entries); the operation is cheap to add (same mechanical
|
|
`StreamingHandler` mapping as the three existing streaming ops) and
|
|
generally useful beyond ownership cleanup (any consumer may want
|
|
daemon events).
|
|
- **Cross-references**:
|
|
[ADR-060](decisions/060-container-resource-model-and-label-namespace.md)
|
|
§4 (teardown coupling — stale-entry tolerance is the base model;
|
|
the events subscription provides the prompt-cleanup path),
|
|
[crates/docker/docker-operations.md](crates/docker/docker-operations.md)
|