Hacker News new | ask | show | jobs
by tmat 3225 days ago
Phoenix is completely unnecessary though. I have gone away from it and just use good old Plug and Elixir. Works amazing for me.
2 comments

Different strokes. One of the big Phoenix perks is that using it instead of just raw Plug has very little performance drop off. It's not a Rails vs Sinatra situation.

The Phoenix Channels implementation for websockets and the view layer for web requests are pretty phenomenal IMHO.

Isn't Phoenix just Plug + Ecto + generators and a folder structure? I always saw it as "how to use Plugs" rather than a separate project.
There are some unique bits too. Phoenix Channels is a beautiful, shit-simple pub/sub abstraction on WebSockets and provides both JS and Elixir libraries. And then came Phoenix Presence, which can track shared state (like a user's online status) in a durable and fault-tolerant way.

Both are useful libraries, but the fact that they work in server clusters as well as single-node deployments is the real kicker. That's just how Erlang rolls.

That's just genservers though right? All of this stuff is just Elixir and generally can be done in Elixir in a few lines of code.

We're experimenting with a truly OTP driven web application right now(No API) where we connect the React app directly to the Elixir backend and only persist to a database on log out. Everything else is persisted in memory and run through genservers which are self healing and self hydrating.

Pretty much anything of value in the Elixir ecosystem is "just" genservers. OTP remains the star of the show.