Subscribe to our Erlang Factory newsletter to receive the latest updates and news

Building Sexy Real-Time Analytics Systems

Louis-Philippe Gauthier
Louis-Philippe Gauthier

In the world of Real-time bidding (RTB), it is crucial to get performance metrics as soon as possible. This is why AdGear build their own real-time analytics system.

In this talk, Louis-Philippe will share with you what he has learnt building this system and he will introduce Swirl, AdGear's lightweight distributed stream processor. He will also give some clues on how to build a subset of SQL to power your distributed jobs.

Talk objectives:
- Introduce Swirl, a lightweight distributed stream processor
- Implement a subset of SQL (lexer + parser + boolean logic)
- Demo real-time graphing web interface powered by Swirl, Cowboy, Bullet and D3.js

Target audience: Anyone interested in real-time analytics, stream processors, SQL, websockets, D3.js and sexy web interfaces

Erlang Rationale

Robert Virding
Robert Virding

Erlang Solutions
While Erlang has much in common with other functional languages it does many things differently from other languages. In this talk one of the three inventors of Erlang will look at the rationale behind Erlang and try to show how many of its important features combine to work together. We will also look at how Erlang was first developed to show the reason for some of the features in the rationale.

Event Handling in Erlang - When is gen_event the Answer?

Adam Kocoloski
Adam Kocoloski

The OTP includes a behaviour for generic event handling that sees regular use in a wide variety of Erlang applications. We will review the implementation, discuss the preferred conditions for a gen_event notification system and the various ways in which it is deployed in Apache CouchDB.  We will also introduce a new application developed at Cloudant to overcome some of the deficiencies of gen_event in dynamic, high concurrency environments.

Finite State Machines - Why Fear?

Mahesh Paolini-Subramanya
Mahesh Paolini-Subramanya

Ubiquiti Networks
Finite State Machines are overlooked at best, ignored at worst, and virtually always dismissed. This is tragic since FSMs are not just about Door Locks (the most commonly used example). On the contrary, these FSMs are invaluable in clearly defining communication protocols – ranging from low-level web-services through complex telephony application to reliable interactions between loosely-coupled systems. Properly using them can significantly enhance the stability and reliability of your systems.

Join Mahesh as he takes you through a crash-course in FSMs, using erlang’s gen_fsm behavior as the background, and hopefully leaving you with a better appreciation of both FSM and erlang in the process.

Implementing a Distributed Process Registry on Riak Core

Christopher Meiklejohn
Christopher Meiklejohn

Basho Technologies
Riak PG is a named process group registry built on Riak Core, a toolkit for building robust, distributed highly-available applications. Riak PG provides a highly-available ""eventually consistent"" view of process groups, leveraging conflict-free replicated data types to guarantee deterministic convergence of the process list. During this talk, we will discuss the design, implementation and unique challenges in implementing Riak PG.

Talk objectives: To provide an introduction to building Riak Core applications using convergent and commutative replicated data types

Target audience: Erlang developers interested in learning about building distributed systems

OTP Rationale

Joe Armstrong
Joe Armstrong

Ericsson AB
What is OTP and why was it created?

OTP is a number of different things:

- A delivery platform for Erlang and the Erlang VM
- A large set of general purpose libraries
- A set of design patterns
- A set of design documents
- A way of working

OTP was designed to meet the demands of large organisations. It was the third rewrite of a set of libraries and procedures used to develop complex Telecoms applications.

This talk delves into the history of OTP and tries to explain the rationale behind OTP.

Speaking Locally

Christian Gribneau
Christian Gribneau

Ology Media
At Erlang Factory San Francisco, 2013, a simple mechanism for tracking user location and finding others nearby was presented and contributed as open source. That presentation is extended with XMPP integration (Mongoose IM) for Presence and WebRTC for videochat.

The resulting application tracks presence of users within a geographic area and enables videochat between them.

Talk objectives: Emerging technology (WebRTC) is combined with established systems (Mongoose IM, Mochiweb, Google Maps, Twitter Bootstrap, Redis) to quickly produce a location-aware audio / video communications platform. Licensed MIT.

Target audience: anyone interested in using Erlang to fuel the next generation of rich personal communication over the internet. The source code of the demonstration application will be available on github and licensed MIT.

WebSockets, RabbitMQ & Erlang @ the Huffington Post

Adam Denenberg
Adam Denenberg

Huffington Post
In this talk, you will learn about the architecture and setup that the Huffington Post built to power their realtime websocket based commenting framework.  Leveraging RabbitMQ, SockJS, Cowboy and Erlang, they were able to build and design a highly scalable, customizable solution to power realtime comments.  You will learn about some of the pitfalls they hit, as well as some of the improvements they would like to make to take their platform to the next level.

Talk objectives:
- Understanding why we chose to go the Erlang and SockJS route for our commenting platform
- How we integrate RabbitMQ routing to power our subscription architecture
- How we manage subscriptions for realtime ""channels"" 
- Extending the framework into an open source solution
- Enabling other mechanisms for publishing comments outside of RabbitMQ

Target audience: For people interested in leveraging Erlang to power a realtime capability on their web applications, this talk will provide oversight into what we learned in the last year, how the pieces of the architecture fit together and how you might customize a websocket solution to suit your needs.

Why Heroku (still) uses Erlang

Fred Hebert
Fred Hebert

Heroku runs a cloud platform composed of heterogeneous components (written in Ruby, Erlang and Go to name a few). A large part of its routing stack, specifically, is written in Erlang. In this talk, we will be discussing the reasons why Heroku initially chose Erlang, but mostly the reasons and characteristics of the platform explaining why it is still being used there after many years.

Talk objectives:
- Introduce general practices used when programming Erlang at Heroku and for distributed systems in general
- Highlight parts of the language, system, and ecosystem that are favorable for Heroku's uses of Erlang
- Expose a few tips and tricks required when Erlang doesn't always work the way we want

Target audience:
Erlang developers, team members or onlookers looking for more information or experiences on developing real world distributed Erlang systems.