sas99

sas99

I try to create chat services for mobile chat app like whats app for about 1 Billlion users, so I do know which language best for me, golang or elixir, any idea?

Showing Posts 1 to 10

JeyHey

JeyHey

WhatsApp’s backend is implemented in Erlang and the WA lead developer attributed the fact that they could serve 500mio users with a team of only 30 people to their technology stack. So there is no doubt that Erlang and therefor also Elixir is a great choice for a chat backend.

The more important question is what protocol to use, e.g. MQTT or XMPP. VerneMQ and MongooseIM are great open source servers for these protocols.

sas99

sas99 OP

tnx so much for ur answer, which protocol is best for it?

t12a

t12a

There has been blog posts on Discord regarding Elixir as Backend. They’ve also extend some of their services with Go and Rust using NIFs but eventually favors Rust.

Check out their blog posts:

halturin

halturin

Pls, don’t mention “Why Discord is switching from Go to Rust” - comments there expose why. TLDR - its an absolutely inadequate attempt to use golang.

upd: seems they changed their blog platform. all comments disappeared. the main issue was taking a super old golang version (i don’t remember all points mentioned in that comments, but there were a lot of them)

JeyHey

JeyHey

Difficult to say. XMPP is a complex protocol with a lot of features. I have used it for a hobby project and it takes time to handle it. XMPP is also the protocol that WA kind of used as a base for their custom protocol. I heard the Facebook messenger uses MQTT. MQTT is more light weight. I have no experience with but I would give it a try if I needed messaging in a new project.

sas99

sas99 OP

which one is best, XMPP or MQTT. Which is more efficient in projects?

Skysoft13

Skysoft13

you can use both, they are not related to each other, and they can work independently and simultaneously, and XMPP is messaging protocol and MQTT is pub sub protocol.

al2o3cr

al2o3cr

“Best” depends on what the project needs. As @Skysoft13 pointed out, these two technologies aren’t even used for the same things. Imagine asking a similar question about things in the physical world: “which vehicle is best, trains or cars. Which is more efficient in transportation?”

AstonJ

AstonJ

Why not use the same as them? :003:

WhatsApp is arguably the busiest, most stable chat app ever created - and they use Erlang. Elixir runs on the Erlang VM :smiley:

Where Next? Top

Trending in Discussions Top

AstonJ
As the title says, please share what you’ve been up to with Elixir. Whether that’s been learning it, looking into it, making stuff with i...
2977 94592 917
New
cblavier
Hey there, It’s been more than a year since we started using LiveView as our main UI library and building a whole library of UI componen...
New
mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
heathen
Quite interesting article Google brought me. Didn’t find any mentions about it here. What do you think in general? Would you use togethe...
New
mhanberg
Hi everyone! The first release candidate for the Expert language server project is now available! We’ve published a press release detai...
New
AstonJ
Since we have deprecated our Erlang sections (as we have dedicated Erlang Forums now) let’s add this thread for those who’d like to post ...
New
maennchen
:warning: Security advisory: Decimal DoS vulnerability A vulnerability has been published for decimal where very large exponents can cau...
New

Other Trending Topics Top

marciok
Hi there! We created Gust: A task orchestrator inspired by Airflow. For those who have never heard about Aiflow, it’s a Python-based wor...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
Dmk
Xamal is a deployment tool for Elixir apps that deploys native releases to bare metal servers over SSH. It’s a port of GitHub - basecamp/...
New
netoum
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
webofbits
With AI doing more of the implementation work, I’ve been wondering how much coding I should deliberately keep doing myself. My main conc...
#ai
New
webofbits
Aludel - LLM Evaluation Workbench Aludel is an embeddable Phoenix LiveView dashboard for evaluating and comparing LLM prompts across mult...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews