Comment by kodablah
1 month ago
Duralade - a programming language for durable execution (but has many neat aspects)
Most of the work as of today is in a branch, can see the language spec at https://github.com/cretz/duralade/blob/initial-runtime/docs/..., and some samples at https://github.com/cretz/duralade/tree/initial-runtime/sampl....
May not amount to anything, but the ideas/concepts of this durable language are quite nice.
I'm curious what advantages this has over adding durability to an existing language, like DBOS does:
https://github.com/dbos-inc/dbos-demo-apps/blob/main/python/...
Modern languages are not safe enough nor are they very amenable to versioning, serialization, resumption, etc. It makes sense for modern durable execution engines to meet developers where they are (I wrote multiple of the SDKs at Temporal, including the Python one, this is just a fun toy side project), but a purpose-built language that has serialization, patching, wait conditions, kwargs everywhere, externalizing side effects, etc, etc, etc is a big win vs something like Python.
Admittedly the lang spec doesn't do a great job at the justification side, but the engine spec adjacent to it at https://github.com/cretz/duralade/blob/initial-runtime/docs/... that has sections showing CLI/API commands can help make it clearer where this runtime is unique.
Fascinating, thanks for the info!