Tutorials:

Crash course in Elixir 30 Sep 2019
09:00 - 17:00
Chris Bell

VENUE TBC

Are you interested in Elixir, but you haven't yet learned the language? Are you an imperative language programmer who's finding it tricky to get a handle on the functional approach? Do you find yourself wishing that Elixir had a "for loop"?

We've developed a one-day workshop to get you past the learning curve. Starting with the absolute fundamentals of Elixir's datatypes, we'll take you through every aspect of the language that tripped us up when we were learning.

 

OBJECTIVES

By the end of the day, you will be able to confidently solve complex business problems faster and more reliably than you'd have ever believed possible. Learning to build solutions on top of immutable data structures requires a new way of thinking, and we've designed our workshop to get you thinking that way quickly.

 

PREREQUISITES

Some past programming experience in a language such as JavaScript, Ruby, Python, Java or C++.

 

TARGET AUDIENCE

The course is not for complete beginners. You should be comfortable programming in some language, but what language is unimportant. People whose proficiency lies outside the functional paradigm will probably get the most out of the course, but functional programmers who are new to Elixir will find the course to be a useful survey of the main features of the Elixir ecosystem.

COURSE OUTLINE

  • All the built-in datatypes: numbers, binaries (strings), lists, maps, structures, tuples, and atoms
  • Functions: anonymous functions, named functions, and higher order functions
  • Pattern matching: This is a hugely powerful technique
  • Elixir tooling: How our projects are organised, the build system, the dependency management system, the test framework, and the rich documentation system
  • How to model problems using functional patterns instead of Object Oriented patterns

RabbitMQ Express 30 Sep 2019
09:00 - 17:00
Brett Cameron

VENUE TBC

Learn about the main concepts in RabbitMQ in the one day RabbitMQ Express training course taught by the RabbitMQ expert at Erlang Solutions. The training course will cover the following topics:

  • RabbitMQ fundamentals
  • Building systems with RabbitMQ
  • Extending RabbitMQ with plugins
  • Optimising & troubleshooting RabbitMQ

 

PREREQUISITES

Experience in at least 1 programming language of choice (junior, intermediate, senior).

 

TARGET AUDIENCE

  • Software developers
  • Solution architects
  • DevOps engineers

 

OBJECTIVES

  • Understanding AMQP concepts
  • Building distributed messaging systems with RabbitMQ
  • Performance tuning RabbitMQ
  • Deploying real world, resilient RabbitMQ architectures
  • Troubleshooting and monitoring
  • Understanding RabbitMQ internals
  • Customising RabbitMQ with plugins

 

Building resilient distributed systems with Elixir 30 Sep 2019
09:00 - 17:00
Chris Keathley

VENUE TBC

One of the most exciting features of Elixir is its ability to connect multiple nodes together. Because distribution is built directly into the language’s runtime, those of us in the Elixir world have access to a number of powerful abstractions for building distributed systems.

However, distributed Erlang comes with several caveats and warnings. We will demystify some of the warnings while reiterating others.

In this tutorial, participants will get hands on experience with distributed Erlang through building real solutions to real world problems.

You will learn how to harden their solutions against network and hardware failures using a test harness designed to inject failures into clusters. Whilst the goal is to provide an understanding of the primitives available in Erlang and Elixir for building distributed systems, we’ll also discuss some of the popular libraries available in the BEAM ecosystem.

 

OBJECTIVES

  • Provide insights into the tools available for building distributed systems
  • Learn patterns for building consistent and eventually consistent systems
  • Experience the different types of faults that you’ll see in the real world

 

PREREQUISITES

You should have a working understanding of Supervisors, GenServers, and other primitives in Elixir and Erlang.

 

TARGET AUDIENCE

Intermediate Erlang or Elixir developers who want to take advantage of the clustering abilities in OTP.

COURSE OUTLINE

The tutorial is broken into 4 distinct pieces of work. Each section builds on the previous and endeavours to provide real-world scenarios.

  • Connecting nodes, sending messages, and handling faults
  • Building low latency APIs with replication
  • Scaling replication with eventual consistency
  • Taking advantage of your computer by distributing work across the cluster