The biggest reason is to be able to deploy, as you mentioned, windmill as a single binary that you can then easily scale horizontally.
The second one is deeply rooted to how it works, it is running fork of those scripts calling the interpreter of those respective languages. It has pros and cons but you can do interesting things like having workflows in different languages, first step in python, second step in go.
Overall it would have been possible to build this on top of Temporal but the biggest benefit of Temporal, which is idempotency/checkpointing is not something we could have offered at the level of abstraction that we operate, running arbitrary single scripts piped together using a result graph and a shared mounted folder. So why bother?
Overall it would have been possible to build this on top of Temporal but the biggest benefit of Temporal, which is idempotency/checkpointing is not something we could have offered at the level of abstraction that we operate, running arbitrary single scripts piped together using a result graph and a shared mounted folder. So why bother?