docs(architecture): record why single-binary Tempo has its ingester health check off (refs #156)
CI / lint (pull_request) Successful in 1m41s
CI / build (pull_request) Successful in 1m8s
CI / unit (pull_request) Successful in 1m23s
CI / frontend (pull_request) Successful in 3m21s
CI / mutation (pull_request) Successful in 6m32s
CI / verify-stack (pull_request) Successful in 9m31s

This commit is contained in:
not
2026-09-01 09:45:28 +02:00
parent e54dbe9d5d
commit 60d556b46e
@@ -67,6 +67,14 @@ itself, so no in-image healthcheck tool is required.
- Three more images built each CI run (kept small; not on the health-gate list).
- Storage is ephemeral container fs — a demo backplane, not a retention target.
Object storage for Tempo / remote-write for Prometheus is a later concern.
- Tempo runs **single-binary**, so its distributor and ingester are one process and
some of its distributed-mode machinery is not just redundant but harmful. Its
ingester-pool health check is disabled (`ingester_client.pool_config`) because with
a single in-process ingester the check can never route around a failure — a 1s
loopback-gRPC deadline missed under CI load only evicted the one ingester and made
Tempo drop spans, which is how `verify-tracing` flaked (#156). Expect the same
shape from other distributed-mode knobs if we tune them; the fix is to switch to
real multi-ingester Tempo, not to re-enable them here.
## Coupling rules touched (CLAUDE.md §8)