execution_plane_http owns the lower unary HTTP lane and lane-adapter
boundary for request/response execution. Version 0.2.0 adds a cancelable unary
session lifecycle backed by Erlang/OTP :httpc asynchronous request IDs and
:httpc.cancel_request/1.
Installation
def deps do
[
{:execution_plane_http, "~> 0.2.0"}
]
endAll commands default to the published execution_plane ~> 0.3.0 core package.
Workspace development can select a local source through the standard
MIX_WORKSPACE_OPS_BOOTSTRAP hook. No registry tooling is required.
Unary execution
Existing callers can continue using the synchronous helper:
{:ok, result} =
ExecutionPlane.HTTP.unary(
%{url: "https://example.com/status", method: "GET"},
lineage: %{idempotency_key: "status-check"}
)Cancelable callers use the same kernel path through a lightweight session:
{:ok, session} =
ExecutionPlane.HTTP.start_unary(
%{url: "https://example.com/status", method: "GET"},
lineage: %{idempotency_key: "status-check"}
)
:ok = ExecutionPlane.HTTP.cancel_unary(session, :caller_cancelled)
{:error, result} = ExecutionPlane.HTTP.await_unary(session, 5_000)The process that starts a session owns its terminal result and must call
await_unary/2. cancel_unary/2 may be called from another BEAM process. A
successful cancellation acknowledgment means the request-owning process called
:httpc.cancel_request/1; it does not prove that a remote service never
received or began processing a request, and it cannot roll back a remote side
effect. Because :httpc completion and cancellation are asynchronous, a normal
response that already won the local race may still be the terminal result.
Cancellation reasons are lifecycle-control data only. They are not copied into the lower execution outcome or raw payload.
Guides
The HexDocs menu includes the guide index, installation notes, usage notes, and publishing checklist for this package.