Dx - a pragmatic inference system based on your Ecto schema
Having started making web apps with Ruby on Rails during high school in 2005, I started my professional career in 2012 as CTO at Tame, and built a search & aggregation engine for Twitter. I’ve since worked as Ruby developer in various Berlin start-ups, then switched to Elixir in 2016/2017. In 2021, I have started working as a freelancer for Team Engine, where I have been given the opportunity to develop Dx (previously called Infer) to tackle the various contract and overtime specifics in the film & TV industry.
Dx is an Elixir library that allows adding inferred properties to Ecto schemas, defined by rules based on fields, associations or other inferred properties. You can then load/query them as if they were Ecto fields or associations using Dx’s API. It allows you to write declarative and easy-to-read domain logic by defining WHAT the rules are without having to care about HOW to execute them. Under the hood, Dx’s evaluation engine loads associations as needed using dataloader and can even translate your logic to Ecto queries directly. Dx can be used for various use cases, from authorization to state machines, and excels in areas where a lot of (edge) cases need to be respected.
Status: Dx has been used in production internally at Team Engine since April 2021, but is still in the early stages as a ready-to-use library.
Want to work on Dx with us? https://tinyurl.com/engine-infer-dev