v0.9.4 and personal news
Is Infinitic alive?
You may have noticed or not, but I have been silent since October last year. So you may wonder if Infinitic is still alive. The response is Yes! Actually, Splio, the French marketing company I worked with last year, is now using it in production to power its new automation marketing engine. And today, I released version 0.9.4.
The reason behind my silence is that I have joined a US startup - StreamNative - as General Manager for the EMEA region! If you do not know StreamNative yet, its activity is to manage Pulsar clusters for its customers. The company was founded by the original creators of Apache Pulsar and has more experience deploying and running large-scale instances than any team in the world. My role there is to accelerate StreamNative’s growth in the EMEA region by building a local team to serve our customers and increase Pulsar awareness.
What does it mean for Infinitic?
StreamNative did not buy Infinitic and does not support it officially currently. So obviously, even if I enjoy working on it in my spare time, the development of Infinitic has naturally slowed down due to my new role. But even if I can’t be sure of the medium-term consequences, I still think that being so close to the Pulsar ecosystem should ultimately benefit Infinitic.
So, what’s new in this 0.9.4 version?
Channels are more versatile!
Before 0.9.4, it was impossible to buffer signals in a channel to handle them later. The closest you could do to buffer three signals was:
Since 0.9.4, Infinitic is now able to buffer signals to handle them by a workflow:
It’s even more helpful if you do not know the number of signals you will receive:
Using this pattern ensures that your previous signal is entirely handled before handling the next one. We can imagine multiple use cases:
Send events relative to a user to a loyalty workflow
Send events relative to a basket to a workflow managing baskets for an e-commerce website
Let me know your use case.
Unique tag
Let’s say you create a workflow describing a loyalty program. Despite having multiple triggers to start this workflow, you want to ensure that a user can not have more than one workflow running at a given time. Before 0.9.4, the only solution was to tag the workflow with “userId:b4824916”
then request the existing ids associated with this tag to check if we have already a running workflow before starting a new one:
This method is cumbersome and sensitive to race conditions. Since 0.9.4, you can do:
By prefixing a tag with “customId:”
we tell Infinitic that this tag is a custom id for this workflow. When dispatching it, Infinitic will check if a workflow (of the same type) with the same tag already exists before starting a new one.
I hope you will find those new features useful. Let me know what you think by responding to this email ❤️