As I was going through support posts, I noticed the occasional question being raised about how and where application data is stored, reliability concerns in offline mode, etc. With answers scattered about through various posts, making it difficult to see the whole picture, I thought I’d summarized here, FAQ style, and later put this information into our knowledge-base.
Where are your servers?
Nirvana currently runs on a cluster of servers at Rackspace/Slicehost.
Is my data encrypted?
Yes. Nirvana transmits data over secure https connections only.
Is my data being backed up?
For sure. We run an incremental database backup every 10 minutes: all of your projects, tasks, contacts, etc. We also perform a full database backup every hour. And we take a snapshot of our servers in their entirety every 24 hours. That’s every byte of application code, all databases, server logs — everything.
Can I get a backup copy of my data?
Of course. In addition to our own system backups, we provide several data export options. While the original Nirvana only exports data as plaintext, the new Nirvana 2 version lets you export your data as CSV (comma-separated-values, think Excel), XML, or JSON.
How do Nirvana 1 and Nirvana 2 differ?
Nirvana 1 — the original (N1)
With Nirvana 1 what you see on your screen is what’s on the servers. As you add, update, and move tasks and projects, those changes are posted to our servers and then your browser reflects the changes as they are sent back to you. This is the traditional request-response pattern found throughout the web. No data is stored on your computer beyond what you currently see on your screen. If your computer crashes, no worries, everything is still on Nirvana’s servers. Just reboot and re-login.
Nirvana 2 — the new (N2)
Nirvana 2 uses a relatively new standard call local-storage — a mechanism for storing web application data in your browser. As you add, update, and move tasks and projects, those changes are written to your browser’s local-storage first, and then pushed up to Nirvana’s servers every few seconds, assuming you have an internet connection. If not, Nirvana 2 will let you keep working, but in the background will periodically attempt to find a connection, and when it does will push your changes up to the servers at that time. This is the magic that allows you to use Nirvana 2 even if your internet connection is flakey or temporarily awol.
This means that to run N2, your web browser must have local-storage capability! Lack of, or a poorly implemented, version of local-storage is one of the primary reasons that some older browsers are not supported by N2.
Since every piece of data in Nirvana is time-stamped, synchronizing multiple devices is supported. Each data item is compared to make sure it’s the latest version before being updated.
A key thing you should be aware of regarding what Nirvana 2 does with local-storage — if you simply close/quit your browser, your data stays in your browser. This is naturally what you’d want, so that you can still get at your Nirvana 2 data on your laptop without a connection, on a plane for instance. If you want to clear your local-storage data, be sure to logout — definitely what you want to do if you’re accessing Nirvana (or any other online service!) from a shared/public computer.
So what happens if my computer crashes running Nirvana 2? To an extent, the same as Nirvana 1… just reboot and re-login. If you were working offline for an extended period of time, and your hard drive is completely toast (worst case scenario, and you’ll probably be crying about a whole slew of other things you lost at that point), Nirvana will still have all of your data on our servers up to the last time you were connected to the internet.
What happens if Nirvana’s servers crash?
Well, given all of the redundancies we have in place that’s rather unlikely. But since you ask — your exposure to a catastrophic event at Nirvana is the 10 minute window of the incremental database backup if you’re running Nirvana 1. If you’re running Nirvana 2, you’ve got your local storage to bridge the gap. That’s right — as soon as Nirvana would come back online, your browser would automatically reconnect, sync up any changes to our servers, and everything would be restored to where it should be — no data loss at all!