DrupalCon Seattle 2019: Real-Time Drupal or: How I learned to stop worrying and love the Elixir

More and more of the web is moving to become real-time web-application. This is made possible with a technology called websockets which allow a standard http request to be upgraded to a stateful persistent connection. This connection allows communication not only of the web-server and browser, but also allows communication between native applications and can even allow a web-application to interact with real-time hardware.

While websockets are awesome, php sucks as websockets. And it is currently impossible to create a websocket connection directly to a Drupal site. Drupal is architected in a way that depends on a http request.

Elixir is a language that was built on Erlang (a language designed for us in telephony applications by engineers at Ericsson). The built in fault-tolerant nature of the language means that it is very well suited for long running application.

Phoenix is a “channel” based framework that was originally built as a next generation Rails for Elixir. Phoenix was born due to limitations in Ruby when dealing with concurrent real-time web-applications. Much like PHP, Ruby is not a language that is well suited for web-sockets. Not because it is not compatible with long running applications, but because it cannot handle the needed concurrency at scale.

Elixir and Phoenix are well suited for real-time web-applications that scale and Drupal is an awesome content management system that scales. Lets discuss how they can be used together.

In this 30 minute session I will explore the technologies and possibilities that building real-time web applications have to offer. My goal will be for the audience to leave with a general understanding of real-time web-applications and how they can enhance a digital experience, but moreover, I want them to know that real-time web-applications are not out of their reach to achieve.

Drupal is a registered trademark of Dries Buytaert.