Game of Life with Processes and Channels

I recently wrote two articles about implementing Conway’s Game of Life in Elixir and Phoenix!

The first article was really a personal exercise to practice “thinking in processes.” The life application is implemented as a vanilla Elixir project. Each individual cell is represented as a GenServer, managed by a :simple_one_for_one supervisor, and discoverable through a Registry.

The second article threw that life project under an umbrella application along with a Phoenix project. The life simulation was wired up to an HTML5 canvas using a really basic Phoenix Channels implementation.

One of the big takeaways I wanted to show was how valuable it is to build the core of your project in a completely decoupled way, and how painless Elixir can make this process.

Check them out, and let me know what you think! Hopefully they help you out in some way, or give you a few good ideas.