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
  • Overview
  • Microservices Platform
  • User and Developer Portals
  • Containerization
  • Event-Driven Messaging
  • Deployment Flexibility
  • Standards
  • Persistence
  1. Overview
  2. Architecture

Tech Stack

PreviousHigh Level ArchitectureNextDeployment Flexibility

Last updated 1 year ago

Overview

xFlow embraces a microservices architecture, offering a suite of services developed using Java with Spring Boot, as well as targeted services built using Node.js and Python for specialized tasks. This design strategy ensures that xFlow can provide robust and highly scalable solutions tailored to various operational needs. The diagram below shows the primary technologies used.

Microservices Platform

xFlow harnesses the power of Java and the Spring framework to deliver a suite of services that embrace the microservices architecture. The services are encapsulated within Spring Boot, providing streamlined deployment and effortless management.

Spring Framework Integration

At the heart of xFlow's design philosophy lies a deep integration with the Spring ecosystem, chosen for its robust features and widespread familiarity among developers. xFlow's usage of Spring includes:

  • Core Spring: For comprehensive dependency injection and management.

  • Spring REST: To build scalable and secure RESTful services.

  • Spring Data: For consistent data access and manipulation across a variety of database technologies.

  • Spring Cloud Streaming: Enabling event-driven microservices with stream processing capabilities.

  • Spring Cloud Gateway: Offering a simple yet effective way to route API traffic and concerns.

  • Spring Security: Implementing robust authentication and authorization for service security.

Our commitment to staying in sync with the latest Spring versions means that xFlow is consistently aligned with the newest features and improvements that Spring has to offer, along with support for the latest Java versions as they are released.

Utilizing Diverse Technologies

While Java and Spring constitute the backbone of xFlow services, the platform exhibits versatility by incorporating alternative technologies like Node.js and Python for certain services. This strategic use of diverse programming languages and runtimes ensures that each service within the xFlow ecosystem operates at peak performance, catering to the specific needs of different functionalities.

The selective employment of Node.js and Python allows xFlow to harness specialized libraries, frameworks, and runtime efficiencies, providing the flexibility required to tackle various microservices challenges effectively. This multi-technology approach facilitates a balance between leveraging the strengths of Java and Spring, while also taking advantage of the unique capabilities offered by Node.js and Python where they excel.

User and Developer Portals

User Portal

xFlow’s User Portal is an integral component of the platform, offering a highly interactive and responsive interface for managing and monitoring workflows. The web application is crafted using React and Angular, ensuring that users have a smooth and consistent experience across all functionalities.

Web Applications:

  • Employs Angular for its robust framework capabilities, enabling the creation of scalable single-page applications with rich features and client-side logic.

Mobile Applications:

  • For the mobile dimension, xFlow embraces Flutter, Google's UI toolkit, to build natively compiled applications for mobile from a single codebase. This approach guarantees that mobile users enjoy the same quality and coherence of experience as found in the web portals.

Lowcode UI and SDK:

  • xFlow supports a low-code approach to form design within its User Portal, simplifying the creation and configuration of UI elements without extensive coding.

  • Accompanying the low-code platform is an SDK, allowing developers to customize and extend the portal’s functionality, ensuring that specific business requirements can be met with precision.

Developer Portal

In parallel to the User Portal, xFlow provides a Developer Portal that serves as the hub for technical users to define, deploy, and manage the services and workflows. This portal is developed using React due to its component-based architecture, which offers a high degree of flexibility and efficiency in developing interactive UIs.

The Developer Portal is designed to cater to the needs of developers, offering tools and resources for:

  • Workflow Definition and Management: Empowering developers to create complex workflows with ease.

  • Service Interaction: Facilitating a convenient way to interact with various microservices, check their status, and debug as necessary.

  • Integration and Extension Development: Providing a space to develop, test, and integrate extensions or additional services into the xFlow ecosystem.

Both the User and Developer Portals are designed to integrate seamlessly with the backend services, providing a cohesive experience across the xFlow platform. The addition of mobile app capabilities ensures that xFlow is accessible and functional for users on the go, making it a comprehensive solution for workflow management in any environment.

Containerization

Event-Driven Messaging

Messaging within xFlow is powered by Spring Cloud Stream. While we officially support Kafka, Google Cloud Platform (GCP), Azure Event Hubs, and AWS MSK, our architecture is compatible with other Spring Cloud Stream-enabled technologies.

TriggerMesh is employed for event routing workflows, enhancing the interconnectivity between cloud services and xFlow's event-driven architecture.

Deployment Flexibility

xFlow is designed to be cloud-agnostic. It is compatible with any environment where a Spring application can be hosted, including but not limited to Google Cloud, AWS, and Azure.

On-Premise deployment is also fully supported, providing flexibility for enterprises that require or prefer to manage their infrastructure.

Standards

Persistence

PostgreSQL is the primary database for xFlow, ensuring ACID compliance and robust transaction management. MongoDB is employed for specific services, including those within our Lowcode Form suite.

xFlow supports containerization through Docker and Kubernetes, offering scalable deployments and management. For more details, refer to our section on .

xFlow integrates several open standards to ensure seamless interoperability, precise communication, and clear documentation. These standards include for API descriptions, the for defining workflows, and for event definition.

Our security model aligns with best practices, incorporating for authorization. However, due to the flexible nature of Spring Security, our model can adapt to various security implementations.

Deployment Flexibility
OpenAPI
Serverless Workflow Specification
CloudEvents
OWASP
OAuth
xFlow Tech Stack