GenStage

GenStage is a specification for exchanging events between producers and consumers.

This project currently provides the following functionality:

You can find examples on how to use the modules above in the examples directory:

Installation

GenStage requires Elixir v1.3.

  1. Add :gen_stage to your list of dependencies in mix.exs:

    def deps do

     [{:gen_stage, "~> 0.1.0"}]

    end

  2. Ensure :gen_stage is started before your application:

    def application do

     [applications: [:gen_stage]]

    end

Future research

Here is a list of potential topics to be explored by this project (in no particular order or guarantee):

Other research topics include the Naiad's Differential Dataflow engine (10) and Lasp (11).

Links

  1. https://www.amazon.com/Patterns-Parallel-Programming-paperback-Paperback/dp/0321940784
  2. http://www.mathematik.uni-marburg.de/~eden/
  3. https://github.com/ParaPhrase/skel
  4. http://paraphrase-ict.eu/Deliverables/d2.5/at_download/file
  5. http://paraphrase-ict.eu/Deliverables/d2-10-pattern-amenability/at_download/file
  6. https://cloud.google.com/blog/big-data/2016/05/why-apache-beam-a-google-perspective
  7. http://www.vldb.org/pvldb/vol8/p1792-Akidau.pdf
  8. http://www.vldb.org/pvldb/vol8/p702-tangwongsan.pdf
  9. http://spark.apache.org/docs/latest/programming-guide.html#working-with-key-value-pairs
  10. http://research-srv.microsoft.com/pubs/176693/differentialdataflow.pdf
  11. https://lasp-lang.org/

License

Same as Elixir.