
Scaling Mobile Messaging at Airbnb - knighthacker
https://medium.com/airbnb-engineering/messaging-sync-scaling-mobile-messaging-at-airbnb-659142036f06
======
codezero
This might be the first use of "turn of the century" that I've seen relating
to 2k – it's wonderful, thanks :)

------
tyingq
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.

~~~
rahimnathwani
"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.

~~~
frik
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?

~~~
rahimnathwani
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.

~~~
0xADEADBEE
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.

~~~
rahimnathwani
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](https://www.whatsapp.com/faq/en/android/27585377)

------
huangc10
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?

~~~
krashidov
What did you end up using ? Have you heard of Layer?

~~~
huangc10
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.

------
varenc
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.

------
tabeth
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.

~~~
lucasmullens
Sending an SMS costs money, and for many users email isn't as reliably seen as
something like an app push notification.

~~~
tabeth
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".

------
frik
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.)

~~~
tuckerman
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](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=MYmVu_IMC20)
[https://www.youtube.com/watch?v=fd_Kla4f86E](https://www.youtube.com/watch?v=fd_Kla4f86E)

Disclaimer: I'm the presenter in the second talk.

------
rdxm
scaling (x) at (x)....snore......

~~~
lucasmullens
Is this comment really necessary? What's wrong with companies writing articles
about how they solved a complex problem?

