> For some quick math, Apollo has well over 100K active users. The server polls Reddit approximately every 6 seconds, so that's 10 requests per minute per user, or 600 requests per hour per user (assuming they only have one account and one device). At 100,000+ users, that's in the realm of 60 million requests per hour that my server would have to handle, not to mention parsing the results, coordinating tokens, etc. I really can't do that for nothing, so the plan was to offer push notifications with a small fee associated to cover these ongoing server costs.
> I guess there's an analogy um the way Reddit notifications work just for your
inbox like you got a message or something um they work in so far as if I the developer of the app want to um say make sure that you get that notification within 10 seconds I have to be checking Reddit every 10 seconds to go like is there anything new is there anything new? is there anything new? is there anything new? okay. There is okay I'll tell is there anything new and then just repeating that at nauseam so you can imagine if you get a message once a week I'm checking every 10 seconds and then once during that whole week I get that message and then I can send it to you um so 99.99 of those API calls were wasted so we've talked to Reddit like that my friend who works on my server um and myself and I've said like what would be so much better is if we could just kind of keep like a port open with Reddit and say like you just tell us when there's a notification ready and we'll beam it off we don't have to bug you all the time and it's logical right and that's how a lot of services do it it's like an event-based API and um that's just not something reddit's ever uh given us
He's making a lot more than 345 calls per day per user.
I see you making this claim in multiple comments that he's making 600 API requests per user per hour to check for notifications, but this doesn't make sense to me. As you said, 100k users would result in 60 million API requests per hour, which would be about 43 billion API requests per month. I've seen pricing of $0.24 per 1k calls, so that would be $10 million per month, not $20 million per year. And that's just for this notification thing, which he could theoretically kill as a feature if that's 99% of the problem.
> On March 14th, Apollo made nearly 1 billion requests against our API in a single day, triggered in part by our system outage. After the outage, Apollo started making 53% fewer calls per day. If the app can operate with half the daily request volume, can it operate with fewer?
(note: 53% less calls is about going from a 6 second window to a 10 second window)
Note also that 100k users is the user base at that time and 1.3 is when the subscription ($5/month) was added for push notifications. He noted that that would be something that he would have to pay to support for a server to do those requests. It is quite likely that the number of users who are signed up at $5/month for push notifications is less than the total user base.
Having dabbled with the API, if he is doing push notifications on a short time window, he's making a call with at least that frequency.
> Wait, why does it cost money? I already paid for Pro!
> Apollo Pro unlocks extra features and is a one-time fee, but Apollo Ultra includes a notification server that has ongoing monthly costs to me (the developer) to rent and maintain that add up and can't really be covered by the fee associated with Pro (especially when trying to keep Pro affordable at a few bucks). I'd love to give it away as part of Apollo Pro, but I don't want to potentially jeopardize the future of Apollo. As a result I also tried to keep the price very reasonable at under a dollar a month.
And yes, the price went up when you look at the current in app purchases that are displayed on the App Store page.
Linking to Reddit admin posts isn't going to do you any favours. The Apollo dev has addressed, acknowledged, apologized, and fixed that March 14th problem and it's all detailed in his post [1]. He has given everyone the receipts, phone recordings, source code, and emails detailing his conversations with Reddit. There is no reason that I've seen to not take his word at face value or think he's trying to mislead people or make Reddit look bad for bogus reasons.
The Reddit admins have done nothing but lie and try to bend the truth and I would never trust their word after this debacle. Christian has far more credibility than the Reddit admins do at this point and their "well Apollo reduced usage by 50% one time with a 24 hour turnaround so that means their app sucks and surely they can do it again if they tried a little bit!" argument is, for lack of a better word, bullshit.
That isn't how software works, Reddit knows software doesn't work that way, and it's such a ridiculous conclusion to come to that I don't even know if it's a fallacy that has a name but the Reddit admins are definitely not arguing in good faith on this.
> There's no limit (but please be reasonable). If you have a main account and five alternate accounts, and an iPhone and two iPads, you can get notifications for all of those accounts on all of those devices for the same fee.
With 50k subscriptions that he needs to refund the floor on this is that he's doing 432M requests per day for the push notification server.
If that is one request every 6 seconds instead of 10 (as described in the 1.3 release) that is 720M requests per day for a floor.
The backend server for Apollo handling push notifications is doing something with some consistent load that is likely showing up on the same API key as the mobile client app is.
When the backend server and the mobile app are taken in aggregate, the description that Reddit sees about how many requests per day the API key for Apollo makes is in rough agreement with those floor numbers plus what one would expect a mobile human user the doing.
I suspect that with the outage that the push notification server was scaled back from 1 request every 6 seconds to 1 request every 10 seconds because the backoff for the push notification server was not working leading to an excess of calls and an increase in the server load and egress causing an increase in the amount the node was going to get billed at. I admit that is pure speculation.
From Reddit's point of view, they only see "this request was made with this API key in the header" and can't distinguish mobile app calls from push notification server calls. When they say "this is how many requests that Apollo is making" they are looking at that number. When Christian is saying "Apollo is making X calls per day on average" he is referring to the mobile app requests (which are more efficient than Reddit's mobile app) and not including other uses of the API key.
The backend server push server is a bit more active at about 600 calls/hour/user.
https://www.reddit.com/r/apolloapp/comments/9l3ema/apollo_13...
> For some quick math, Apollo has well over 100K active users. The server polls Reddit approximately every 6 seconds, so that's 10 requests per minute per user, or 600 requests per hour per user (assuming they only have one account and one device). At 100,000+ users, that's in the realm of 60 million requests per hour that my server would have to handle, not to mention parsing the results, coordinating tokens, etc. I really can't do that for nothing, so the plan was to offer push notifications with a small fee associated to cover these ongoing server costs.
That 345 calls/day is again mentioned https://youtu.be/Ypwgu1BpaO0?t=1734 but shortly afterwards ( https://youtu.be/Ypwgu1BpaO0?t=1772 ) he describes the process for push notifications (10 days ago - this isn't just the 1.3 release from 5 years ago):
> I guess there's an analogy um the way Reddit notifications work just for your inbox like you got a message or something um they work in so far as if I the developer of the app want to um say make sure that you get that notification within 10 seconds I have to be checking Reddit every 10 seconds to go like is there anything new is there anything new? is there anything new? is there anything new? okay. There is okay I'll tell is there anything new and then just repeating that at nauseam so you can imagine if you get a message once a week I'm checking every 10 seconds and then once during that whole week I get that message and then I can send it to you um so 99.99 of those API calls were wasted so we've talked to Reddit like that my friend who works on my server um and myself and I've said like what would be so much better is if we could just kind of keep like a port open with Reddit and say like you just tell us when there's a notification ready and we'll beam it off we don't have to bug you all the time and it's logical right and that's how a lot of services do it it's like an event-based API and um that's just not something reddit's ever uh given us
He's making a lot more than 345 calls per day per user.