GitHunt
GI

Bare bone example of fork join DSL in Scala

Fork-join DSL

A bare bone fork-join DSL in Scala developed with @vitlinda as a funny exercise. It uses the "free operational monad" encoding to get a nice syntax for the DSL for free (pun intended).

Our goal was to create a basic DSL for describing distributed programs and later give them semantics by interpreting them.
This is 100% just an experiment and far from being complete. The end goal would be to have a minimal library that would allow one to implement a fork-reduce distributed computation.

Future work:

  • Create an interpreter to draw a graph of the distributed computation (à la Unison Remote Ability)
  • Create an interpreter that can simulate network failure (for example given a chance the failure could occur) (Fiber.getResult should return an Either to model possible failure, so this is a change we would have to implement)

Languages

Scala100.0%

Contributors

Created February 25, 2023
Updated October 18, 2023
giacomocavalieri/fork-join | GitHunt