Google Cloud Messaging

2012 - 2019
dead
announced at google i/o on 27 june 2012 as the replacement for android's c2dm service, gcm was the thing that actually delivered your notifications for the rest of the decade. a developer's server posted a message to a google endpoint, google held it until the handset checked in, and the notification appeared. google bought firebase in 2014, rebuilt gcm inside it as firebase cloud messaging in 2016, and put a twelve-month clock on the old apis in april 2018. the gcm endpoints stopped answering on 11 april 2019.

~ the obit ~

A push notification on Android was never sent to your phone. It was sent to Google. The app's server posted a small payload to an endpoint, Google held it, and the handset picked it up over one long-lived connection that Play Services kept open for everything on the device at once. Google Cloud Messaging was that endpoint from the summer of 2012 until the spring of 2019.

The important detail is that it cost nothing. There was no per-message price and no send-rate quota after the early days, with a 4 KB payload allowance that covered anything worth waking a screen for. A two-person app could send the same volume of notifications as a bank. That decision, more than any feature in the API, is why an Android phone in 2015 could hold sixty apps and still survive a day on battery: sixty apps, one socket.

Google announced GCM at I/O on 27 June 2012, the same week Android 4.1 was shown. Chrome support arrived in May 2013 and iOS support at I/O 2015, at which point a service named after one operating system was carrying notifications for the other one. Then Google bought Firebase in October 2014, and the countdown started without anyone calling it that.

I never wrote a line against this API. I was on the receiving end of it, the same as every other Android user in Ankara, and the only time it entered my awareness was when Play Services turned up at the top of a battery screen and got blamed for something it was in fact preventing.

~ the rap sheet ~

Born27 June 2012, announced at Google I/O alongside Android 4.1
PeakMid 2010s, the default push path for effectively every Android app outside China
Killed11 April 2019
Lifespan6 years 9 months
Made byGoogle, Android team
Killed byFirebase Cloud Messaging absorbing the whole service

~ before it had a name ~

GCM's predecessor was Android Cloud to Device Messaging, C2DM, which shipped with Android 2.2 in 2010. It was a Labs-grade thing. You applied for access and got a quota small enough that a popular app could exhaust it on a normal day. It also made you keep your own account credentials in the sending path, which aged badly.

C2DM was deprecated on 26 June 2012, one day before GCM was unveiled, and switched off for good on 30 July 2015. The migration guide went up immediately. It required an SDK change, a code change and a new release pushed through the Play Store, which is the part developers remember, because they would be asked to do all of it again seven years later.

~ the china problem ~

GCM rode on Play Services, and Play Services is blocked in mainland China. So the single-socket design that kept the rest of the world's phones alive simply did not exist there. Every Chinese Android app maintained its own persistent connection instead, and when the operating system killed those connections to save power, the apps learned to wake each other up in rotation so that at least one of them was always running.

This was a real hardware tax, paid in battery and in mobile data by people who had no idea it was happening. In October 2017 the Ministry of Industry and Information Technology convened a Unified Push Alliance with 74 members, Huawei and Xiaomi among them, to build the thing GCM had been giving away for free everywhere else. Huawei, Xiaomi and the rest went on to run their own push services, and a Chinese Android app still ships with several of those SDKs bundled inside it.

~ the day it died ~

Firebase Cloud Messaging was announced at I/O in May 2016 as the next version of GCM, and for two years both names pointed at the same infrastructure. On 10 April 2018 Google published the post that set the date: the GCM server and client APIs were deprecated and would be removed on 11 April 2019. Existing device tokens would keep working under FCM, so the users lost nothing, but every server and every app had to be updated.

Plenty were not. When the endpoints stopped answering in April 2019, the apps that broke were the abandoned ones and the internal builds nobody owned anymore. Their notifications just stopped, with no error visible to the person holding the phone. A dead push service does not show you an outage. It shows you silence, and you assume nobody has written to you.

~ leave a rose ~

an anonymous tribute. one rose per visitor per day.

@}-->-- ... roses left here

~ leave a wreath ~

a rose fades by morning. a wreath stays on this grave for good, with your name on it.

paid once through stripe. payments are handled by OÜ Lakeview, the small company that keeps rip.so running. the money pays for the hosting and the nightly digging. adopt it and the headstone reads "maintained in memory by" you. the groundskeeper plants new wreaths at the next tending, usually within a day.

» one email a week: new graves and the anniversaries of the dead. subscribe

~ leave a note ~

visitors before you have left these graveside notes. anonymous welcome.

other protocols: anon.penet.fi, Google OpenID 2.0, WEP, Atom Publishing Protocol

also died in 2015-2019: Yahoo Squirrel / Yahoo Together, Windows Live Photo Gallery, Hacking Team

« previous  ·  random  ·  next »