Hacker News new | ask | show | jobs
by tiffanyh 1108 days ago
Dumb question: why does Apollo need their own backend API when isn’t Apollo just a different view/UX for Reddits own API?

https://github.com/christianselig/apollo-backend

6 comments

So I do primarily App/Extension development, and I've been doing it for about 15 years now.

The short answer: You must have an interface you control, because app store review times mean there is no "hot fix".

When something upstream of the client breaks - you are DAYS (assume 24 to 48 hours for review, after you fix the bug) from being able to get a new client in front of users, and several weeks out from having all of your users (all being some accepted percentage - I use ~95% for my releases) actually update to the latest version.

If that "something upstream" is you - you can usually plan for it, release the updated client ahead of time, get it rolled out, then pull support for the old feature.

If that "something upstream" is reddit... They break things, and they might (but probably won't) inform you ahead of time. You will have many, many more outages.

Saved many long outages by being able to push quick dirty fixes to upstream APIs from our middle/server layer that depended on 3rd party APIs.

Also a place to pull in any access keys needed for other services if they connect to so it doesn't sit in the client code.

All the comments in this thread are right. This specific scenario was about providing a consistent experience. All the work that this backend does could be done using iOS’ background updates, but:

1. Those aren’t consistently scheduled 2. They have an extremely tight deadline (and sometimes Reddit can be a bit slow)

Making it server side means we controlled that experience better.

I can take a guess - it allows you the flexibility of doing things the way you want it without having to update the app. You can make non-breaking changes to handle things/issues or implement workarounds/optimisations without the user realizing anything.
This is only used for the push notifications in the subscription version of Apollo. I haven't checked the code but it probably polls the Reddit API with the users OAuth token and sends a push to the Apollo app if new activity is found.
I believe it's mostly for push notifications
Mobile notifications is one reason that springs to mind.