EdgeInteract Overview
EdgeInteract is the bidirectional real-time interaction layer built on EdgeStream. While EdgeStream delivers one-way event streams to the browser, EdgeInteract adds structured request/response interactions — the server asks, the user acts, and the workflow continues.
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.
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:
Request Creation
Your server code creates an InteractionRequest with a type, payload, target user, and timeout. The request is assigned a unique interactionId.
Delivery via EdgeStream
EdgeInteract publishes the request to the interactions.{userId} EdgeStream topic. EdgeStream delivers it to all active sessions for that user.
UI Rendering
The client's InteractionContainer receives the request, identifies the interaction type, and renders the appropriate UI component (approval buttons, form, picker, etc.).
User Response
The user takes action. The component calls respond(data), which publishes an InteractionResponse to the interactions.callback.{interactionId} topic.
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:
| Layer | Technology | Responsibility |
|---|---|---|
| Transport | SignalR / WebSocket | Raw message delivery |
| Pub/Sub | EdgeStream | Topic subscription, message routing, fan-out |
| Interactions | EdgeInteract | Structured request/response, UI rendering, response routing |
Where EdgeInteract Is Used in BizFirstGO
- WorkDesk HIL Inbox: All HIL interactions land here — employees see pending approvals, forms, and confirmations in a unified inbox powered by EdgeInteract.
- Flow Studio HIL Nodes: The
HumanInLoopNodepublishes anInteractionRequestand suspends the workflow. EdgeInteract delivers the request and routes the response back to resume execution. - Octopus Agent Approvals: Agents request human authorization for sensitive actions using EdgeInteract's approval interaction type.
Quick Technical Summary
| Concept | Value |
|---|---|
| Transport | EdgeStream (SignalR / WebSocket) |
| Request topic | interactions.{userId} |
| Response topic | interactions.callback.{interactionId} |
| Built-in types | approval, confirmation, form, picker, notification |
| Timeout | Configurable per request via timeoutMs |
| Targeting | Single user ID or role (fan-out) |
| React package | edge-interact-react |