Scaling Mobile Messaging at Airbnb
medium.comThis might be the first use of "turn of the century" that I've seen relating to 2k – it's wonderful, thanks :)
This is the sort of thing that came to mind around the recent Twilio stock price drop driven by Uber's decreased use.
The whole article is about mobile messaging, but SMS isn't involved at all. I understand Airbnb does use SMS, but apparently only for specific use cases.
It's a bid sad, I think, that SMS is being displaced by either in-app messaging services or brand aggregated things like FB messenger. SMS has the advantage that if I don't like my mobile network, I could change providers and not change my address. The whole messaging space is now set to be highly fragmented.
"SMS has the advantage that if I don't like my mobile network, I could change providers and not change my address."
Only if you live somewhere number porting is possible. I live in China, where it is not.
If I switch carriers, I'll have to switch phone numbers, but luckily iMessage, WeChat etc. can be carried to my new phone.
WhatsApp is dongled to ones phone number. Changing the phone number means loosing your WhatsApp account.
Whereas WeChat, iMessage and others aren't dongled to a phone number.
How do the WhatsApp users change their workplace? Do you use your private phone (BYOD)? Or otherwise you are screwed, right(?), when you switch the workplace, you loose your work cell phone number, and your WhatsApp account. Or is there a way to mitigate this?
You can migrate to a new phone number (and keep settings, contacts etc.) but your contacts need to save your new number in their phones. So not seamless like WeChat. iMessage May Ni be straightforward depending on which address you set as your default outgoing address, I use my personal email address, but many people use their phone numbers.
This is not accurate. I move countries a lot and change SIMs (and by extension, phone numbers) and the only time recipients note a number change is when I change handsets. As far as I can tell, new phone numbers are stacked upon the existing user ID which is ostensibly based on the handset (likely the IMEI) and nothing much changes to the recipient until that combination is broken.
Weechat's implementation circa last July left a lot to be desired as it couldn't even federate on its own network - messages I received on my iPad were not present on my Android! Perhaps they've addressed this since but (not to be deliberately contrarian) seamless is far from the adjective I'd use; indeed they seemed miles behind their Western contemporaries and more in the league of Line (another large Chinese messenger application for those unfamiliar). I understand they have a huge Asian user-base so there's presumably a gravity factor, but it certainly didn't seem like they had it together at all.
Are you talking about using temporary SIMs when traveling? In that case there's no need to go through the phone number change process.
If you are permanently changing your phone number, and want new people to be able to send you messages, then I think you need to follow the process here: https://www.whatsapp.com/faq/en/android/27585377
FYI, LINE is from a Japanese company.
I think we're missing something like WeChat that has general appeal across age groups and doesn't come with FB intrusiveness. Well, and the harder part...that has all your friends/contacts using it.
One advantage of SMS I forgot: there's no gatekeeper, so any person/company can send messages without restriction.
And one disadvantage: there's no gatekeeper, so any person/company can send messages without restriction.
Nice read. This is something we wanted to solve for our mobile applications too but we don't get enough traffic (per article, you guys are ~100k msgs/hr) to justify the engineering time required for this.
I don't use Airbnb as often as I should but I'm wondering do you guys have data on the users who simply use text messaging on the mobile devices (or other instant messengers?).
What led to the decision to spend time optimizing mobile messaging within the Airbnb app than just finding an easier path to connect users through text messaging?
Text messaging? No thanks. I need free international communication from my computer, not paid clunky international messaging only from my phone.
Plus they want to censor and control the conversation; private texting is not happening.
What did you end up using ? Have you heard of Layer?
Thanks for the tip, and I'll be sure to mention Layer as a solution if/when we tackle this problem in the future. I just checked their site and it looks very promising.
After trying to find a solution earlier this year with my product manager, we decided to just stick to what we had (which was simply manual refresh in the messaging view by the user), due to engineering time/cost.
Since messaging is not a top priority in the app, we agreed to come back to the problem in the future. However, it is absolutely something I would like to solve given the chance. However, at the end of the day, this kind of messaging solution requires the work of backend engineers which will take up development time.
How is the latency when the app is open and waiting to receive a reply?
From one of the diagrams it sounds like the API requests a delta update if it receives a push notification, but if the user has disabled push notifications, will the client still know to request an update? Also receiving a notification and then using a new connection to request an update is still slower than something like a web socket/long poll connection where new updates are immediately pushed to clients. Would love to hear how this works.
I've only skimmed the article (as of yet), but how is this superior/better than just a dedicated server plus DB for messaging with a simple READ(all), REPLY(to_message) API?
This seems like an interesting technical problem, but I can't help but feel that there's a significantly easier solution available. As a bonus: other than the fact that you can see messages in the app, I wonder how this is better than simply using SMS or a personalized anonymous email address per host-guest pair.
I've seen variants of this particular problem solved so often I'm surprised there's no open source back-end/platform that solves the back-end piece of this.
disclaimer: I haven't worked with anything on this scale, personally.
Read all is simple, but is going to use a bunch of data. With a sync api, they cam justify doing small transfers as they happen (if connectivity is available), so the data is already there when you go to read it. Even if there's no background sync, sync on use can be faster to download than a full load on use, and you may be able to display the stale data while validating.
Sending an SMS costs money, and for many users email isn't as reliably seen as something like an app push notification.
I was referring to what huangc10 suggested with letting users communicate "offline" via SMS. I'm also skeptical that email is less reliable than an app push notification. The post itself even suggests that before they made adjustments to their messaging system there were some unreliability. I'd think that the use of email in the way outlined in the post is a pretty "solved problem".
What monitoring solution do you use these days? You were one of the early NR adopters, but the graph looks like DG. (In case you can share this info.)
Engineer at Airbnb, but unrelated to this launch.
We use both products extensively internally; datadog for custom metrics deployed next to features and alerts in code (https://github.com/airbnb/interferon), and New Relic for opinionated application health/performance and client side monitoring.
Two talks we've done about our usage of Datadog and New Relic (respectively):
https://www.youtube.com/watch?v=MYmVu_IMC20 https://www.youtube.com/watch?v=fd_Kla4f86E
Disclaimer: I'm the presenter in the second talk.
Judging by the picture, that's datadog. https://www.datadoghq.com/
scaling (x) at (x)....snore......
Is this comment really necessary? What's wrong with companies writing articles about how they solved a complex problem?