Advice for Operating a Public-Facing API

I've been operating Pushover's public-facing API for over a decade now and I thought I'd pass on some advice for those creating a new API.

Pushover's API might be unusual in that it is used by a wide range of devices (embedded IoT things, legacy servers, security cameras, etc.) and HTTP libraries, rather than mostly being accessed from JavaScript in the latest web browsers. It also doesn't process sensitive financial information, so the advice given here may not be applicable to something operating like Stripe's API.

Continue reading 1,724 words...

Pushing DNS into the Cloud

sad cloud cartoon with text 'there is no cloud, it's just someone else's computer

For the majority of the past five years, Pushover has run on one physical OpenBSD server. It does have a hot spare hosted with another company in another part of the country, but usually everything has been served from just one machine at a time. Its MariaDB database is replicated in a master-master configuration over a secure tunnel between the servers so that either node can become active at any time.

When I wanted to take the primary server down for upgrades or the server's network provider was having routing troubles, I would update DNS for various pushover.net entries to point at the other server's IPs where all of the components were already running. Within seconds, traffic would start hitting the secondary server and within a half hour, everyone would be using it, allowing me to take the primary server offline as long as I needed.

Continue reading 2,398 words...

An Update on Pushover

It's been a little over 6 months since I released Pushover, the notification service with Android and iOS apps. I've been asked to post an update on how things have been going since then.

Shortly after the initial release, I received some great feedback from Chad Etzel, one of the creators of Notifo, the notification service that I used until it was shut down (which prompted me to create Pushover in the first place). Chad asked for Pushover to support sending messages with URLs that can open external apps, and Pushover soon gained supplementary URL support which required changes in the API and on both Android and iOS apps.

Continue reading 1,766 words...

Building Pushover

On March 7th, 2012, I announced the launch of Pushover, a simple mobile notification service with device clients available for Android and iOS. I kept some notes during the development process, which mostly occurred in the evenings and weekends around my other work.

I had been using Notifo for a year or so to receive push notifications on my phone from my custom network monitor, but last year the free service announced it was shutting down. When I switched back to my Android phone a few months ago, I was unable to download Notifo's Android app which never made it out of beta.

Continue reading 4,264 words...