Welcome to the jungle.
jungle explores the idea of "Workflow-as-Type" (WaT).
It has many similarities to event-replay driven "Worflow-as-Code" frameworks such as Temporal or Restate, with the main difference being that in jungle, Flows are expressed as type-level trees.
This limits the ways you can write Flows, but allows for their traversal and inspection at compile-time which in turn enables:
- visualization of the execution graph
- type-safe generic
Flowcomposition - compile-time node/branch replacement & manipulation
- moving various runtime errors to compile-time
- ... other magical properties ...
The welcome example implements playback of the Guns N' Roses 1987 hit single "Welcome to the Jungle" using jungle:
jungle-06-07-26.webm
In the example, Flows handle the notation and timing for the instruments and vocalizations, while PCM synthesis and playback (through cpal) is performed by Effects. Inputs for each note are persisted either through Fjall or PostgreSQL, depending on choice of backend, which allows the show to go on in the event of an outage.
The jungle is in a primitive state. The terrain is unforgiving and there are a lot of bugs. Have a look around, but don't let it bring you down!