I’m happy to announce the 0.5.0 release of Infinitic with an important new feature: tags!
You can now label workflow instances with tags. And apply commands, such as sending events, or canceling, to all workflows marked with a tag.
By using tags, Infinitic avoids you maintaining mapping tables between Infinitic Ids and your own ids.
Let’s take an example continuing the example in my last post: how to plug Infinitic into an existing event stream (from Kafka, for example):
To do so, you will need a dispatcher between your current event stream and Infinitic. This dispatcher should:
- trigger workflows based on events type and values
- forward events to existing workflows.
A requirement to keep the code simple is to have this dispatcher as dumb as possible. This release 0.5.0 (and the previous 0.4.3) brings an elegant solution to this problem.
Most of the time, your events have a primary id describing your resources. Depending on your activity, it could be a UserId, an OrderId…. When starting a new workflow, you can label it with a tag containing this id, such as
By introspecting the type of channels for each workflow interface, the dispatcher knows which type of workflows waits for which event. When receiving a new event, the dispatcher can forward it to the relevant workflows having the right tag. The workflow engine will automatically discard the event if not waited and will process it otherwise.
I hope you start to see how tags can greatly simplify your implementations.
This 0.5.0 release contains even more goodies: have a look!
As always, I need your feedback, questions, or reactions.