Architectural Invariant Design: Axum Tower Context Propagation Fence & Cancellation Isolation
Axum Tower Context Propagation Fence & Cancellation Isolation defines an industrial-grade behavioral standard for backend engineering. Enforces deterministic task-local and OpenTelemetry span fencing across Axum Tower middleware pipelines. Prevents ambient context and tenant metadata contamination across multiplexed HTTP/2 streams and async cancellation boundaries by forbidding guard retention across `.await` points and enforcing explicit RAII span attachment. Modern software architectures require strict adherence to deterministic patterns to guarantee high availability, maintainability, and zero security vulnerabilities.
Hazard Analysis: What Breaks Without This Rule
The following failure modes have been cataloged from hundreds of hours of production code reviews where AI assistants produced non-compliant implementations:
| Failure Mode | AI Symptom (The Anti-Pattern) | Severity | Production Impact & Remedy |
|---|---|---|---|
| AI Hallucination & Deprecation Drift | Ambient Context and Tracing Span Leakage Across Async Dropped Futures and Thread Worker Pools | Critical | Violating this industrial standard introduces regression bugs, security risks, and unexpected runtime failures in production. Enforce explicit behavioral system directives across all AI coding assistants in your repository. |
| Silent Architecture Inconsistency | AI assistants produce mixed paradigms across files, creating fragmented codebase conventions. | Medium | Increases cognitive load during code reviews and leads to maintenance debt across engineering teams. Pin project conventions in .cursor/rules, CLAUDE.md, and AGENTS.md so all team agents follow identical guardrails. |
Step-by-Step Production Directives
Each rule constraint below is injected into the AI agent's system prompt to establish deterministic boundaries:
Engineers MUST ALWAYS instrument response futures using `.instrument(span)` or `tracing
Engineers MUST ALWAYS instrument response futures using `.instrument(span)` or `tracing::Instrument::instrument` rather than invoking `span.enter()` in async contexts.
Engineers MUST NOT hold `tracing
Engineers MUST NOT hold `tracing::span::Entered` guards across `.await` suspension points or inside pinned future closures, as Tokio task cancellation will orphan thread-local entered state.
Code MUST isolate tenant metadata using request extensions (`http
Code MUST isolate tenant metadata using request extensions (`http::Extensions`) or scoped task locals (`tokio::task_local!`) wrapped strictly with `task_local.scope(...)`.
Services MUST extract parent OpenTelemetry W3C trace contexts directly into an explicit child span and attach that span directly to the inner `Service
Services MUST extract parent OpenTelemetry W3C trace contexts directly into an explicit child span and attach that span directly to the inner `Service::call` future.
Components NEVER use global static mutable thread-locals or unsynchronized ambient context stores to propagate identity or distributed tracing state across Tower layers.
Components NEVER use global static mutable thread-locals or unsynchronized ambient context stores to propagate identity or distributed tracing state across Tower layers.
Frequently Asked Technical Questions
Common questions developers face when configuring AI coding assistants for this stack:
Q:Why is Axum Tower Context Propagation Fence & Cancellation Isolation critical for AI coding assistants?
Enforces deterministic task-local and OpenTelemetry span fencing across Axum Tower middleware pipelines. Prevents ambient context and tenant metadata contamination across multiplexed HTTP/2 streams and async cancellation boundaries by forbidding guard retention across `.await` points and enforcing explicit RAII span attachment. Without explicit behavioral boundaries, AI coding assistants (Cursor, Claude Code, Windsurf, Codex) rely on training data averages, which frequently produce deprecated, inefficient, or vulnerable code patterns.
Q:How does adopting this rule prevent AI hallucinations?
This rule explicitly declares what the AI must avoid (Ambient Context and Tracing Span Leakage Across Async Dropped Futures and Thread Worker Pools) and prescribes verified positive examples. Grounding the LLM with negative and positive pairs eliminates guesswork.
Q:Which AI coding environments are supported?
This specification is multi-platform compatible: Cursor (.cursor/rules/*.mdc & .cursorrules), Anthropic Claude Code (CLAUDE.md), Windsurf (.windsurfrules), Codex / Cline (AGENTS.md), and GitHub Copilot (.github/copilot-instructions.md).
Q:Can I combine this rule with other technology stacks?
Yes. Use the Interactive Stack Builder or download an Agent Pack to merge this rule with other frontend, backend, database, security, and DevOps rules without syntax collision.