Skip to content

Implement portable outbound HTTP and request lifecycle contracts #436

Description

@ChristianPavilonis

Description

PR #275 implements the portable outbound HTTP and request-lifecycle foundation across core, Axum, Cloudflare, Fastly and Spin. It remains open; audited main still exposes the legacy proxy module (crates/edgezero-core/src/lib.rs:36). This issue tracks the unified foundation and breaking migration, separate from the production acceptance epic #391.

Steps to reproduce

Compare the pinned main public proxy/body/application APIs with #275. Exercise the PR contract/generated-consumer matrices for streamed/buffered outbound, completion/cancellation, route-aware ingress, bounded reads, fallible assembly and adapter egress on the exact candidate being reviewed.

Expected behavior

One portable contract owns bounded work, terminal outcomes and release of request resources, with honest per-adapter capability declarations and migrated consumers/docs.

Impact

The legacy APIs cannot express the proposed lifecycle, deadline, cancellation and streaming guarantees consistently. Source/test evidence in a branch is not deployed-provider qualification or end-client delivery proof.

Proposed fix

Review/merge #275 with its API migration and revision-specific validation. Retain buffered/streamed requests/responses, bounded completion-driven batches, application clocks/grants, framing validation, safe diagnostic provenance, bounded config reads and generated-app migration as one accepted contract. Preserve Unsupported/BestEffort distinctions and explicit hosted qualification gaps.

Done when

  • Review and merge feat: implement portable outbound HTTP and request lifecycle contracts #275 with its documented breaking API migrations.
  • Pass the relevant workspace, adapter, generated-consumer and documentation checks against the revision being merged.
  • Preserve documented Unsupported/BestEffort distinctions and clearly identify deferred hosted qualification. Local tests and guest telemetry do not prove deployed guarantees or end-client receipt.

The detailed implementation, evidence and remaining qualification boundaries are recorded in #275. The Axum production-readiness work in #391 depends on this foundation and has separate acceptance criteria.

Related

Activity

  1. added this to the 202611 milestone on Oct 22, 2026
  2. added theissue type on Oct 27, 2026
  3. self-assigned this
    on Oct 27, 2026
  4. aram356 commented on Nov 13, 2026

    @aram356
    Collaborator

    CREATOR: This issue is now part of #468, platform capabilities for server-side identity on every adapter, so #275 shows in that epic through it. #472 (record contract), #474 (portable providers), #475 (client metadata), #476 (after-response work), #477 (rate limiter) and #488 (the first integration-branch tag) are blocked by it. It is planned in wave 1 of the identity plan (IABTechLab/trusted-server#1559).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions