New release v0.12.1
Significant update to Infinitic, the scalable workflow engine for distributed services
Dear Infinitic Community,
I’m thrilled to announce 0.12.1 a significant update to Infinitic, the scalable workflow engine that extends your event streaming cluster with durable execution capabilities.
I'd also like to mention that I am now open to consultancy opportunities. Feel free to reach out by responding to this message for any collaboration or consultation needs ❤️.
🚀 New Feature: Global Timeout
In previous versions of Infinitic, you already had the option to implement a 'runtime timeout' for tasks. Essentially, if a task's execution time exceeded the predetermined limit, it would be flagged as a failure by the task worker. However, there were limitations, such as the inability of the worker to report timeouts in cases of crashes, memory shortages, or network issues. To address this, we're introducing a new 'global timeout' feature in this latest release. This feature designates a task or child-workflow as timed out at the workflow level if no result is provided within the set timeframe. This feature is useful to ensure that your workflow is not stuck even when workers experience malfunctions. Remember to consider the time spent in queues and potential retries when setting a global timeout.
🪲 Bug Fixes
In my pursuit of maintaining seamless backward compatibility, I conducted thorough tests on the new version and discovered a previously unnoticed bug. Since version 0.9.0, we've systematically ensured that new releases can interpret messages from all prior versions. However, an oversight occurred with a class serialized within a message, leading to potential workflow stalling during Infinitic upgrades. Although a simple retry could resolve this issue, it was still a bug. I'm pleased to report that this issue has been addressed and rigorously tested in the current release, ensuring smoother upgrades and system stability.
🔬 Improvements
This release brings several key under-the-hood enhancements:
Pulsar resources are dynamically created as needed. In particular, your client does not create its own topic anymore if it does not need it
Infinitic now validates worker configurations, checking that provided implementations actually implement the named tasks or workflows. This feature prevents the launch of misconfigured workers and saves you from potential confusion.
Workers have been improved to notify the workflow engines about messages automatically sent to dead letter queues by Pulsar. Moreover, an automatic subscription to these queues has been added to ensure no message loss.
A significant refactoring of Pulsar and inMemory implementations lays the groundwork for future compatibility with other data stream technologies like RabbitMQ and Kafka, broadening Infinitic's applicability.
Stay tuned for more updates as I continue to evolve Infinitic to meet your distributed workflow needs!
Gilles Barbier