Realtime and Go

“A better C, from the guys that didn’t bring you C++”

This is a talk I built for the amazing RealtimeConf Europe conference (you can read my writeup of the event), but I practised it on students at the University of Buffalo first. Following RealtimeConf Europe, one of the attendees asked me to give the talk for the XMPP UK meetup.

The talk is supposed to be an introduction to Go for people familiar with realtime web programming. The term “realtime” is a bit loaded, so in this context, we’re using it to describe websockets, push notifications, and anything that gets content to users as quickly as possible. Your definition may vary.

The core thesis of this talk is that realtime is, at its core, a concurrency problem. You need to, at the very least, subscribe and unsubscribe listeners, and you need to notify them of events. Two independent tasks, so we’re talking about concurrency. From this premise, it follows that Go’s concurrency primitives and support make Go a great option for making realtime web applications. I went on to give a concrete demonstration, walking through the source code for a demo that I had made.

The first iteration of this talk was given to UB students at their ACM meetup. You can view a video of it. The talk was rewritten from scratch following this experience, as I was unsatisfied with it.

The next iteration of this talk was given at RealtimeConf Europe. You can view a video of it. This is, more-or-less, the final version of the talk. The slides are available at

The final iteration of this talk (a slide was removed) was given for XMPP UK. You can view a recording of it (my talk starts around the 1 hour, 35 minute mark).