Slide 1

Slide 1 text

2017 ElixirConf.EU

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

José Valim Day 1 Keynote • Elixir 5yrs old, 1.0 -> 1.4 • _Seven Languages in Seven Weeks_ • "Elixir" before Elixir • defobject >,< • Elixir Goals -> Rethink meta-programming • Elixir ~= Data(types) + Modules + Processes • http: //theerlangelist.com //article/spawn_or_not • Time -> Runtime • Elixir 1.5

Slide 4

Slide 4 text

Tonći Galić CQRS/ES + Elixir • Event Sourcing • eventual consistency • CQRS • Command • Query • Responsibility Segregation • +Elixir • gen_server/gen_statem/gen_stage • pattern matching • etc… • https: //10consulting.com/2017/01/04/building-a-cqrs-web- application-in-elixir-using-phoenix/

Slide 5

Slide 5 text

Andrea Amantini Nextjournal • https: //nextjournal.com/ • editor + interactive, connected code cells • Dependencies of code cells -> Graph of processes • Cuneiform (cuneiform-lang.org) • GenStage (:digraph, BroadcastDispatcher) • Applications • Phoenix Channel • Runner App • Erlang Ports • Docker

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

Dániel Vámosi Visualization • https: //github.com/koudelka/visualixir • http: // www.erlang.pl/ • “Paparazzi”

Slide 8

Slide 8 text

Introducing ExLoglite LIGHTNING TALK

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

Tetiana Dushenkivska & Keith Salisbury Day 2 Keynote • _The Age of Elixir_ • Community • Elixir Shanghai !!

Slide 11

Slide 11 text

Thomas Arts QuickCheck • Improved Elixir integration (eqc_ex) • PBT x ex_loglite • Shrinking • Quviq customers: Volvo, Dropbox, Basho… • Erlang -> Elixir for B2B • Spec! (JSON Schema) • generator, validator • Real-time system challenge (timestamp…) • JSON Schema + QuickCheck for random data generation

Slide 12

Slide 12 text

defmodule ExLogLite.LogModelEQC do use ExUnit.Case use EQC.ExUnit alias ExLogLite.LogModel property "`build` always return string of a specific length" do forall {s, n} <- {utf8(), choose(1, 1000)} do ensure byte_size(LogModel.build(s, n)) == n end end end

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

GraphQL Bruce Williams & Benjamin Wilson

Slide 15

Slide 15 text

Bruce Williams & Benjamin Wilson GraphQL • 3yrs of Elixir @ CargoSence • RESTful APIs -> GraphQL • Absinthe • and friends… • Schema -> Objects -> Fields (type, another obj) • GraphQL Document • Query (like an object) • or Mutation, results are like queries • or Subscriptions

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

Bruce Williams & Benjamin Wilson Absinthe • Resolver -> Macro (Map.get) • Execution / Data loading: • Batching • absinthe_ecto • lazy loading • combine sub-tree query • Projection (eager loading) • Extending Absinthe (hexdocs) • Phases |> Pipeline • Limit by complexity, etc… • middleware (per-field)

Slide 18

Slide 18 text

GRAPHQL BOOK COMING SOON

Slide 19

Slide 19 text

Petri Kero Scalable Mobile Game Backend • Distillery release • Docker -> Kubernetes • libcluster • Distributed Locks • Global PG • Sloppy Quorum • Use AI client for load testing • 420k concurrents @ 8-node, 36 vCPU cluster • scaling up steps…

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

Chris McCord Closing Keynote • Why Phoenix 1.3 • Lonestar ElixirConf 2017- KEYNOTE: Phoenix 1.3 • still rc >,< • Phoenix 1.4 • Metrics • Instrumenting

Slide 22

Slide 22 text

ADOPTING ELIXIR NEW BOOK2

Slide 23

Slide 23 text

See U Next Time @aquarhead