Complete architectural overview of the BizFirstAI platform with detailed component interactions and data flows.
Key insight: Each layer has a single responsibility with clear interfaces. Communication is asynchronous where possible for scalability.
1. Initialization
Push trigger node onto ExecutionStack
2. Execution
Pop top node from stack
3. Routing
ExecutionRouter finds downstream nodes for output port
4. Stacking
Push downstream nodes onto stack
5. Loop
Repeat until stack is empty
Execution Stack Progression:
1. [T] → 2. [N1] → 3. [N2, N3] → 4. [N3] → 5. [] (done)
| From Component | To Component | Communication Method | Data Format | Sync/Async |
|---|---|---|---|---|
| Studio | Flow | REST API (HTTP) | JSON (GoWebRequest) | Async |
| Flow | Octopus | In-process (IAgentInvoker) | Dictionary |
Sync |
| Flow | EdgeStream | Event Publisher | ProcessHubMessageResponse | Async |
| EdgeStream | Studio | SignalR (WebSocket) | JSON (SignalR protocol) | Real-time |
| Flow | Database | EF Core ORM | Mapped Entities | Sync |
| Octopus | Database | EF Core ORM + Custom Queries | Mapped Entities | Sync |
| Studio | Forms | React Component | JSON Schema | Sync |
| Octopus | External LLMs | REST/WebSocket API | Provider-specific JSON | Async |
Each layer has single responsibility with clear interfaces. Design→Execution→Intelligence layers are loosely coupled.
All dependencies injected via constructor. Enables testing, mocking, and runtime swapping of implementations.
40+ plugins extend platform without core modification. New providers, utilities, integrations are plugin-based.
TenantID enforced at database level. Queries automatically filtered by tenant. Data isolation guaranteed.
Components communicate via events for loose coupling. ProcessEngine raises 5+ event types broadcasted to clients.
Forms defined via JSON schema. Enables no-code UI generation and dynamic control configuration.
Real-time updates to clients via WebSocket
Parallel execution capability
With automatic fallback mechanisms