feat(v2/app): Add application lifecycle coordinator with component registry

Context

Part of the LabKit v2 package decomposition from the UAM PoC (!314).

Tracking issue: gitlab-org/quality/quality-engineering/team-tasks#4286 (closed) Parent epic: gitlab-org/quality#360

What's in this MR?

  • v2/app package: central application lifecycle coordinator
    • Pluggable Component interface (Start(ctx) error + Shutdown(ctx) error)
    • Ordered startup, reverse-ordered graceful shutdown
    • Threads shared logger and tracer to all registered components
    • NewForTesting constructor for in-process test doubles
  • v2/testing/apptest package: test helper that creates a pre-configured App with in-memory logger and trace recorder

Dependencies

Depends on already-merged v2/log and v2/trace packages.

Edited by Doug Barrett

Merge request reports

Loading