Alvise Susmel's blog on Elixir

In this article, Running Elixir in Docker Containers, I explain how to use Docker to run a development Elixir environment and to run multiple Elixir Nodes over a Docker bridge network.

Any question or feedback is highly appreciated!



@AstonJ Do you suggest (or is it better for the forum) to have one topic about my blog and then one post per article? Is it what you meant renaming the title :wink: ?

Hi @alvises, yep - we usually recommend one thread per blog and then subsequent blog posts to go inside it. This allows users to subscribe to (or mute) the thread :slight_smile:

Alternatively we have a large Elixir Blog Posts thread where you can post your blog posts (or any other blog posts you find of interest).

We may be changing this next year tho - so watch this space :lol:


One of the wonderful things of Docker


One of the wonderful things about Docker


thanks :smiley: Updated. There could be many other language errors, not my mother tongue.

1 Like

thanks @AstonJ. What do you suggest? I think my blog will be mainly about architectures in general with a heavy Elixir flavour. Better to post under the blog posts thread, or a separate thread?

1 Like

It’s up to you :slight_smile: you can post future posts in this thread or the Elixir Blog Posts thread :023:


Cryptocurrency exchanges usually open their realtime feed for free and, like Coinbase Pro, without even having to create an account. This gives us a great way to build an architecture around realtime market data.

In this article we see how to build an Elixir application to get realtime updates from the coinbase websocket feed, handling crashes and disconnections.

1 Like

Counting Real-Time Trades

In the Real-time Market-Data Updates with Elixir article, we have seen how to build a Coinbase WebSocket client and receive real-time trades. A reader asked how many trades we receive per second. In general, the rate of trades depends on the product and the time of day.
In this article we start to see how to aggregate these trades in real-time, using the GenServer behaviour. We’ll build an aggregation process that groups and count the trades.

1 Like

Hey everyone! Happy new year!

Processing Large CSV files with Elixir Streams

In this article I introduce Elixir Streams as a powerful and elegant way to process large CSV files. I compare the greedy and the lazy approach with some memory and cpu benchmarking.

As always, any feedback is really appreciated! :smiley:


Create a High-Availability Kubernetes Cluster on AWS with Kops

This article is mainly focused on DevOps. I show how to create a High-Availability Kubernetes cluster on AWS with Kops and deploy a Phoenix Chat application.

I hope this can be useful to the Elixir community. I find interesting the idea of experimenting and discussing (in further articles) the deployment and update of distributed elixir apps on a Kubernetes cluster.

Please let me know what you think. I’m here for any question :smile:

Distributed Phoenix Chat using Redis PubSub

Hi guys,

In this article we see how to solve an issue we faced in the previous article, scaling horizontally the Phoenix Chat app. We’ll see how to integrate the PubSub Redis adapter to our chat app, and make it distributed.

1 Like

Distributed Phoenix Chat with PubSub PG2 adapter

In this article we see how to cluster Phoenix Chat nodes, using distributed Elixir. We see how pg2 works and inspect how Phoenix efficiently broadcasts the messages in a distributed chat app.


Connecting Elixir Nodes with libcluster, locally and on Kubernetes

In this video we are going to see how to cluster Elixir and Phoenix nodes with libcluster, locally and on Kubernetes using Docker containers.


Download Large Files with HTTPoison Async Requests

Some kind of HTTP requests/responses can lead to memory issues. In this article we see how manage these cases using HTTPoison Async Requests.


Spawning processes in Elixir, a gentle introduction to concurrency

Along with pattern matching, one of the coolest things in Erlang and Elixir is their concurrency implementation based on Actor model. In this article I introduce concurrency and show how we can start making our code concurrent in Elixir, using processes.

1 Like

The Primitives of Elixir Concurrency: a Full Example

Let’s finally put in practice what we’ve seen about concurrency primitives in Elixir!

In this article we see how to use spawn, send and receive to make multiple concurrent HTTP requests, merging the results in a single one. Then we see how to refactor our code with Task, which makes everything easier.

The most passionate will find a small challenge at the end.

1 Like

Elixir Streams to process large HTTP responses on the fly

Wouldn’t be great to process a large HTTP response, in chunks, with Elixir streams? Something like:

|> StreamGzip.gzip
|> Stream.into(!("image.tiff.gz"))

In this first of a two-parts article, we see how to transform an HTTPoison async response into an Elixir Stream, to easily process large remote files on the fly, gaining code clarity and reusability.