Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Learn how to build Functional Reactive Applications with Elm, Node.js and Infinispan

Learn how to build Functional Reactive Applications with Elm, Node.js and Infinispan

Developers aim to write responsive, scalable, fault tolerant, reactive applications to can handle the business needs of the modern web applications without hiccups. This talk shows you how to do just that! And to add a twist, we will do it in (pure) functional style.

Node.js is a very popular framework for developing asynchronous, event-driven, reactive applications. Infinispan, an in-memory distributed data grid designed for fast, scalable, elastic access to large volumes of data, has recently gained compatibility with the Node.js ecosystem enabling reactive applications to use it as persistence layer. When combined with Elm, a functional programming language for declaratively creating reactive web applications, these technologies offer a great platform for working with highly responsive, data-heavy applications seamlessly. In this live-coding talk, we will demonstrate how to use these technologies to build a reactive web application composed of an Elm frontend, a Node.js microservice layer and a scalable, fault tolerant Infinispan data grid for persistence.

Galder Zamarreño

November 03, 2016
Tweet

More Decks by Galder Zamarreño

Other Decks in Programming

Transcript

  1. Learn How To Build Functional Reactive Applications with Elm, Node.js

    & Infinispan Galder Zamarreño @galderz blog.infinispan.org galder.zamarreno.com #devoxxma
  2. Moi • @ • Infinispan developer & co-founder • Polyglot

    programmer • Functional programming #devoxxma @galderz
  3. Defining FRP • What is FRP? • Definition • Why

    is FRP interesting? • Usefulness #devoxxma @galderz
  4. Elm #devoxxma @galderz HTTP TCP/IP statically compiled building web user

    interfaces promotes FRP compiles to fast javascript
  5. Elm #devoxxma @galderz HTTP TCP/IP statically compiled building web user

    interfaces promotes FRP compiles to fast javascript most helpful compiler
  6. Elm #devoxxma @galderz HTTP TCP/IP statically compiled building web user

    interfaces promotes FRP compiles to fast javascript most helpful compiler no runtime exceptions
  7. Node.js #devoxxma @galderz HTTP TCP/IP based on express.js FRP friend

    (async, events) stateless listens on port 3000
  8. Node.js #devoxxma @galderz HTTP TCP/IP based on express.js FRP friend

    (async, events) stateless listens on port 3000 talks binary to data grid
  9. Infinispan #devoxxma @galderz HTTP TCP/IP in- memory data grid open

    source (ASL2) 3 server node domain 2 copies redundant
  10. Infinispan #devoxxma @galderz HTTP TCP/IP in- memory data grid open

    source (ASL2) 3 server node domain 2 copies redundant Java, Node.js, C/C++... clients
  11. Infinispan #devoxxma @galderz HTTP TCP/IP in- memory data grid open

    source (ASL2) 3 server node domain 2 copies redundant Java, Node.js, C/C++... clients remote event listeners
  12. Elm Architecture #devoxxma @galderz Elm Runtime Model Html + Msg

    (Click) update Msg (Click) + Model Cmd e.g. http call … Msg (Http Resp) + Model Model updated Model view … button click …
  13. Demo: Insert talk (1) #devoxxma @galderz POST /events putIfAbsent true/false

    created event JSON true/false WS: JSON event WS: JSON event
  14. Objective Learn How To Build Functional Reactive Apps #devoxxma @galderz

    what is FRP why FRP is useful how to build an FRP app
  15. Objective Learn How To Build Functional Reactive Apps #devoxxma @galderz

    what is FRP why FRP is useful how to build an FRP app how to build an FRP app
  16. Credits #devoxxma @galderz Approve by Aha-Soft from the Noun Project

    Window by Oleg Frolov from the Noun Project Server Error by Montu Yadav from the Noun Project Databases by Oliviu Stoian from the Noun Project