Oh my gosh, so sorry on the delay here! I don’t know why I didn’t get notified.
Migrating any old code base to a new code base is incredibly challenging. I did 2 Ruby → Elixir extractions out of the monolith. The most challenging part was indexing literally every single feature / quirk and making sure the new service handled it correctly. It is very easy to miss an item and then introduce a bug.
More generally, adopting Elixir required getting the “non-negotiables” in place. For example, making sure observability, logging, data access, networking, security, framework (we had an internal Ruby framework that we emulated to Elixir), etc. A lot of work went into that, but it was copyable between future apps!