For several weeks I've been thinking about how to go about creating a chat application. After a knowledge drop from Kent Safranski I was inspired to stand-up the chat app using Redis. For the experiment I decided to use Go given the concurrency affordances baked into the language. So I took A Tour of Go and hit the blogs to see what I could find in the open source community.
Reading Redis, Go, & How to Build a Chat Application made me aware of Redigo, a Go client for Redis, and helped demystify use of Redis’ PubSub with Go. The article was a solid introduction and did a great job breaking things down, but ultimately left me wanting a prototype to try things out on the Web. After some more sleuthing on DuckDuckGo I discovered an open source demo app meeting my requirements and providing a great sandbox for experimentation.
In this article I'll cover how to create a chat application which uses Redis and Go by leveraging open source software and Docker, and use Ngrok to expose the app to the Web over HTTPS.