Releases: infiniticio/infinitic
Releases · infiniticio/infinitic
V0.4.2
🚀 New Feature
- add isCompleted(), isCanceled(), isOngoing() methods on Deferred
🪲 Fixes
- fix bug in engine due to worklowTaskIndex mutability. Tests added accordingly
- fix "transport: inMemory" option
🔬 Improvements
- makes worklowTaskIndex and other int and long classes immutable
V0.4.1
🚀 New Feature
- For development purposes, a "transport: inMemory" option can be added to the configuration file (infinitic.yml): this option triggers a full in-memory instantiation of engines and workers. Developers can use this option to work on workflows without having to install Pulsar. DO NOT USE IT IN PRODUCTION
- an exception is now thrown when a channel is used synchronously with a workflow unknown or already terminated (canceled or completed). An asynchronous syntax is available.
🪲 Fixes
- Fix a bug in the workflow engine that occurred with
async
function
🔬 Improvements
- added an InfiniticClient into infinitic-inMemory module
- fix prop4 test in workflow-tests
V0.4.0
🚀 New Feature
- fix #55: introduce Channels! Channels introduce a way to communicate to a running workflow from "outside". A typical use of Channels is for example to pause a workflow, waiting for the result of a human action.
😤 Breaking changes
- Internal messages format have been updated - please use a new Pulsar namespace for Infinitic
🔬 Improvements
- upgrade Kotlin to 1.4.31 and coroutines to 1.4.3
- add sfl4j-simple to tests
- move workflowTask in a new module infinitic-workflow-task
- gather user exceptions in a unique file in io.infinitic.exceptions
- remove Jcenter repository
V0.3.0
🚀 New features
- add timer feature in workflows (Fix #54): you can now suspend a workflow execution for a duration or up to a certain instant. Timers are non-blocking. Apply the
await()
method to make them blocking. - You can now retrieve the id of a task or a workflow from its Deferred.
🔬 Improvements
- Logical combinations of Deferred are more efficient (undocumented feature yet)
V0.2.1
V0.2.0
🚀 New features
- clients can now get the result of a task or a workflow synchronously (Fix #72)
🚨 Breaking Changes
- within workflows, the
result()
method on Deferred has been removed. Now theawait()
method returns the output - workflows are not required anymore to use a
Workflow
interface.AbstractWorkflow
has been renamed toWorkflow
- InfiniticClient: cancel and retry syntax have changed - a stub dedicated to an existing instance is now used
- InfiniticWorker and InfiniticClient:
fromFile
method has been renamed tofromConfigFile
🔬 Improvements
- stubs/proxies are now thread-safe
- main branch is now
main
instead ofmaster
- added a dedicated error message when using suspended functions for tasks or workflows
- Fix #53: worker name is checked at launch
V0.1.0
🚀 First Release Features 🚀
Pulsar Setup
Provides InfiniticAdmin to setup Pulsar:
- create an infinitic Pulsar tenant
- create a dev namespace with relevant options such as deduplication enabled, partitioned topics, schema enforced, and retention policies.
Infinitic Client
Provides InfiniticClient to:
- dispatch task and workflow
- cancel task and workflows
Infinitic Workers
Infinitic provides a worker that can have 4 different roles, depending on its configuration:
- task executor
- workflow executor
- task engine
- workflow engine
Workflows capabilities
- dispatch task and child-workflow asynchronously
- on task and child-workflow dispatched asynchronously
- get status
- wait for completion
- wait for completion and get the result
- dispatch task and child-workflow synchronously
- dispatch asynchronously a lambda (describing a parallel branch)