Hi,
I’m thrilled to announce the release of Infinitic version 0.13.0, packed with exciting new features, performance improvements, and bug fixes that will enhance your experience with Infinitic.
Infinitic is an easiest way to build scalable and reliable even-driven applications, without having to deal with all the complexity.
Introducing CloudEvents (Beta)
One of the most significant additions in this release is the introduction of CloudEvents. Infinitic now exposes its events in the CloudEvents JSON format, allowing users to build their own dashboards, logs, or even add hooks to specific events. This feature opens up a world of possibilities for monitoring, auditing, and integrating Infinitic with other systems.
Some of the events exposed include:
Workflow-related events, such as
methodCanceled
,methodCompleted
,methodFailed
,methodTimedOut
Task-related events, such as
taskDispatched
,taskCompleted
,taskFailed
,taskTimedOut
Child-workflow-related events, such as
remoteMethodDispatched
,remoteMethodCompleted
,remoteMethodFailed
,remoteMethodCanceled
,remoteMethodTimedOut
Each event is accompanied by relevant data, such as error details or method arguments, providing valuable context for monitoring and troubleshooting.
This feature is currently in beta and may be refined based on user feedback.
Delegated Tasks
Infinitic 0.13.0 introduces the concept of "delegated tasks," addressing scenarios where tasks cannot be processed directly by a worker and instead require invoking an external system. Previously, if the external system could not provide a synchronous response, Infinitic would be left without a clear indication of the task's outcome or the ability to retrieve the result.
With the delegated task feature, enabled through an annotation on the task, Infinitic understands that the method's completion does not signify the task's completion and awaits asynchronous notification of the task's outcome. A new completeDelegatedTask
method has been added to the Infinitic client to support this functionality.
Performance Improvements
Infinitic 0.13.0 brings several performance improvements to enhance the efficiency of your data operations:
Sortable UUIDs: Infinitic now uses UUID version 7, which includes a timestamp, expected to enhance performance when used as primary keys in databases.
Idempotency Keys: The taskId
can now be reliably used as an idempotent key, as Infinitic will generate the same value for taskId
even if the task creation process is duplicated.
Optimized Workflow Initiation: The topics architecture has been optimized, allowing the first task to be processed immediately upon dispatch, substantially reducing the "time to first execution" during surges in workflows launch.
Worker Graceful Shutdown: Workers now attempt to complete any ongoing executions before shutting down, with a configurable grace period, ensuring less duplicated messages during shutdown.
Quicker Worker Start: Upon startup, workers now verify and set up the necessary resources (tenant, namespace, topics) in parallel, significantly reducing startup time, especially in scenarios with a large number of tasks or workflows.
I’m excited to see how you leverage the capabilities introduced in Infinitic 0.13.0 to streamline your workflows. As always, we value your feedback and encourage you to share your experiences or any suggestions you may have.