A full stack, reactive architecture for general purpose programming. Algebraic and monadically composable primitives for concurrency, parallelism, event handling, transactions, multithreading, Web, and distributed computing with complete de-inversion of control (No callbacks, no blocking, pure state)
However, while spark is a framework, transient is a pure library where the primitives are first class in the language, and map-reduce is a particular operation int transient, but it is not hard-coded in a rigid framework.
=> in
import Transient.EVars
main= keep $ do
var <- newEVar
comp1 <|> comp3
liftIO $ putStrLn "world"
comp1= do
r <- readEVar var
liftIO $ putStrLn r
comp2= writeEVar var "hello"
comp1 <|> comp3 => comp1 <|> comp2
Like in the case of spark, reduce is the operation that executes everithing, while map is declarative. Let's see an example:
Amazing work !
few typos I found while reading:
=> in
comp1 <|> comp3
=>comp1 <|> comp2
-> everything