xFlow
  • Overview
    • Introduction
    • Core Features
    • Architecture
      • High Level Architecture
      • Tech Stack
      • Deployment Flexibility
      • Performance and Scalability
      • Security Compliance
  • Getting Started
    • Installation
    • Quick Start
    • Configuration
  • Core Concepts
    • Serverless Workflow Specification
    • Workflow data handling
    • Workflow Expressions
    • Error handling
    • Input and Output schema definition
    • User Task
    • User Forms
      • Lowcode Form
      • Advanced User Form
    • AI Agents in Enterprise Business Processes
    • Comparisons
      • BPMN2
  • Developer Guide
    • Architecture
    • API Reference
    • Workflow States Reference
      • Event State
      • Operation State
      • Switch State
      • Parallel State
      • Inject State
      • ForEach State
      • Callback State
      • UserTask State
      • AIAgent State
      • AIAgentProxy State
      • UserProxyAgent State
      • AI Outbound Agent State
    • Workflow Functions
      • REST
      • GraphQL
      • Custom
        • Built-in Functions
        • Lowcoder Query Function
      • Function Auth
    • Workflow Secrets
    • Integrations
    • Workflow Modeler
    • Frontend Development
      • Forms
        • Lowcode Form
        • Advanced User Form
    • Serverless Workflow Development
      • Operation State
      • Switch State
      • Parallel State
      • ForEach State
      • Callback State
      • User Task State
    • AI Agent Development
      • AI Agent
        • Predefined LLM
        • LLM Configuration
        • Multi LLM Configuration
        • Chat Memory
        • Tools
        • Data Output
        • Agent Outcomes
      • AI Agent Proxy
        • AI Agents Integration
      • User Proxy Agent
      • xChatBot Integration
  • Examples
    • Basic Examples
    • Advanced Examples
      • Loan Approval Workflow
      • QMS AP Workflow
  • Administration
    • Monitoring and Logging
    • Security
    • Performance Tuning
  • Extensions and Customizations
    • Plugins and Add-ons
  • Troubleshooting
    • Common Issues
    • FAQs
  • Release Notes
    • Version History
    • Upcoming Features
  • Support
    • Contact Information
    • Community
Powered by GitBook
On this page
  1. Developer Guide

Architecture

PreviousDeveloper GuideNextAPI Reference

Last updated 1 year ago

The xFlow system is a versatile workflow engine designed to be deployed in any cloud environment or on-premises infrastructure. It incorporates a distributed architecture model capable of handling complex, asynchronous workflows with efficiency and resilience. Below is the technical documentation detailing the architecture of the xFlow system.

Diagram illustrating the detailed components of the xFlow solution and the roles, relationships of these components.

(1) All client requests to xFlow are routed through the xFlow Gateway, which then routes requests to corresponding systems such as xPlatform, LowCoder, and xFlow Services. (1a) Requests related to process management and initialization are routed to the xflow-engine service.

(2) Requests related to xPlatform services (services with prefix "xp" or authentication, user information) are routed through the xFlow Gateway to the xPlatform Gateway, which further routes them to the respective services. (2a) Upload/download file requests are routed to the xpdms service. (2b) User Task-related requests are routed to the xptask service.

(3) Requests related to LowCoder such as form management, query, and datasource handling are routed to the LowCoder system via an Nginx Proxy. (3a) The LowCoder API Service handles the main logic of LowCoder, while the Node Service is utilized when executing queries against datasources not supported by the API Service.

(4) The microservices connect to Kafka for publishing/subscribing messages, with TriggerMesh responsible for routing messages between the xFlow and xPlatform systems.

(5) The xflow-engine utilizes Temporal as its core engine to implement the Serverless Workflow Spec.

(6) In addition to providing REST APIs related to user task management business, the xptask service also serves as a Plugin Worker of the xflow-engine to execute task initialization based on the logic of User Task State Spec.

(7) The LowCoder API Service also functions as a Plugin Worker of the xflow-engine, executing actions corresponding to queries defined within LowCoder.

(8) The LowCoder Node Service provides the capability to execute queries related to datasources not supported by the LowCoder API Service.

(9) Microservices belonging to xFlow and xPlatform utilize PostgresDB for storing data.

(10) The LowCoder API Service utilizes MongoDB to store data such as Forms, Data Sources, Queries, etc.

(11) The LowCoder API Service employs Redis as a cache layer.

xFlow Architecture