The goal of benchmarking is to understand the performance of our system and how to improve it. When we are making benchmarks, we need to make sure that they match real world usage.
In my post on Benchmarking Phoenix on Digital Ocean, changing the concurrent connections and network latency had …
GenServers are the standard way to create services in Elixir. At it's heart, a GenServer is a separate process (thread) that receives messages, does some work, manages state, and sends responses back. If that's what you want, great. It's important to recognize, though, that a GenServer only handles one request …
A prospect recently asked me what the advantages are of Elixir over Golang.
The simple answer is productivity. You get the best of both worlds: the productivity of a high level language with the scaling power of the mature Erlang platform. For financial and health care applications, there is also …
Here are the slides for the presentation on incrementally migrating large Rails apps to Phoenix I gave at Ruby Elixir Conf Taiwan 2018.
Someone asked this question on the Elixir Forum. Following is my answer:
When I first saw Elixir, we were developing websites (e-commerce, CRUD, etc) with Ruby on Rails, Python, and PHP.
We were using Erlang for the “tricky bits”, e.g. IoT and real time web, and liked it a …
Years ago we were building an embedded vehicle tracker for commercial vehicles. The hardware used an ARM7 CPU, GPS and GPRS modem, running uClinux.
We ran into a tough bug in the initial application startup process. The program that read from the GPS and sent location updates to the network …
Applications like health care and financial services require high security and data privacy. When security is critical, there are benefits to separating the web front end from the back end using a well defined API.
In traditional applications, the web application talks directly to the database. If an attacker compromises …
Over the years we have done lots of projects where we migrated an application from one platform to another. We might do this to solve performance issues or to switch to a better technology stack. This can be a challenge when you have a big app that is in production …
- db migrations
- functional programming
- graphical design
- know your customer
- rate limiting
- static assets
- user experience
- user stories