Skip to content

Rill Flow is a high-performance, scalable workflow orchestration engine for distributed workloads and LLMs

License

Notifications You must be signed in to change notification settings

weibocom/rill-flow

Repository files navigation

Rill Flow

License codecov CN doc

Overview

Rill Flow is a high-performance, scalable distributed workflow orchestration service with the following core features:

  • High performance: Supports the execution of tens of millions of tasks per day, with task execution latency less than 100ms
  • Distributed: Supports the orchestration and scheduling of heterogeneous distributed systems
  • Ease to use: supports visual process orchestration and plug-in access
  • Cloud native: Supports cloud native container deployment and cloud native function orchestration
  • AIGC: supports rapid integration of LLM model services

Demo

Live Demo (sandbox/sandbox)

QuickStart

Environment Preparation

Before you begin, ensure that the following tools are installed:

Service Deployment

Install Rill Flow services on your local environment using Docker-Compose:

Download the Rill-Flow source code.

git clone https://github.com/weibocom/rill-flow.git

Start the service.

Enter the Docker directory of the Rill-Flow source code and execute the one-click start command:

cd rill-flow/docker
docker-compose up -d

If your system has Docker Compose V2 installed instead of V1, please use docker compose instead of docker-compose. Check if this is the case by running docker compose version. Read more information here.

Verify the installation.

To check the status of Rill Flow, please execute the following command:

docker-compose ps

Here is the expected output:

           Name                         Command               State                                           Ports
------------------------------------------------------------------------------------------------------------------------------------------------------------
rill-flow-mysql              docker-entrypoint.sh --bin ...   Up      0.0.0.0:3306->3306/tcp, 33060/tcp
rillflow_cache_1             docker-entrypoint.sh redis ...   Up      6379/tcp
rillflow_jaeger_1            /go/bin/all-in-one-linux         Up      14250/tcp, 14268/tcp, 0.0.0.0:16686->16686/tcp, 5775/udp, 5778/tcp, 6831/udp, 6832/udp
rillflow_rill-flow_1         catalina.sh run                  Up      0.0.0.0:8080->8080/tcp
rillflow_sample-executor_1   uvicorn main:app --host 0. ...   Up
rillflow_ui_1                /docker-entrypoint.sh /bin ...   Up      0.0.0.0:80->80/tcp

If your actual output matches the expected output, it means that Rill Flow has been successfully installed.

Access the Rill Flow administration background

After the command is successfully executed, you can access the Rill Flow management background at http://localhost (admin/admin). If the server is deployed, use the server IP address for access (port 80 by default).

Execution Example

  • Step 1: Open the Rill Flow management background, click the 'Flow Definition' menu, enter the 'Flow Definition List' page, click the 'Create' button
  • Step 2: After entering the 'Flow Graph Edit' page, open the 'one-click import' switch, copy the following yaml file content into the text box, click the 'Submit' button, you can submit a simple flowchart.
version: 1.0.0
workspace: rillFlowSimple
dagName: greet
alias: release
type: flow
inputSchema: >-
  [{"required":true,"name":"Bob","type":"String"},{"required":true,"name":"Alice","type":"String"}]
tasks:
  - category: function
    name: Bob
    resourceName: http://sample-executor:8000/greet.json?user=Bob
    pattern: task_sync
    tolerance: false
    next: Alice
    inputMappings:
      - source: "$.context.Bob"
        target: "$.input.Bob"
  - category: function
    name: Alice
    resourceName: http://sample-executor:8000/greet.json?user=Alice
    pattern: task_sync
    tolerance: false
    inputMappings:
      - source: "$.context.Alice"
        target: "$.input.Alice"
  • Step 3: Submit the flow graph to execute the task

Click the 'Test' button, fill in the required parameters, and click the 'Submit' button.

  • Step 4: Viewing the execution Result Click the 'Submit' button in the previous step and you will automatically jump to the execution details page. You can view the execution status and details by clicking the 'Execution Records' button.

More instructions on viewing results can be found in Execution Status

preview

Document

Contributors

The following are contributors to the project along with their GitHub links:

License

Rill Flow is an open-source project under the Apache License 2.0.