V0.3.0 Release – Time-dependent Orchestration

Last week was the holiday season for my kids and off for me. It was a good occasion to breathe some fresh air with them on a beautiful beach on the Atlantic sea. My young daughter followed a family tradition by wanting to swim despite large waves and cold water.

Before that, I’ve had the time to add a simple but essential feature to Infinitic in the v0.3.0 release: timers.

Timers give you the ability to introduce time-dependent actions in a workflow. For example, If you want to wait two days or next Monday before doing the following step of your workflow, you can use timers.

The syntax of timers is straightforward:

Deferred<Instant> myTimer = timer(duration);

or

Deferred<Instant> myTimer = timer(instant);

Once a workflow reaches this line, a delayed message is sent internally to Infinitic’s workflow engine. At any time, you can wait up to the reception of this message by adding the line below in your workflow:

myTimer.await();

Of course, there is no resource used during this waiting time, as Infinitic is purely event-driven

Orchestrating time-dependant workflows is now a piece of cake using Infinitic. As of today, I’m working on making event-dependant workflows possible.

Final note: implementing the “timer” feature on the current code base was relatively easy.  This is because Apache Pulsar takes care of the hard stuff: making sure that a delayed message is sent at the right time and never lost – even in case of machine failure. I feel it’s another validation of the right complementarity between Pulsar and Infinitic.

As usual, please contact us with feedback, questions, or reactions.