I am new to Elixir, just started using a few days ago. I come from the PHP / Python background, and right now I have a very large project in hand.
My first option was Python but dealing with concurrency and streaming Golang called my attention at first and then I saw Elixir.
My team has time to learn, so that’s not a problem, my main point is, will Elixir be a viable solution for a web app with a large code base, dealing with streaming, chats and a couple of social network features?
Will Elixir be a viable solution for a web app with a large code base, dealing with streaming, chats and a couple of social network features?
Maybe, probably not worse than python or go.
There is one thing erlang (and by extension elixir) is particularly good at – it’s decoding/encoding binary packets. And it usually comes in handy when dealing with streaming.
If you’re going to offload streaming itself (i e passing through binary stream from disk) to something super-performant (maybe just nginx itself) then elixir/phoenix is superb choice (assuming you’re targeting very large number of users)
Yes, this is a use-case it is entirely suited for and will excel in.
For the ‘streaming’ part then putting a front-loader like nginx for those static music files will be the best thing (regardless of what language or server you use), but elixir/plug/phoenix can handle that fine too (don’t pre-optimize, you can move it later, just get it working for now and you’ll be pleasantly surprised at how well this system performs compared to all the others, even before any optimizations).
From what I have read and experienced, writing Elixir often leads to more compact code and excels for building things like chat systems. I have not personally worked with music or video files yet so I’ll refrain from commenting on that. However, from what other users have posted, there are solutions.
So overall, yes, I encourage you to use Elixir/Phoenix for your project
I would like to thank you all for your feedback, I really appreciate it.
Me and my team will start working on the project with Elixir and will probably use pheonix framework to.
I can update you guys later on with another post ( if you guys want ofc ), talking about our experience using Elixir, maybe something cool will come out of this