News for hackers. Stuff that matters.
Re:Show HN: Waymark – A workflow engine that compiles jobs i... by dangistan202611 on Friday November 06, 2026 @05:58PM (#50399635)
It is too async heavy as per its readme -- this is very off-putting. Not everyone cares for async. There is no usage shown with sync code.

Also, there is no license, which makes it dead on arrival.

Re:Show HN: Waymark – A workflow engine that compiles jobs i... by icyfox on Friday November 06, 2026 @06:02PM (#50399677)
MIT licensed, just clarified in the repo.

As for async - background jobs are better modeled as async because of their natural parallelism across nodes imo. Logic in actions themselves are free to be as synchronous as you want. Why the preference?

Re:Show HN: Waymark – A workflow engine that compiles jobs i... by dangistan202611 on Friday November 06, 2026 @06:11PM (#50399785)
I dispute the "better" assertion. Anyhow, I don't know how familiar or not you are with sync code, but it fully supports background jobs using queues with threads/interpreters/processes. It has been around for decades. If you can willingly disregard support for it, I can willingly disregard your repo.
Re:Show HN: Waymark – A workflow engine that compiles jobs i... by 9dev on Friday November 06, 2026 @06:53PM (#50400135)
I don’t understand these kinds of strong emotions async python triggers in some people. It reminds me of the irrational hate towards systemd in the Linux world.

This is a platform for running workflows distributed on multiple machines, sometimes long-running and with lots of IO. Every single contender in the space advertises the same code, from temporal to hatchet to dagster. Because it makes sense to write it this way.

Re:Show HN: Waymark – A workflow engine that compiles jobs i... by dangistan202611 on Friday November 06, 2026 @07:55PM (#50400551)
Huh. There is nothing wrong with async, but if my code is sync, what am I to do?

Also, the claim made that something is better modeled as async is wholly unqualified.

Re:Show HN: Waymark – A workflow engine that compiles jobs i... by whilenot-dev on Saturday November 07, 2026 @01:56AM (#50402289)
> if my code is sync, what am I to do?

You'd use asyncio.to_thread[0].

I also don't quite get your complaint... asyncio provides a high-level concurrency primitive with coroutines, and that's a good enough primitive for workflow engines. Even with asyncio you could spawn processes easily with aiomultiprocess[1], if you'd want or need to.

What's your use case for having more low-level concurrency primitives (thread/processes) available, having to deal with their synchronization, and running workflows sync?

[0]: https://docs.python.org/3/library/asyncio-task.html#asyncio....

[1]: https://aiomultiprocess.omnilib.dev/en/stable/

Re:Show HN: Waymark – A workflow engine that compiles jobs i... by dangistan202611 on Saturday November 07, 2026 @10:59AM (#50405635)
> having to deal with their synchronization

No such thing has to be necessary. Tasks run fine on different threads/interpreters/processes. Message passing via queues is used to communicate which tasks need to run. Many asyncio users seem to wholly unaware of how well it works. Go-lang doesn't even have async.

Re:Show HN: Waymark – A workflow engine that compiles jobs i... by MOZGIII on Saturday November 07, 2026 @02:48PM (#50407434)
Well, yeah, today the sync code would be awkward to use - possible, but hacky.

With the way our current Python workers are implemented you'd have we'd have to place the sync code onto threads manually.

We could make it happen though, if there is a demand for sync code; we can allow actions to be non-async, and from that run them in sync mode - either with an sdk-level offload to threads off-of async reactor, or on a separate worker pools that run fork-per-action. From the perspective of our VM, we don't really have a difference there...