RequestCoordinator
Defined in: packages/client/src/lib/orchestrator/request-coordinator.ts:58
Manages the request lifecycle: sending requests, tracking in-flight state, emitting processing events, and coordinating flush promises.
Example
Section titled “Example”const coordinator = new RequestCoordinator(connector);coordinator.events.on('processing_completed', (e) => console.log(`Done in ${e.durationMs}ms`));
const response = await coordinator.send(envelope);Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new RequestCoordinator(
connector,options?):RequestCoordinator
Defined in: packages/client/src/lib/orchestrator/request-coordinator.ts:68
Parameters
Section titled “Parameters”connector
Section titled “connector”options?
Section titled “options?”RequestCoordinatorOptions = {}
Returns
Section titled “Returns”RequestCoordinator
Properties
Section titled “Properties”events
Section titled “events”
readonlyevents:EventSubscriber<RequestCoordinatorEvents>
Defined in: packages/client/src/lib/orchestrator/request-coordinator.ts:61
readonlystore:Store<RequestCoordinatorState>
Defined in: packages/client/src/lib/orchestrator/request-coordinator.ts:63
Accessors
Section titled “Accessors”isProcessing
Section titled “isProcessing”Get Signature
Section titled “Get Signature”get isProcessing():
boolean
Defined in: packages/client/src/lib/orchestrator/request-coordinator.ts:80
Returns
Section titled “Returns”boolean
lastResponse
Section titled “lastResponse”Get Signature
Section titled “Get Signature”get lastResponse():
MaelstromResponse|null
Defined in: packages/client/src/lib/orchestrator/request-coordinator.ts:84
Returns
Section titled “Returns”MaelstromResponse | null
Methods
Section titled “Methods”dispose()
Section titled “dispose()”dispose():
void
Defined in: packages/client/src/lib/orchestrator/request-coordinator.ts:200
Retire request error reporting and reject queued flush promises. Outstanding sends still settle with their transport outcome; this method does not disconnect the transport.
Returns
Section titled “Returns”void
queueFlush()
Section titled “queueFlush()”queueFlush():
Promise<MaelstromResponse|null>
Defined in: packages/client/src/lib/orchestrator/request-coordinator.ts:159
Returns a promise that settles when the next response arrives or the
next flush failure occurs. Use this to await an in-flight request when
isProcessing is true and you want to coalesce with it.
Resolves to null rather than a response when the in-flight request it
was coalescing with turns out to have been superseded (see
resolveFlushPromises) — mirroring the null a caller already
gets back from flushUpdates() when there was nothing to report.
Returns
Section titled “Returns”Promise<MaelstromResponse | null>
rejectFlushPromises()
Section titled “rejectFlushPromises()”rejectFlushPromises(
error):void
Defined in: packages/client/src/lib/orchestrator/request-coordinator.ts:188
Rejects all queued flush promises and clears the queue. Called when a flush fails before a response is available. The caller is responsible for logging if the error has not already been logged upstream — this method does not log.
Parameters
Section titled “Parameters”Error
Returns
Section titled “Returns”void
resolveFlushPromises()
Section titled “resolveFlushPromises()”resolveFlushPromises(
response):void
Defined in: packages/client/src/lib/orchestrator/request-coordinator.ts:175
Resolves all queued flush promises and clears the queue.
Pass null when the request they were coalescing with was discarded
(e.g. fenced out by a connector swap) rather than actually applied —
resolving with the discarded response itself would hand callers a
layout that was never dispatched, and every fenced call site must
settle these promises somehow or they hang until an unrelated later
request happens to resolve them with an irrelevant response.
Parameters
Section titled “Parameters”response
Section titled “response”MaelstromResponse | null
Returns
Section titled “Returns”void
send()
Section titled “send()”send(
message):Promise<MaelstromResponse>
Defined in: packages/client/src/lib/orchestrator/request-coordinator.ts:106
Send a request and preserve its transport outcome for the caller. Failures received after disposal no longer report a live request error.
Parameters
Section titled “Parameters”message
Section titled “message”ChartRequestMessage
Returns
Section titled “Returns”Promise<MaelstromResponse>