Digests » 77


Firestorm: An Open Source forum in Phoenix from ElixirSips by Josh Adams

DailyDrip is rebooting ElixirSips by building a production Phoenix-based Forum engine - Firestorm - and we're running a Kickstarter right now to help make it more awesome. In addition, we'll be producing a month of free daily content to take someone through the basics of Elixir, OTP, Ecto, and Phoenix as a thank you to all of our subscribers and backers.

this week's favorite

Using Ecto.Multi for Complex Database Transactions

Recently, we worked on a client project that required sending over a number of fields to the server during user registration. Some of these fields (email, password, etc.) were part of the user schema and others with other schema. Since these other schema depend on user, we would have to nest conditional transactions in our RegistrationController, which would provide potential for multiple points of failure. Rather than nest these conditional transactions, we wanted to be able to easily sequence our transactions and match on errors and failures. The following is an explanation of how we used Ecto.Multito make this easy.

How Discord handles push request bursts of over a million per minute with Elixir’s GenStage

Discord has seen tremendous growth. To handle this growth, our engineering team has had the pleasure of figuring out how to scale the backend services. One piece of technology we’ve seen great success with is Elixir’s GenStage.

GenStage vs C# TPL Dataflow

José Valim answers a difference between GenStage model of concurrency and approaches that C# takes with Task Parallel Library.

Lightweight Docker Images in 5 Steps

Deploying your services packaged in lightweight Docker images has many practical benefits. In a container, your service usually comes with all the dependencies it needs to run, it’s isolated from the rest of the system, and deployment is as simple as running a docker run command on the target system.

Elixir, Ruby, don’t fight. Benchmark!

Now we know how to talk to Ruby from Elixir. We’ve been described 3 methods so far. Now it’s time for comparisons and benchmarks. If you want to benchmark it yourself you can use the application in this repository. Let’s start!