DolphinScheduler 3.3.0 Version Updates Overview

Apache DolphinScheduler
CodeX
Published in
5 min readMay 23, 2024

Apache DolphinScheduler is about to release version 3.3.0, which will bring a series of important updates and improvements. In the recent community online user-sharing session in May, PMC member Wenzhen Ruan introduced the main updates and improvements that the 3.3.0 version will bring and explained how to participate in the community.

Features of DolphinScheduler

DolphinScheduler is an open-source project mainly used for workflow orchestration, execution, and management. It has four key features:

  • Workflow as the basic unit: All functionalities are designed around workflows.
  • Low-code platform: Workflows can be managed with little or no coding.
  • Scalability without data migration: Server nodes can be scaled in or out without migrating data.
  • Plugin architecture.

Workflow as the Basic Unit

Workflows can include tasks and sub-workflows, and each task must belong to a workflow. Workflows can depend on other workflows and are the smallest execution units. Execution of workflows can be triggered manually or automatically.

Low/No-Code Operations

You can define and manage workflows through a drag-and-drop interface on the UI portal or use OpenAPI or PyDolphinScheduler for related operations.

Scalability Without Data Migration

  • Metadata is stored in a shared relational database, allowing system expansion without data migration.
  • Services automatically register to the cluster when launched and transfer running tasks when taken offline without manual intervention.

Plugin Architecture

Components other than the workflow engine are implemented as plugins:

  • Alert plugins: Email, HTTP, WeChat, Slack, etc.
  • Task plugins: Shell, SQL, Spark, K8s, etc.
  • Data source plugins: MySQL, PG, Oracle, etc.
  • Support for Zookeeper, JDBC, ETCD as the registry center.
  • Support for HDFS, S3, OSS storage systems.

Now, let’s look at the new changes in version 3.3.0.

Overview of 3.3.0 Version Updates

Architecture Updates

The overall architecture and deployment method of version 3.3.0 have not changed significantly. It still consists of three core services: API (for metadata management and authorization), Master (for workflow orchestration and execution), and Worker (for task execution and management). Most core components are loaded as plugins.

Major Changes in the New Version Include:

New Task Plugin Interface

Previous versions had issues with the task plugin definitions:

  • Methods in task plugins did not match lifecycle events, missing methods like pause and fault tolerance controls.
  • The task plugin interface was overly complex, containing methods from many sub-plugins, making it bulky.

Version 3.3.0 will introduce a new task plugin definition interface (V2) to manage the lifecycle of task plugin instances. This includes states like run, pause, kill, fault tolerance, success, and failure.

The new interface will be clearer and more streamlined.

  • ITaskApplicationContext: Represent the third part task instance info, e.g. processId, applicationId
  • ITaskListenerManager: Can register listener used to listen to the task info changes

Improved fault tolerance

MasterFailover:

  • Failover the workflows which hold by the crashed master
  • Insert workflow failover command
  • Workflow failover will take over the running tasks from work server

WorkerFailover:

  • Failover of the tasks hold by the crashed worker
  • Dispatch a failover task to a new worker
  • Failover operation might be different in different task plugin
  • Failover support exactly-once、at-least-once、at-most-once

Parameter priority

Previous versions had multiple parameter types with inconsistent priorities. The 3.3.0 version optimizes parameter priorities:

  • Unified parameter prioritization, following the nearest principle, e.g., startup parameters > task definition parameters > workflow definition parameters.
  • Startup parameters have the highest priority and can override others, solving inconsistencies and runtime modification issues.

Decoupled Workflow Triggers

Previous trigger methods had limitations:

  • Triggers were strictly bound to the database.
  • No schema for triggers, making expansion difficult.

The new version decouples workflow triggers, allowing triggering through messaging middleware:

  • Provides a standard Trigger Schema for easy trigger expansion.
  • Introduces a CommandEngine component to detect commands to be processed.
  • Command repositories are no longer limited to relational databases, supporting consumption from streaming systems like Kafka.

Event Thread Model Improvements

Previous versions had two event thread pools, causing coordination difficulties and potential event order loss.

The new version optimizes this by:

  • Merging the two event thread pools; all events in a workflow are processed in FIFO order.
  • Offering more event metrics and query interfaces for better monitoring and management.

Support for Multiple Hadoop/S3 Clusters

Previously, configuring HDFS/S3 required config files, making it impossible to add clusters at runtime.

The new version changes this:

  • Allows configuration in metadata storage.
  • Supports multiple clusters.
  • Allows adding new clusters at runtime.
  • Different tasks can use different clusters.

AlertServer Improvements

AlertServe achieves high availability through HA, using a single thread to send alerts. This results in the need to use additional machines to deploy AlertServer.

The new version allows embedding AlertServer into the API server, adopting a multi-threaded model for sending alerts, increasing efficiency.

For more details on the new features and optimizations in Apache DolphinScheduler 3.3.0, please stay tuned to the official update and GitHub release.

How to Participate in the Community

Email: The preferred way to discuss issues, including user and developer mailing lists for discussing usage issues, design proposals, new ideas, and voting for new releases.

  • User Group Email: users@dolphinscheduler.apache.org
  • Developer Group Email: dev@dolphinscheduler.apache.org

GitHub: The easiest way to participate in the project, including multiple GitHub repositories for DolphinScheduler.

Notes:

  • Introducing new features through DSIP is the only channel.
  • Reporting and fixing bugs are equally important.
  • Keep PRs as simple as possible.

Conclusion

Apache DolphinScheduler 3.3.0 brings numerous significant updates, enhancing system stability, scalability, and usability. We encourage community members to actively participate and contribute to the project.

--

--

Apache DolphinScheduler
CodeX
Writer for

A distributed and easy-to-extend visual workflow scheduler system