v0.18.0
Before upgrading to version 0.18.0, you must migrate the database schema for Postgres or MySQL if you are already using them to store workflow states (see below).
馃 Bug Fixes
This version fixes a critical concurrency issue that could occur during worker restarts. When workers are shut down and restarted, Apache Pulsar cannot guarantee message ordering for a given key during this transition period. This could lead to race conditions where workflow state updates arrive out of order, potentially corrupting the workflow state or causing unexpected behavior.
To address this, version 0.18.0 implements two key improvements:
- Messages are now processed safely even when they arrive out of order
- Optimistic locking has been added to workflow state management to prevent concurrent modifications
These changes ensure workflow state consistency even during worker restarts or when experiencing temporary message ordering issues.
馃毃 Breaking Changes
Run the following SQL command to add a required version column to the key_value_storage table:
ALTER TABLE key_value_storage ADD version BIGINT DEFAULT 1 NOT NULL;This migration is mandatory as version 0.18.0 introduces optimistic locking to prevent race conditions. The version column is used to track state changes and ensure data consistency.