
It’s been close to 4 weeks since I last wrote about Yantra. Within a week I wanted to wrap up the project, clean it up and then make the repo public. In a classic case of chasing the next interesting project to do, I got distracted with electronics and began 3 separate projects (Will write about it in the future). I was also apprehensive about sharing the code as I kept finding edge cases that I wanted to fix before release. It was an endless cycle of fixing and testing. So I finally had to take a call and release it in whatever state it is in.
So I’m happy to announce Yantra v0.1. I have added a couple of working examples that you can easily import to test out various workflows. The example workflows should give users a decent understanding on how to use inputs and outputs and wire up everything.

Apart from the examples I’ve also added a new executor node called Sleep Until. Thanks to the existing cron based workflow architecture, it was quite easy to introduce indefinite suspension of a workflow (Which seems to be all the rage lately). So now you can suspend a workflow execution midway for couple of hours, days, or months or make it execute on a specific date in the future. That was super fun to implement.
Github link: https://github.com/patali/yantra
Yantra is a workflow automation tool built with Go and Vue.js. It features visual workflow building, checkpoint-based resumption, the transaction outbox pattern for reliability, and horizontal scaling with stateless workers.