V0.3.0 Release - Time-dependant orchestration
This release introduces the ability to orchestrate time-dependent actions
Hi,
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 reply to this email for any feedback, question, or reaction ❤️.