3 ms·
Hey that’s awesome. I’m also learning elixir and I deployed ejabberd for chat. I switched to phoenix channels for chat to have a lot more control. What are your
by mradek 4y ago
Hey that’s awesome. I’m also learning elixir and I deployed ejabberd for chat. I switched to phoenix channels for chat to have a lot more control. What are your thoughts on that? Any suggestions or articles or code repos you can link me for inspiration?
Fwiw I was using firestore for real time before since it was easier. Now I like phoenix channels (I’m still struggling with the language truth be told, but it makes sense after reviewing at the code like eight times).
My app (social app, still wip) is currently using flutter for the mobile apps, a nodeJS backend for the rest APIs, and a phoenix server for the chats. I’d be interested to have a discussion if that’s okay.
- julienmarie 4y agoHi @mradek. This ejabberd system was around 10 years ago, before websockets. Haven't built a chat system since but Channels would be perfect for it, especially in a multi platform context. If not I'd go simple and just use LiveView on the front and pubsub on the back. The ejabberd system was great at the time but lacked flexibility. But I think we saved at least 3 months of dev thanks to it. I see you are using 3 languages, that's a lot of things to coordinate and keep in the brain. May I ask why you use node for the rest API and not elixir ? That would simplify things a lot. Sure you can email me at jm at producture dot com
- mradek 4y agoThank you, I will def reach out. I am using 3 languages because I originally started this project using nodeJS+pg backend + flutter mobile apps. I've been experimenting with a lot of stuff as well, at one point switching to Go because I had some CPU heavy stuff, but I find myself going back to nodeJS because I'm most productive in it and I feel that its performance (I/O wise, since I'm doing DB or API calls) to dev time ratio is pretty good especially considering the number of well made dependencies and SDKs available. I am still a noob at elixir (only a few days of total experience), so maybe some day I might migrate the REST API over. However, Phoenix channels are amazing and for that piece of the overall system I think I am happy to have stumbled upon it. I found that using phoenix channel API is a lot easier to work with both from server perspective and flutter client side. I need to figure out the proper way to auth (right now just auth'ing on socket connect against my nodeJS API, then continue). My backend is super modular, feature wise, so I can swap out any piece for something better easily. I been working on it since May :D