One of the issues with nodejs is that you're stuck to one process which is single threaded. IE: you're stuck to one core. Yes there are systems like clustering which relies on a master process spawning slave processes and communicating over a bridge but in my experience, its pretty janky.
You're making a great move by trying out elixir. It solves a lot of the issues I ran into working with nodejs. Immutability is standard and if you compare two maps, it automatically does a deep evaluation of all the values in each tree.
The killer feature however is liveview. Its what meteor WISHES it could be. realtime server push of html to the dom and teh ability to have the frontend trigger events on the backend in a process thats isolated to that specific user. Its a game changer.
Anyways, if you're looking for resources to learn. pragprog has a bunch of great books on elixir. Thats how I got started.
You might find an interesting (albeit more complex) entry point by interacting with Phoenix Channels from your Node.js app using the Channels Node.js client [1] and within the frontend itself.
[0]: https://hexdocs.pm/phoenix/channels.html [1]: https://www.npmjs.com/package/phoenix-channels
The new LiveView book is great if you're interested in going fully into Elixir (server/client basically). I use LiveView for my product and it's great.
For a good introduction to Elixir, I loved Elixir in Action which also covers OTP.
If you want a good Phoenix resource, the book Programming Phoenix is good.
Finally, the docs in Elixir and Phoenix are great.