Designing Elixir systems with OTP : write highly scalable, self-healing software