I think this is the link to cadence: https://github.com/uber/cadence
and temporal: https://github.com/temporalio/temporal
and temporal: https://github.com/temporalio/temporal
I can't find an easy way to explain everything it does, but it pretty much allows you to write naive functions with no error handling, with month-long sleeps, auto-retries on unreliable function calls, etc etc.
It also gives you a web interface when you can inspect the running functions, and allows for external code (and other workflow functions) to signal/query the running workflows.