Upgrade to Pro — share decks privately, control downloads, hide ads and more …

SE4FP - Elixir in Production - 2026

SE4FP - Elixir in Production - 2026

Avatar for Elaine Naomi

Elaine Naomi

September 07, 2026

More Decks by Elaine Naomi

Other Decks in Programming

Transcript

  1. ELAINE NAOMI WATANABE Software Engineer/Developer (since 2008) Staff Software Engineer

    (since 2023) B.Sc. in Computer Engineering M.Sc. in Computer Science speakerdeck.com/elainenaomi Photo edited by AI :) linkedin.com/in/elainenaomi slides available on
  2. This IS NOT a presentation about the adoption of the

    Elixir functional programming language.
  3. It's about the CHALLENGES of developing and evolving Elixir systems

    in production FOR YEARS And I believe this applies to other languages as well
  4. Phoenix — web and API Users Ecto PostgreSQL Basic Web

    Application E PL M A EX Elixir Application
  5. Observability Telemetry Grafana Elixir Application Phoenix — web and API

    Users Observability Ecto More dependencies Oban — asynchronous jobs Data PostgreSQL Redis
  6. Users Load Balancer Kafka Observability More dependencies More external services

    Greater scalability Higher data volume Web deployment Deployment worker Web 1 Worker 1 Worker 2 Ecto Ecto Phoenix Ecto Web 2 Phoenix Ecto Telemetry Grafana Datadog Oban Oban Broadway Broadway External APIs Stripe, S3, SendGrid BEAM cluster Shared data PostgreSQL Redis
  7. Users Load Balancer Kafka Observabilidade Web deployment Deployment worker Web

    1 Web 2 Worker 1 Worker 2 Phoenix Phoenix Ecto Ecto Ecto Ecto Telemetry Grafana Datadog Oban Oban Broadway Broadway APIs externas Stripe, S3, SendGrid BEAM cluster Shared data PostgreSQL Redis More developers
  8. Users Load Balancer Kafka Observability Web deployment Deployment worker Web

    1 Web 2 Worker 1 Worker 2 Phoenix Phoenix Ecto Ecto Ecto Ecto Telemetry Grafana Datadog Oban Oban Broadway Broadway External APIs Stripe, S3, SendGrid BEAM cluster Shared data PostgreSQL Redis And AI Agents
  9. Users Load Balancer Kafka Observability Deployment web Deployment worker Web

    1 Web 2 Worker 1 Worker 2 Phoenix Phoenix Ecto Ecto Ecto Ecto Telemetry Grafana Datadog Oban Oban Broadway Broadway External APIs Stripe, S3, SendGrid BEAM cluster Shared data PostgreSQL Redis Topic for another presentation :) And AI Agents
  10. ON TI TA AP AD Language documentation, examples, prior knowledge

    of other stacks, etc., help mitigate this problem. People who already program in other languages.
  11. A lack of familiarity with Elixir/OTP and with patterns can

    unnecessarily increase code complexity and lead to anti-patterns
  12. Yes, you can hire developers who know NOTHING about Elixir

    or functional programming but who already program in other languages
  13. How do we train Elixir specialists? We have good options,

    but there are still few compared to other languages
  14. How do we train Elixir specialists? Who should invest in

    this? Companies, universities, developers?
  15. What about those who are just starting to program? How

    can we train juniors if the content is only for professionals?
  16. What about those who are just starting to program? How

    can we build teams with developers at different levels: junior, mid-level, senior?
  17. |>

  18. 54.2% of Mix packages in hex.pm DID NOT receive a

    new version in the last 3 years ~9.9 thousand packages Exploratory analysis based on packages with build_tool: mix available in Hex on 02/09/2026.
  19. What if your system needs a change from a specific

    library? What to do in this case? Fork?
  20. What if your system needs a change to a specific

    library? And what about the additional time/cost to maintain a fork?
  21. JavaScript (npm) 2.7 million Python (PyPI) 885 thousand The gap

    becomes even Java (Maven Central) 808.6 thousand more apparent when compared to other Ruby (RubyGems) 196.7 thousand languages Elixir (Hex / Mix) 18.2 thousand
  22. JavaScript (npm) 2.7 million Python (PyPI) 885 thousand Java (Maven

    Central) 808.6 thousand Ruby (RubyGems) 196.7 thousand Elixir (Hex / Mix) 18.2 thousand 10x more packages than Hex.pm (Mix)
  23. |>

  24. How do you know what the expected behavior is in

    production? For example: memory consumption, CPU usage, etc.
  25. How can you tell if it's a problem with the

    company's internal system or a common problem in the language/ecosystem? Lack of knowledge + familiarity
  26. How can you tell if it's a problem with the

    company's internal system or a common problem in the language/ecosystem? We need more content on: DevOps best practices + BEAM
  27. How can you tell if it's a problem with the

    company's internal system or a common problem in the language/ecosystem? Patterns + Anti-patterns · Lessons learned · Benchmarks · Profiling