Portal Community

What Is EdgeInteract?

EdgeInteract extends EdgeStream with a request/response interaction model. Instead of simply pushing events to the browser, EdgeInteract enables the server to send an InteractionRequest to a specific user, wait for their response, and resume execution based on that response.

This makes EdgeInteract the foundation for every Human-in-the-Loop (HIL) feature in BizFirstGO: approvals, confirmations, interactive form collection, option picking, and acknowledgement notifications.

EdgeStream vs EdgeInteract EdgeStream is one-way: server pushes, client receives. EdgeInteract is two-way: server requests, user responds, server continues. EdgeInteract uses EdgeStream as its transport layer.

The Five Built-in Interaction Types

Approval

Approve, Reject, or Abstain. Includes contextual fields. Used for workflow authorization gates.

Confirmation

Yes / No / Cancel binary or ternary choice. Lightweight decision prompts.

Form

Full Atlas Form embedded in the interaction. Response is submitted form data JSON.

Picker

Select one or many from a list of options. Supports single and multi-select modes.

Notification

Read-only informational message. User acknowledges receipt. Supports info, warning, error severity.

How EdgeInteract Works

The interaction lifecycle has five stages:

1

Request Creation

Your server code creates an InteractionRequest with a type, payload, target user, and timeout. The request is assigned a unique interactionId.

2

Delivery via EdgeStream

EdgeInteract publishes the request to the interactions.{userId} EdgeStream topic. EdgeStream delivers it to all active sessions for that user.

3

UI Rendering

The client's InteractionContainer receives the request, identifies the interaction type, and renders the appropriate UI component (approval buttons, form, picker, etc.).

4

User Response

The user takes action. The component calls respond(data), which publishes an InteractionResponse to the interactions.callback.{interactionId} topic.

5

Continuation

The server receives the response on the callback topic. The awaiting workflow node unblocks and continues execution with the user's response data.

Relationship to EdgeStream

EdgeInteract is built entirely on top of EdgeStream. It does not replace or bypass EdgeStream — it adds a higher-level abstraction:

LayerTechnologyResponsibility
TransportSignalR / WebSocketRaw message delivery
Pub/SubEdgeStreamTopic subscription, message routing, fan-out
InteractionsEdgeInteractStructured request/response, UI rendering, response routing

Where EdgeInteract Is Used in BizFirstGO

Key Principle You never use EdgeInteract directly for one-way notifications. Use EdgeStream for that. EdgeInteract is only for interactions where the server needs a response.

Quick Technical Summary

ConceptValue
TransportEdgeStream (SignalR / WebSocket)
Request topicinteractions.{userId}
Response topicinteractions.callback.{interactionId}
Built-in typesapproval, confirmation, form, picker, notification
TimeoutConfigurable per request via timeoutMs
TargetingSingle user ID or role (fan-out)
React packageedge-interact-react