Ironflow Request Lifecycle

Ironflow Request Lifecycle A workflow diagram generated by Archify. 01 / Your code 02 / Ironflow server 03 / Push transport Accept Admit Execute + finish Emit event · SDK emit() · Your code › Accept Emit event SDK emit() Worker claims job · stream or long-poll · Your code › Execute + finish · no timeout Worker claims job stream or long-poll no timeout Accept + create runs · validate, match triggers · Ironflow server › Accept · waiting_for_capacity Accept + create runs validate, match triggers waiting_for_capacity dispatch_queue · resolve lane, allocate seq · Ironflow server › Admit · push and pull alike dispatch_queue resolve lane, allocate seq push and pull alike Reserve + activate · lane counter, fenced lease · Ironflow server › Admit Reserve + activate lane counter, fenced lease Run completed · steps memoized · Ironflow server › Execute + finish · system.run.{id}.completed Run completed steps memoized system.run.{id}.completed HTTP POST · your endpoint · Push transport › Execute + finish · under 10s HTTP POST your endpoint under 10s admit segment mode: pull mode: push reserve release lease, next segment Trigger RPC job result response Legend SDK call Server step Admission control Durable queue Your function / worker

Accept

  • • One transaction writes the event row and its outbox entry; an invalid schema costs zero rows
  • • Idempotency keys are environment-scoped, so a retry returns the first result
  • • Every matched function gets its own run, created waiting_for_capacity

One admission queue

  • • Push and pull both enter dispatch_queue — there is no direct-dispatch bypass
  • • Admission resolves the concurrency lane and allocates the run's execution_seq
  • • Reserve enforces the cluster-wide lane counter; activate mints a fenced lease

Three transports, one fork

  • • Push posts to your endpoint inline and holds the lease for the request
  • • Streaming pull sends a fenced assignment over the worker's live bidi stream
  • • REST pull long-polls GET /api/v1/workers/{id}/jobs and acks before executing