Skip to content

Latest commit

 

History

History
122 lines (82 loc) · 3.58 KB

README.md

File metadata and controls

122 lines (82 loc) · 3.58 KB

Universal Process Orchestrator (UPO)

The Universal Process Orchestrator (UPO) is a versatile and resilient framework for designing, executing, and managing workflows and processes across diverse domains. UPO enables seamless integration of systems, robust automation of processes, and distributed execution, making it the ultimate platform for orchestrating business logic, technical workflows, and data pipelines.


Key Features

1. Versatile Process Management

  • Supports business workflows, technical integrations, and data movement.
  • Handles loops, parallel branches, and decision points effortlessly.

2. Distributed Execution

  • Execute processes across distributed environments.
  • Support for remote execution of steps and subprocesses.

3. Asynchronous Capabilities

  • Asynchronous execution of tasks and subprocesses.
  • Seamless handling of long-running processes with built-in state management.

4. Resiliency and Fault Tolerance

  • Built-in resiliency patterns for retry, compensation, and failure recovery.
  • Fault-tolerant design for high reliability.

5. System Integration

  • Easily integrate with external systems via APIs, SDKs, or custom connectors.
  • Native support for popular communication protocols.

6. Monitoring and Observability

  • Real-time monitoring and logging of process executions.
  • Metrics and analytics dashboards for insights and debugging.

Getting Started

1. Prerequisites

  • Environment Requirements:
    • Java 21+ or a supported runtime.

2. Installation

Clone the Repository:

Build the Application:

Run the Application:

3. Configuration

Create a config.yaml file to configure the orchestrator. Example:


Usage

1. Define a Process

Processes can be defined using a simple YAML format or a graphical UI.

Example Process Definition (YAML):

2. Execute a Process

Invoke the defined process via API:

3. Monitor and Debug


Contributing

We welcome contributions! Follow these steps to contribute:

  1. Fork the repository.
  2. Create a feature branch (git checkout -b feature-name).
  3. Commit your changes (git commit -m "Add new feature").
  4. Push to the branch (git push origin feature-name).
  5. Create a pull request.

License

The Universal Process Orchestrator (UPO) is dual-licensed under:

  1. GNU Affero General Public License v3.0 (AGPL-3.0): You may use this software under the terms of the AGPL-3.0 license. A copy of the license is available here.

  2. Proprietary License: For enterprises or use cases that cannot comply with AGPL-3.0 obligations (e.g., sharing source code for modifications or SaaS deployments), a commercial license is available.

Obtaining a Commercial License

To obtain a commercial license, please contact us:

Unauthorized use outside of the AGPL-3.0 terms or without a commercial license is strictly prohibited.


Contact

For questions or support, contact: