Skip to content

Interface: BroadcastContext<Request, Response>

Makaio Framework


Makaio Framework / bus-core / BroadcastContext

Interface: BroadcastContext<Request, Response>

Section titled “Interface: BroadcastContext<Request, Response>”

Defined in: ../../../packages/bus-core/src/methods/broadcast.ts:31

Extended request context for broadcast handlers. Adds identify() method to tag responses with a node identifier.

  • RequestContext<Request, Response>

Request

Response

optional correlationId?: string

Defined in: ../../../packages/makaio-core/src/types/message.ts:95

Optional identifier linking related operations. Propagated through chains of requests/events.

Used for:

  • Distributed tracing
  • Causality tracking
  • Following a workflow through the system
// Initial request generates correlationId
const result = await request(
UserSubjects.getUser,
{ userId: '42' },
{ correlationId: 'user-action-123' }
);
// Handler propagates correlationId to downstream operations
await emit(
UserSubjects.userLoaded,
{ user: result },
{ correlationId: context.correlationId }
);

RequestContext.correlationId


extendResult: (extension) => void

Defined in: ../../../packages/makaio-core/src/types/context.ts:61

Shallow-merge additional fields into the current result.

Only valid for object-typed responses. In the request path the operation uses spread (immutable); in broadcast mode it uses Object.assign (in-place mutation) so the already-pushed result reference stays current. If no result has been set yet, starts from an empty object.

[Response] extends [Record<string, unknown>] ? Partial<Response> : never

Fields to merge into the current result

void

RequestContext.extendResult


identify: (nodeId) => void

Defined in: ../../../packages/bus-core/src/methods/broadcast.ts:37

Identify this handler for broadcast aggregation. Call before setResult() to tag the response with a nodeId.

string

Unique identifier for this handler/node

void

RequestContext.identify


isRequest: true

Defined in: ../../../packages/makaio-core/src/types/context.ts:36

Discriminator - always true for requests

RequestContext.isRequest


messageId: string

Defined in: ../../../packages/makaio-core/src/types/message.ts:68

Unique identifier for this specific message. Auto-generated if not provided.

Used for:

  • Message deduplication
  • Idempotency checks
  • Tracking individual messages in logs

RequestContext.messageId


next: () => Promise<void>

Defined in: ../../../packages/makaio-core/src/types/context.ts:67

Call the next handler in the middleware chain. If no more handlers exist, throws NoHandlerError.

Promise<void>

RequestContext.next


payload: Request

Defined in: ../../../packages/makaio-core/src/types/context.ts:39

The request payload

RequestContext.payload


replacePayload: (newPayload) => void

Defined in: ../../../packages/makaio-core/src/types/context.ts:74

Replace the payload with a new value. Subsequent handlers in the middleware chain will receive the new payload. Useful for hooks that need to inject context before the main handler runs.

Request

void

RequestContext.replacePayload


readonly result: Response | undefined

Defined in: ../../../packages/makaio-core/src/types/context.ts:50

Read the current result value.

Returns the value set by setResult() in this handler or by a downstream handler after await next(). Undefined until a result has been set.

RequestContext.result


setResult: (result) => void

Defined in: ../../../packages/makaio-core/src/types/context.ts:42

Set the response value (ends the handler chain)

Response

void

RequestContext.setResult


optional transport?: TransportReceiveContext

Defined in: ../../../packages/makaio-core/src/types/message.ts:103

Trusted context supplied by the local receiving transport.

Undefined for local calls and for transports that do not supply connection context. Never trust similarly named fields in payloads or wire messages.

RequestContext.transport