by sn41 on 12/29/18, 5:28 AM
I found the concept of affinity used for bunching messages to be a new concept. The other concepts are not surprising, they are the typical engineering solutions used.
One thing I am curious about: how does it compare to how the old postal systems used to handle Christmas and new year loads?
On a lighter note: perhaps you can predictively generate and cache messages at the receiver's end based on their contacts and their style of communication. When a sender actually sends a message, just send one bit across, and the local cache gets flushed and displayed :)
by robertAngst on 12/29/18, 1:40 AM
Interesting how they decide to remove features like 'seen' and 'online' in an effort to prioritize the actual message.
Offtopic- I hate those features to begin with, but I know I'm the product not the customer, and those features are to keep people on the app.
by Jaruzel on 12/29/18, 10:11 AM
Back in the day when SMS text message was the way to send messages to each other over the mobile phone network (in the UK), people would jump the gun by sending 'Happy NY!' messages 5 minutes before midnight, because the moment 12am hit, any messages sent then could be queued for hours as the mobile networks struggled to cope with the massive uptick in messages being sent at the same time.
by sjroot on 12/29/18, 1:25 AM
As someone who typically works on front-end projects, this was a very interesting read. I particularly loved the discussion of “graceful degradation.” That’s the kind of collaboration across the stack that makes a service like Messenger very pleasant to use.
by secabeen on 12/29/18, 1:54 AM
Interesting that the messenger team is ~40 people, as compared to WhatsApp having 32 engineers at the time of their sale to FB.
by ngngngng on 12/29/18, 1:40 AM
I didn't realize message queues were used for this type of task. I'm assuming you would then also use autoscaling pods that respond to the number of messages in the queue. How do you scale pods fast enough for a messaging application or anything else trying for 100ms or less per operation?
by hellofunk on 12/29/18, 8:52 AM
One thing I find very manipulative about Facebook is how, when someone sends you a message, the email notification has a link to open messenger and it says that messenger is the only way you can read that message, even if you don’t have messenger installed. They are trying everything they can do to have everyone install that app. Yet, of course you can just read and respond directly on their website without any app, but they don’t link to that or mention it.
by mrdickbig on 12/29/18, 2:08 AM
I read the title and instantly thought "Erlang"
by porpoisely on 12/29/18, 1:51 AM
Essentially what everyone else does - distributed systems with load balancing, load balancing and more load balancing. And if that goes awry, triage - where they prioritize messages and simply timeout and drop the lower priority messages. Of course the Messenger team is lucky in that they can drop messages since your family and friends missing a "Happy New Years" message isn't the end of the world. Other systems ( such as finance ), aren't so lucky. Drop a few transactions or apply them out of order and it is the end of the world. Was an interesting read, though it would have been nice if there were more specifics but I guess Facebook wouldn't approve that.
by lostmsu on 12/29/18, 1:17 AM
Mine crashes stably on launch right now on two different machines. Therefore not so good :-D
by Markoff on 12/29/18, 11:27 AM
this certainly feel like paid article to bring some good image to Facebook
by dominotw on 12/29/18, 1:52 AM
Cant wait for akward new yr wishes from ppl I haven't heard from since last new year.
by John_KZ on 12/29/18, 2:13 PM
This is a 2018 internet-connected app, not a 1985 GSM network.
1 billion 100 Byte messages sums up to an almost trivial 100GB. This might be a technical challenge for the neighborhood's web admin but not for any real company.