The setup: a bunch of self-described old OO dudes are trying to bust into this FP thing, trying to use the right tools to solve the right problem. Moved to Erlang to help manage the millions of concurrent connections from incoming clients. But aging architecture remained behind that still needed to be accessible by the application. Namely Microsoft SQL server, which Erlang’s odbc module lacked support for modern primitives in SQL, e.g.,
UNIQUE. The choice was therefore made to write a Tabular Data Stream (TDS) driver in Elixr.
Some benefits of Elixr:
Based work on TDS on postgrex. A message is a collection of packets with headers and fragments of payload. The payload is then reconstructed once all the packets are received. Elixr-style pattern matching enables dispatch that makes writing this sort of parser code very simple.
Integrated the Tds library with ecto, which looks like an EDSL for generating SQL queries.
How to create more Elixr developers?
Conclusion: Find the right tool for the job.
Question: How long did it take to do this?
Answer: Team of 2-3 developers working for 2-3 months, including ecto integration.