Skip to content

Releases: infiniticio/infinitic

V0.4.2

14 Mar 21:51
33b7bfa
Compare
Choose a tag to compare

🚀 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

11 Mar 21:47
33d3335
Compare
Choose a tag to compare

🚀 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

06 Mar 17:34
0e8be5f
Compare
Choose a tag to compare

🚀 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

01 Mar 10:05
6308128
Compare
Choose a tag to compare

🚀 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

16 Feb 15:14
5002aa0
Compare
Choose a tag to compare

🚀 New features

  • add an in-memory cache of states storage (based on caffeine per default) (Fix #62)

🚨 Breaking Changes

  • syntax InfiniticAdmin::init changed to InfiniticAdmin::setupPulsar

V0.2.0

08 Feb 16:26
d4e3d1a
Compare
Choose a tag to compare

🚀 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 the await() method returns the output
  • workflows are not required anymore to use a Workflow interface. AbstractWorkflow has been renamed to Workflow
  • 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 to fromConfigFile

🔬 Improvements

  • stubs/proxies are now thread-safe
  • main branch is now main instead of master
  • added a dedicated error message when using suspended functions for tasks or workflows
  • Fix #53: worker name is checked at launch

V0.1.0

29 Jan 22:23
30d1efc
Compare
Choose a tag to compare

🚀 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)